本页目录

ChoiceScript 多分支文字冒险游戏脚本语言

choicescript · dfabulich/choicescript

ChoiceScript 是一套用于开发多分支选择式(multiple-choice)文字互动游戏的脚本语言,仓库 dfabulich/choicescript 以 JavaScript 为主要语言。其核心用途是让作者用脚本编写剧情分支与选项,从而构建文字冒险类作品。仓库未提供 READM...

射击 多人对战 自研引擎 C++ 网络联机 音频系统 渲染技术 高级
★ Stars 80 Forks 22 License 未明确 更新 2026-11-04

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
需递归克隆子模块并单独下载 Qt 5.13.2 源码包(README 给出 MD5 校验),国内网络下 GitHub 子模块拉取与 Qt 源码下载可能较慢,建议配置镜像或代理;Warsow 2.6+ 数据文件需另行获取,具体渠道待核验。

中文项目介绍

qfusion 是一款源自 id Tech 2 的跨平台 OpenGL 游戏引擎,本仓库是 Warsow 项目所维护的分支源码。README 开篇即说明:这是 Warsow 对 qfusion 的 fork,而 qfusion 本身是从 id Tech 2 衍生而来的游戏引擎。

引擎以 C++ 编写,采用 GPLv2 许可发布。项目主页为 http://qfusion.net/,上游 qfusion 另有独立站点 http://qfusion.github.io/qfusion/。

需要说明的是,README 主要聚焦于许可声明与构建流程,并未系统罗列引擎的渲染特性、网络模型或玩法能力,因此本页不对这些方面做超出原文的推断。

技术架构分析

构建准备:克隆与依赖

构建的第一步是连同子模块一起递归克隆仓库:

git clone --recursive https://github.com/Warsow/qfusion

随后需要进入 qfusion/third-party 目录,编译其中两个基于 CMake 的子项目:angelscript 与 openal-soft。README 明确指出这一步只需在初次搭建环境时执行一次。

此外,项目使用自行定制的 Qt 静态构建。使用者需单独下载 Qt 5.13.2 源码包,README 给出了对应的 MD5 校验值:

  • qt-everywhere-src-5.13.2.tar.xz:7c04c678d4ecd9e9c06747e7c17e0bb9
  • qt-everywhere-src-5.13.2.zip:39a0465610f70d9f877f42fc5337d1ac

无论目标平台为何,都需要先对 Qt 源码应用一处 QML 垃圾回收相关的补丁(README 中以 diff 形式给出,涉及 qtdeclarative/src/qml/memory/qv4mm.cpp 与 qv4mm_p.h)。该补丁引入外部变量 qt_wswHeapSizeGCThreshold,并改写 allocate 中的 GC 触发逻辑。

各平台构建要点

Linux

README 假设在 /opt/qt/ 下解包与构建,并要求先修改 qtbase/src/platformsupport/platformsupport.pro,在条件判断中加入 qtConfig(xkbcommon)。随后使用一长串特性开关配置 Qt,例如 -static -release -opensource -confirm-license -opengl desktop,并关闭大量模块与特性(如 -no-icu -no-dbus -no-egl -no-alsa -no-pulseaudio,以及 -skip qtwebengine、-skip qtwayland 等)。

配置完成后执行 gmake -j$(nproc) 与 gmake install。README 提示:若在构建 qmake 阶段失败,需要修改相应源码/头文件,使其为现代工具链包含 <limits>。

Windows

Windows 下同样使用一组特性开关配置 Qt,README 注明这是参照 Linux 构建、后续还可继续裁剪(原文标注 TODO)。配置命令以 ^ 作为续行符,同样关闭测试库、SQL、部分 Quick/QML 特性与多个子模块。更多细节可参考 Qt 官方文档 https://doc.qt.io/qt-5/windows-building.html。

构建与运行引擎

Qt 就绪后,进入 qfusion/source 目录进行 CMake 配置。Linux 命令行示例(假设 Qt 安装于 /opt/qt/5.13.2):

cmake -DQFUSION_GAME="Warsow" -DCMAKE_PREFIX_PATH=/opt/qt/5.13.2 .

README 说明也可使用任意 CMake 配置工具(面向 Windows 用户),关键是传入 QFUSION_GAME 与 CMAKE_PREFIX_PATH 这两个变量。随后执行:

make -j$(nproc)

生成的可执行文件位于 qfusion/source/build 子目录。

运行引擎时,需在包含 basewsw 子目录的路径下启动,该目录存放 Warsow 2.6+ 的数据文件;README 建议前往 Warsow 官网或 Warsow Discord 获取数据文件的具体信息。

补充说明

许可说明

仓库沿用 GNU 通用公共许可证第 2 版(GPLv2)或(由使用者选择)更高版本。README 中的标准声明要点包括:

  • 本程序为自由软件,可依据自由软件基金会发布的 GPLv2 条款再分发与修改;
  • 分发时希望其有用,但不提供任何担保,甚至不含适销性或特定用途适用性的默示担保;
  • 完整条款应参见 GNU 通用公共许可证;若未随程序收到许可证副本,可联系自由软件基金会获取。

对二次开发与分发而言,这意味着衍生作品需遵循 GPLv2 的相应义务。

学习建议

  • 先按 README 顺序完成子模块与 third-party 依赖编译,再处理 Qt 静态构建,避免在引擎配置阶段反复排错;
  • Qt 补丁与 platformsupport.pro 修改是构建链路中的关键前置条件,建议逐字对照 diff 应用;
  • 引擎运行依赖 Warsow 2.6+ 的数据文件,源码本身不包含游戏资源,需另行获取;
  • 若关注引擎本身的渲染与网络实现,建议直接阅读源码并结合上游 qfusion 站点资料,README 未展开这部分内容。

开源许可证与版权说明

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

相似项目