Cataclysm: Dark Days Ahead
Open-source turn-based survival roguelike
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
Mindustry
Game ServersTower-defense and factory game with servers
Replaces Factorio
Lichess
Game ServersOpen-source chess server and platform
Replaces Chess.com
OpenRCT2
Game ServersOpen-source remake of RollerCoaster Tycoon 2
Replaces RollerCoaster Tycoon
papermc-docker
Game ServersContainerized Minecraft Java server image
Replaces Minecraft Realms
ArchiSteamFarm
Game ServersTool for farming Steam cards from multiple accounts
Replaces Idle Master
2048
Game ServersSelf-hostable browser version of the 2048 sliding puzzle
Replaces Mobile puzzle games