Cataclysm: Dark Days Ahead 完全指南:安装、源码编译、贡献与 FAQ 详解
【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA
导读
Cataclysm: Dark Days Ahead(简称 CDDA)是一款设定在末日废土世界中的回合制生存游戏,它远比"丧尸游戏"复杂:玩家需要在严酷、持久、程序化生成的开放世界中挣扎求生,搜刮文明残骸中的食物与装备,对抗从丧尸、巨型昆虫到杀人机器人等形形色色的怪物,同时还要提防与你争夺资源的同类幸存者。本文以仓库根目录的 README.md 为骨架,结合 编译指南、编译器支持文档、Makefile 与 贡献指南 等仓库一手资料,系统讲解如何获取游戏、在各主流发行版上安装、从源码编译(含全部核心 Make 参数)、参与贡献以及排查常见问题,帮助你从"玩家"快速进阶为"贡献者"。
一、项目概览:这不仅仅是一个"丧尸游戏"
README 开篇即点明 CDDA 的核心定位:回合制、后末日世界、生存模拟。与线性剧情的游戏不同,CDDA 强调以下几大支柱:
- 严苛而持久的开放世界:世界是程序化生成的,且长期存在,你的一举一动都会产生持续影响;
- 搜刮与生存:从死寂文明的残骸中寻找食物、装备,运气好的话还能找到一箱油见底的车,逃出困境;
- 多样的威胁:从丧尸、巨型昆虫到杀人机器人,以及更陌生、更致命的存在,还包括与你一样想抢走你物资的其他幸存者。
从仓库结构可以印证这一设计的复杂度:src/下 800+ 个 C++ 源文件覆盖了 角色系统、地图与地图生成、怪物 AI、NPC 对话、物品与配方 等模块;data/json/与data/mods/中数千个 JSON 文件定义了物品、怪物、地图生成规则与大量可选模组。这意味着 CDDA 不仅是一个可玩的游戏,更是一个由"代码 + JSON 数据"双层驱动、高度可定制的开源项目。
二、获取游戏:下载渠道一览
README 提供了两类获取方式:直接下载官方构建产物,或获取源码自行编译。
2.1 官方 Releases(开箱即用)
官方将构建产物分为两类:
- Stable(稳定版):经过较充分验证的版本,适合追求稳定体验的玩家;
- Experimental(实验版):跟随主分支持续更新的版本,功能最新但可能包含回归问题,适合想抢先体验新机制的玩家与开发者。
两者均可在项目官网的 Releases 页面下载,通常提供 Windows、Linux 等平台的压缩包。
2.2 源码获取
源码既可以 zip 归档形式下载,也可以通过 git 克隆整个仓库:
git clone https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA获取源码后,配合下文"从源码编译"一节即可自行构建任意平台版本。仓库根目录的 README.md 同时附带了多个 CI 徽章(构建矩阵、覆盖率、提交活跃度等),这些徽章对应的自动化构建与测试配置,正是后续"编译器支持"与"持续集成"章节的客观依据。
三、发行版软件包安装
README 明确列出了各主流 Linux 发行版的官方打包状态,以下命令均摘自 README.md:
3.1 Arch Linux
ncurses 版与 tiles 图形版均收录于 community 仓库:
sudo pacman -S cataclysm-dda sudo pacman -S cataclysm-dda-tiles3.2 Fedora
ncurses 与 tiles 版本均收录于官方仓库:
sudo dnf install cataclysm-dda3.3 Debian / Ubuntu
官方仓库分别提供 curses 版与 SDL 图形版两个包:
sudo apt install cataclysm-dda-curses cataclysm-dda-sdl3.4 Flatpak
Flatpak 版本可通过 Flathub 应用商店直接安装,适合追求沙箱化、跨发行版一致运行环境的用户。仓库根目录也提供了 Flatpak 清单文件 org.cataclysmdda.CataclysmDDA.json 与 org.cataclysmdda.CataclysmDDA.yml,有兴趣的读者可以对照清单了解打包依赖构成。
提示:发行版仓库中的包通常滞后于上游版本。如果希望使用最新的实验版特性,建议直接走源码编译路线(见下一节)。
四、从源码编译:从零构建你的 CDDA
编译是 CDDA 开发流程的核心环节。编译指南 覆盖了 Linux、macOS、Windows(MSYS2 / Visual Studio / CYGWIN)与 BSD 的完整配方,这里提炼出通用且可立即执行的要点。
4.1 工具链与依赖总览
构建至少需要:C++ 编译器(GCC 或 Clang)、基础开发工具(make、git)以及必要的构建依赖。CDDA 面向C++17 标准,因此编译器必须支持 C++17。根据 编译器支持文档 的最低版本要求:
| 编译器 | 最低版本 |
|---|---|
| GCC | 9.3 |
| Clang | 13.0 |
| MinGW-w64 | UCRT 14.2.0 |
| Visual Studio | 2019 |
| XCode | 11.4(macOS 10.15+) |
依赖分为三类(以 Arch 为参考,具体包名因发行版而异):
- 通用:
gcc-libs、glibc、zlib、bzip2 - 可选:
gettext(本地化支持;只用英文可跳过) - curses 版:
ncurses - tiles 版:
sdl3、sdl3_image、sdl3_ttf、sdl3_mixer、freetype2、glslang
重要变更:根据 COMPILING.md 的说明,SDL2 支持已于 2026-08-11 移除,SDL3 是唯一的 tiles 后端。
SDL3=0这一 Make 参数与USE_SDL3=OFF这一 CMake 选项均会直接报硬错误,SDL2 代码路径、SDL2 ImGui 后端与 SDL2 声音后端已全部删除。tiles 构建要求SDL3 >= 3.4.0及配套的 SDL3_image / SDL3_ttf(声音还需 SDL3_mixer)。
4.2 核心 Make 参数(务必收藏)
编译指南 与 Makefile 共同定义了如下高频参数,理解它们是灵活定制构建的关键:
| 参数 | 含义 |
|---|---|
NATIVE= | 目标架构,交叉编译时必填(如linux64/linux32/osx/win32) |
RELEASE=1 | 启用优化构建;不加则默认产出 debug 版本(建议日常始终加,除非你需要提交栈回溯) |
LTO=1 | 启用 GCC/Clang 的链接时优化 |
TILES=1 | 构建 SDL3 图形版;不加则构建 ncurses 字符版 |
SOUND=1 | 启用声音(依赖 SDL3_mixer,需与TILES=1搭配) |
LOCALIZE=0 | 关闭本地化,从而无需gettext |
CLANG=1 | 使用 Clang 替代 GCC |
CCACHE=1 | 使用 ccache 加速增量编译(追踪实验版玩家的推荐项) |
USE_LIBCXX=1 | Clang 下用 libc++ 替代 libstdc++(macOS 默认) |
PREFIX=DIR | 指定make install的安装前缀(二进制与数据文件的根目录) |
LANGUAGES="..." | 额外编译指定语言的本地化文件,如LANGUAGES="zh_CN zh_TW",或LANGUAGES=all |
USE_HOME_DIR=1 | 将配置、存档等用户文件放到用户主目录,便于备份 |
USE_XDG_DIR=1 | 使用 XDG base directory 存放存档与配置 |
TESTS=0 | 跳过测试目标构建 |
RUNTESTS=1 | 构建后运行测试套件 |
SANITIZE=address | 启用 AddressSanitizer 等 sanitizer |
BACKTRACE=0 | 关闭回溯支持(某些平台无法使用) |
ASTYLE=0/LINTJSON=0 | 关闭源码 astyle 检查 / JSON lint 检查 |
补充说明两点:
- 并行编译:多核机器建议追加
-jX(X 为 CPU 线程数,通常为核数两倍),或用-j$(nproc)让 make 自动使用全部核心; - PREFIX 与数据目录:编译时指定
PREFIX=DIR后,游戏会从该目录读取资源;如需覆盖,可用运行时参数--datadir DIR/share/cataclysm-dda重新指定。
4.3 典型构建命令示例
来自 COMPILING.md 的实战示例:
# 64 位 Linux tiles 发行版:Clang + ccache + 4 并行任务 make -j4 CLANG=1 CCACHE=1 NATIVE=linux64 RELEASE=1 TILES=1 # 用满所有 CPU 核心,构建 tiles 版并关闭声音 make -j$(nproc) CLANG=1 TILES=1 SOUND=0 # 最小化:GCC 构建 debug 版 curses 版本,2 并行任务 make -j2 LOCALIZE=0 # 附加编译简体中文与繁体中文本地化文件 make LANGUAGES="zh_CN zh_TW"Linux 发行版特定配方速查(详见 COMPILING.md):
- Fedora:ncurses 版安装
sudo dnf install astyle gcc-c++ ncurses-devel make后make;tiles 版先安装 SDL3 系依赖与glslang(含glslangValidator与SDL_shadercross),再make -j2 TILES=1 SOUND=1 RELEASE=1 USE_HOME_DIR=1。 - Debian/Ubuntu:ncurses 版
sudo apt-get install libncurses5-dev libncursesw5-dev build-essential astyle;tiles 版sudo apt-get install libsdl3-dev libsdl3-ttf-dev libsdl3-image-dev libsdl3-mixer-dev libfreetype6-dev glslang-tools build-essential(glslang-tools提供 shader 编译器)。 - Gentoo:
make -j$(nproc) TILES=1 SOUND=1 RELEASE=1。 - FreeBSD/OpenBSD:使用
gmake替代make(如gmake RELEASE=1/gmake RELEASE=1 TILES=1),OpenBSD 追加BSD=1 CLANG=1 TESTS=0。
4.4 交叉编译与移动端
编译指南 还覆盖了多种交叉编译场景:
- Linux 64 位 → Linux 32 位:安装 32 位工具链与
lib32ncursesw5-dev,执行make NATIVE=linux32; - Linux → Windows(MXE):当前不受官方支持(CI 任务已于 2024-12-11 移除),文档保留供有意者复兴;
- Linux → macOS(osxcross):需 osxcross 工具链与预置 SDL3.framework 等,用
make dmgdist CROSS=x86_64-apple-darwin15- NATIVE=osx ...生成 dmg; - Android:Android 构建位于 android/ 目录,使用Gradle 驱动 CMake复用桌面端同一套
src/*.cpp源码。依赖 Java JDK 17、Android SDK platform 35、NDK 28.1.13356709(r28b)与 AGP 8.7/Gradle 8.9,SDL3 及其卫星库 AAR 由fetchSdl3AarsGradle 任务自动下载并做 SHA256 校验。构建命令:
# 在 android/ 子目录下执行 ./gradlew assembleExperimentalDebug # 产物位于 android/app/build/outputs/apk/experimental/debug/ ./gradlew installExperimentalDebug # 直接部署到已连接设备 ./gradlew bundleExperimentalRelease # 生成 Play Store 风格的 AABAndroid 版数据存于设备/sdcard/Android/data/com.cleverraven.cataclysmdda/files,且存档与桌面版向后兼容,可在多端间迁移。
4.5 测试与质量保障
构建过程会额外生成测试可执行文件tests/cata_test(对应 tests/ 目录下 250+ 个 C++ 测试文件),直接运行即可执行完整测试套件,加--help可查看选项。此外 Makefile 还提供make astyle/make astyle-check(源码风格检查)、make style-json(JSON 数据风格化)、make localization LANGUAGES=...(本地化编译)等质量保障目标——这些都是提交 PR 前应运行的检查项。
五、参与贡献:从玩家到贡献者
README 明确指出:CDDA 是1000+ 名志愿者在Creative Commons Attribution ShareAlike 3.0许可下协作的成果,代码与游戏内容可自由使用、修改与再分发;随项目分发的部分第三方代码则以各自独立的许可发布(各文件自带许可声明)。
详细的贡献流程见 CONTRIBUTING.md,其要点包括:
- 许可与署名:任何贡献自动纳入 CC BY-SA 3.0,许可不可撤销;贡献必须由提交者本人创作(移植他处代码需保留原作者署名并尽到审核义务)。特别地,不允许提交任何由 LLM(如 ChatGPT)生成的内容,因其不具备作者身份;
- 编辑器与编码:大部分游戏数据由 JSON 定义,避免使用会在文件头插入 BOM 的 Windows 记事本编辑;
- PR 规范:所有 PR 必须包含 "Summary" 段,并遵循 代码风格;
- 提交前检查:运行单元测试(
tests/cata_test)与风格检查目标; - 问题报告:提交 bug 前请先阅读 ISSUES.md,并在 GitHub 上使用对应的 bug 报告模板 / 功能请求模板提交 issue。
若想从内容创作入手,可先阅读仓库内的 MODDING.md 与 JSON 接口文档,了解如何通过 JSON 新增物品、怪物与模组——这是门槛最低、反馈最快的贡献方式。
六、社区与交流渠道
README 列出的官方社区渠道:
- 论坛:discourse.cataclysmdda.org(深度讨论、开发日志与玩家分享的主阵地);
- GitHub 仓库:issues、PR 与版本发布的核心平台;
- IRC:Libera Chat 上的
#CataclysmDDA频道(实时文字交流); - 官方 Discord:即时聊天与语音交流。
七、FAQ:新手高频问题官方解答
以下内容完整取自 README.md 的 FAQ 章节:
Q1:游戏有教程吗?有。在主菜单的Special(特殊)菜单中可以找到教程(注意:由于代码变动频繁,教程可能无法正常工作)。游戏中按?键也可随时调出文档。
Q2:如何修改按键绑定?先按?键,再按1键查看全部按键命令列表。按+键添加新的按键绑定,用a-w中的字母键选择要绑定的动作,再按下你希望分配给该动作的按键即可。
Q3:如何开始一个新世界?在主菜单选择World(世界),然后选择Create World(创建世界),即可生成一个全新的世界。
Q4:发现 Bug 怎么办?请使用 bug 报告模板在我们的 GitHub 页面提交 issue;如果无法提交,可发送邮件到kevin.granade@gmail.com。
Q5:想提建议怎么办?请使用功能请求模板在 GitHub 上提交 issue。
八、结语与延伸阅读
从安装到编译,从贡献到社区,README 勾勒出 CDDA 生态的完整轮廓。若想继续深入,仓库 doc/ 目录(JSON 数据文档 与 C++ 开发文档 共 60+ 篇)是最好的下一站:编译细节看 COMPILING.md 与 COMPILING-CMAKE.md,编译器支持矩阵看 COMPILER_SUPPORT.md,测试方法论看 TESTING.md,Windows 专项则参考 COMPILING-MSYS.md 与 COMPILING-VS-VCPKG.md。无论你是想体验末日生存的玩家,还是想为这个 1000+ 贡献者的项目添砖加瓦的开发者,本文所梳理的下载、编译与贡献路径都能让你直接上手。
【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考