Cataclysm: Dark Days Ahead 完全指南:安装、源码编译、贡献与 FAQ 详解
2026/9/15 22:46:47 网站建设 项目流程

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-tiles

3.2 Fedora

ncurses 与 tiles 版本均收录于官方仓库:

sudo dnf install cataclysm-dda

3.3 Debian / Ubuntu

官方仓库分别提供 curses 版与 SDL 图形版两个包:

sudo apt install cataclysm-dda-curses cataclysm-dda-sdl

3.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)、基础开发工具makegit)以及必要的构建依赖。CDDA 面向C++17 标准,因此编译器必须支持 C++17。根据 编译器支持文档 的最低版本要求:

编译器最低版本
GCC9.3
Clang13.0
MinGW-w64UCRT 14.2.0
Visual Studio2019
XCode11.4(macOS 10.15+)

依赖分为三类(以 Arch 为参考,具体包名因发行版而异):

  • 通用gcc-libsglibczlibbzip2
  • 可选gettext(本地化支持;只用英文可跳过)
  • curses 版ncurses
  • tiles 版sdl3sdl3_imagesdl3_ttfsdl3_mixerfreetype2glslang

重要变更:根据 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=1Clang 下用 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 makemake;tiles 版先安装 SDL3 系依赖与glslang(含glslangValidatorSDL_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-essentialglslang-tools提供 shader 编译器)。
  • Gentoomake -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 风格的 AAB

Android 版数据存于设备/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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询