本页目录

ChilliSource 跨平台 C++ 游戏引擎

ChilliSource · ChilliWorks/ChilliSource

ChilliSource 是一款开源跨平台游戏引擎,使用 C++ 开发,面向独立开发者,采用 MIT 许可证。README 列出可部署至 iOS、Android、Windows 与 Raspberry Pi,并标注 2D/3D 游戏引擎相关主题;当前版本为 v2.2.3。其构建状态表中除 iOS 外...

动作游戏 射击 策略 多人对战 自研引擎 C++ 游戏状态管理 网络联机 音频系统 UI 系统 高级
★ Stars 1,132 Forks 185 License MIT 更新 2026-11-07

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建需从 GitHub 拉取仓库与子模块,并可能通过脚本下载资源包,国内网络可能较慢,建议配置代理或镜像;依赖库(SDL3、OpenAL、libwebp 等)需自行准备,具体包名与版本以发行版仓库为准,待核验。

中文项目介绍

Unvanquished 是一款自由开源的第一人称射击(FPS)与即时战略(RTS)混合竞技游戏。根据仓库说明,它的核心玩法是:两个风格差异明显的阵营在竞技场地图中展开对抗,同时玩家可以像 RTS 那样进行建造。项目由 Daemon 游戏引擎驱动,游戏逻辑部分使用 C++ 编写。

从历史沿革看,Unvanquished 源自 Tremulous,是它的延续,并在其基础上积累了长期开发工作。仓库本身主要承载的是游戏逻辑(game logic)的源代码;如果你只是想游玩或架设服务器,README 指出通常只需构建 Daemon 引擎并下载游戏资源包即可,只有当你希望参与游戏逻辑开发、或制作带自定义游戏逻辑二进制的模组时,才需要编译本仓库。

项目代码与版本发布均在 GitHub 上公开,同时提供 Flatpak 等分发渠道入口,官网设有下载页面,方便直接获取可用的游戏包。

技术架构分析

技术要点

  • 引擎:由 Daemon 游戏引擎驱动,该引擎是独立仓库,与本仓库分离。
  • 语言与标准:游戏逻辑使用 C++,构建要求 C++14 编译器。
  • 构建系统:使用 CMake 组织构建,配合 git 子模块拉取依赖源码。
  • 脚本与工具链:构建过程需要 Python(≥ 2)以及 python-yaml、python-jinja。
  • 依赖库:必需依赖包括 zlib、libgmp、libnettle、libcurl、SDL3、GLEW、libpng、libjpeg(≥ 8)、libwebp(≥ 0.2.0)、OpenAL、libogg、libvorbis、libopus、libopusfile;可选依赖有 Freetype、Lua(缺失时使用子模块)与 ncurses。
  • 编译器支持:README 明确列出积极支持的编译器为 gcc ≥ 9、clang ≥ 11,以及 Visual Studio/MSVC(至少 Visual Studio 2019)。
  • 资源与逻辑分离:游戏资源以 pkg 包形式分发,可通过 -pakpath 指定路径加载;开发时可将游戏逻辑作为共享库加载,并从 pkg/unvanquished_src.dpkdir 子模块读取修改后的资源。

如何构建

README 给出了较完整的构建流程,可归纳为以下步骤。

1. 获取源码与子模块

首次克隆需带上子模块:

git clone --recurse-submodules https://github.com/Unvanquished/Unvanquished.git

若已克隆过仓库,则进入目录后执行:

git submodule update --init --recursive

README 特别提醒:如果 CMake 报错提示 daemon/ 目录下缺少文件,通常就是漏掉了这一步。

2. 下载游戏资源

可以从官网下载页面获取通用 zip 包,将 pkg/ 目录放到 homepath 下;也可以使用仓库自带的包下载脚本,该脚本支持 aria2c、curl 或 wget,其中推荐 aria2c:

./download-paks build/pkg

上述命令会把 pkg 目录放到所构建的 Daemon 引擎的 libpath 中,因此只对该构建目录自动可见;若希望所有安装/构建目录都能找到资源,可改为下载到 homepath 的 pkg/ 子目录。

3. 编译

在 Linux 与 macOS 上:

mkdir build; cd build
cmake ..
make -j4

在 MSYS2 环境下(Windows 上使用 MinGW 的推荐方式):

mkdir build; cd build
cmake .. -G "MSYS Makefiles"
make -j4

使用 Visual Studio 时,流程为:运行 CMake、选择编译器、打开 Unvanquished.sln 并编译。

从 Linux 交叉编译到 Windows 时,使用对应的工具链文件(32 位构建改用 cross-toolchain-mingw32.cmake):

mkdir build-win64; cd build-win64
cmake .. -DCMAKE_TOOLCHAIN_FILE=../daemon/cmake/cross-toolchain-mingw64.cmake
make -j4

README 提示 -j4 中的数字可替换为 CPU 核心数,Linux 上可用 -j$(nproc)。

补充说明

玩法与阵营设定

README 对玩法的描述较为简洁,可确认的要点包括:

  • 这是一款竞技场(arena)性质的游戏,并带有 RTS 元素,玩家可以建造。
  • 对抗双方是两个“非常不同”的阵营,意味着两边的单位、能力与建造方式存在明显差异。
  • 游戏以第一人称射击为主要操作视角,建造元素为对局增加策略维度。

更细的单位数值、建造清单、地图机制等内容,README 未展开说明,建议以官网与项目 wiki 为准。

运行与服务器配置

编译完成后进入 build/ 目录。Windows 上需把 ./daemon、./daemonded 换成 daemon.exe、daemonded.exe,其余一致。

  • 运行客户端:在 pkg/ 与 daemon 二进制相邻时直接执行 ./daemon;资源在别处时用 ./daemon -pakpath <PATH> 指定。
  • 运行服务器:推荐使用无图形界面的 daemonded,并可在命令行直接指定首张地图,例如 ./daemonded +map plat23。
  • 配置服务器:可复制并扩展 dist/configs 中的配置样例,这些文件需存放在用户主目录下,具体位置参见 wiki 的 game locations 与服务器运行页面。

学习建议

  • 若目标是“玩”或“开服”,按 README 的建议先构建 Daemon 引擎并下载资源包,不必编译本仓库的游戏逻辑。
  • 若目标是学习 FPS/RTS 混合玩法与游戏逻辑组织,可从本仓库的 C++ 游戏逻辑代码入手,配合 wiki 的编译与模组文档。
  • 构建前务必确认子模块已拉取、C++14 编译器与 Python 依赖齐备,这是 README 中反复强调的两个易错点。
  • 想参与本地化,优先使用 Weblate 而非直接改代码仓库,能降低协作成本。

开源许可证与版权说明

许可证标识:MIT。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目