CA

Cataclysm: Dark Days Ahead

Open-source turn-based survival roguelike

Game Servers ★ 13.2k stars Medium setup CC-BY-SA-3.0

Cataclysm: Dark Days Ahead is a free, open-source turn-based survival roguelike set in a post-apocalyptic world. It runs locally on desktop platforms with deep crafting and survival systems.

Key features

  • Turn-based survival roguelike
  • Deep crafting and vehicles
  • Tileset and ASCII modes
  • Extensive modding

Pros & cons

Strengths

  • Enormous depth
  • Active development

Trade-offs

  • Steep learning curve
  • Single-player only

Cataclysm: Dark Days Ahead replaces

Last reviewed Aug 26, 2026 · 760 words

The genuinely self-hosted way to play Cataclysm: Dark Days Ahead is the curses build over SSH, which turns a 512 MB box in a cupboard into a personal game server reachable from any terminal you own. The game is turn-based, so 80 ms of latency is invisible; it renders in text, so a phone SSH client on a train is a valid platform; and because the save lives on the server, you detach with tmux and pick the same character up from a different machine that evening. There is no multiplayer and no server process, and this setup does not pretend otherwise. It simply puts a single-player game where your other services already live.

Install the terminal build and wrap it in tmux

Debian and Ubuntu carry cataclysm-dda-curses in their repositories, though the packaged version lags upstream by a long way; the project's own site at cataclysmdda.org publishes tarballs of the current stable, and a Flatpak exists for desktop use. On the server:

mkdir -p ~/cdda && cd ~/cdda
tar xzf cdda-linux-curses-*.tar.gz --strip-components=1
tmux new -s cdda ./cataclysm

Detach with Ctrl-b d and reconnect later with tmux attach -t cdda. Give the terminal at least 80 by 24 characters and a UTF-8 locale, and use a client that renders box-drawing characters properly; Termux on Android and Blink on iOS both do. The tileset build is the better experience on a desktop, but it needs SDL and a display, and it is the ASCII mode the catalogue lists that makes the SSH pattern work.

Saves are files, and yours will be years old

Everything that matters sits next to the executable: save/ holds worlds and characters, config/ holds options and keybindings, and the memorial files record each death. A single world can grow to tens or hundreds of megabytes over a long game because the map is generated and stored piece by piece as you explore. Back these up as you would any other data under a 3-2-1 scheme, and if you also play on a desktop, Syncthing between the server's ~/cdda/save and the desktop copy gives you one character playable from both, provided you never run both at once. Turn versioning on so a save corrupted by a crash mid-write is one click from recovery.

Stable, not experimental, on a machine you rely on

The project ships two streams: named stable releases every year or two, and experimental builds produced continuously from the main branch. Experimental is where the active development happens and it is the version most forum advice assumes, but it changes constantly and a save started on one build can fail to load on another a month later. On a server whose whole purpose is a character you keep for months, run stable and upgrade only between characters. Treat experimental the way you treat a latest tag on a container you care about: fine to try, wrong to depend on.

Mods are JSON, which suits a headless box

Nearly everything in the game, from items to monsters to professions, is defined in JSON under data/json, and mods are directories of more JSON under data/mods. Adding a mod on a server is copying a folder; there is no launcher, no workshop and no binary patching. The game does not phone home, has no accounts and no online component of any kind, so it runs happily on a machine with no internet route at all. The steep learning curve the catalogue mentions is the game's design, not the installation: expect to die a great deal in the first ten hours while you learn what the crafting and vehicle systems want from you.

What it is not

It is not a game server in the sense the games category usually means; nobody joins you. It is not something Docker improves, since a tarball and a user account are the whole deployment. And the 512 MB minimum is honest only for the text build with a small world; the graphical version with big tilesets and a long-running world wants a couple of gigabytes.

What I'd do

Stable curses build in a home directory on the box that is always on, tmux, SSH keys, saves in a Syncthing folder with versioning, and a backup job that already covers the home directory. Upgrade between characters, not during. Then accept that the first three survivors are tuition.

Similar game servers apps