雷神之锤3竞技场(Quake III Arena)GPL 源码发布
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
qfusion · Warsow/qfusion
这是 Warsow 项目维护的 qfusion 引擎分支源码。qfusion 源自 id Tech 2,是一款跨平台 OpenGL 游戏引擎,以 C++ 编写,采用 GPLv2 许可。构建时,需要递归克隆仓库及其子模块,并先在 third-party 目录下编译 angelscript 与 openal-sof...
qfusion 是源自 id Tech 2 的跨平台 OpenGL 游戏引擎,本仓库是 Warsow 项目所维护的分支源码。README 开篇即说明:这是 Warsow 对 qfusion 的 fork,而 qfusion 本身由 id Tech 2 演化而来。引擎以 C++ 编写,采用 GPLv2 许可发布,主页为 qfusion.net。
需要区分的是,本仓库提供的是引擎源码,而非可直接游玩的成品游戏。要真正运行,还需要配合 Warsow 2.6+ 的数据文件(basewsw 目录),README 建议前往 Warsow 官网或 Warsow Discord 获取相关细节。
构建的第一步是连同子模块一起递归克隆仓库:
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 与 .zip 两种格式各一个)。无论目标平台是什么,都要先应用 README 中提供的 QML 垃圾回收修改补丁,该补丁涉及 qtdeclarative/src/qml/memory/qv4mm.cpp 与 qv4mm_p.h,主要改动是引入 qt_wswHeapSizeGCThreshold 变量并调整堆内存回收阈值的判断逻辑。
README 以解压并构建到 /opt/qt/ 为例。首先需要修改 qtbase/src/platformsupport/platformsupport.pro,在条件判断中加入 qtConfig(xkbcommon)。随后使用 README 给出的一长串特性开关配置 Qt:静态、release、开源版、桌面 OpenGL,并关闭大量不需要的模块与特性(如 gif、ico、libjpeg、tiff、webp、sql、dbus、egl、wayland、qtwebengine 等),同时跳过众多子模块。
配置完成后执行 gmake -j$(nproc) 与 gmake install。README 提示:若在“building qmake”阶段失败,需要修改相应源码/头文件,使其为现代工具链包含 <limits>。
Windows 下的 Qt 配置命令与 Linux 类似,但 README 注明“TODO: 参照 Linux 构建进一步裁剪特性”,即当前配置尚未完全精简。更多信息可参考 Qt 官方 Windows 构建文档。
Qt 构建安装完成后(README 假设安装到 /opt/qt/5.13.2),在 qfusion/source 目录下执行 CMake 配置:
cmake -DQFUSION_GAME="Warsow" -DCMAKE_PREFIX_PATH=/opt/qt/5.13.2 .
README 强调两个关键变量:QFUSION_GAME 与 CMAKE_PREFIX_PATH,Windows 用户可借助任意 CMake 配置工具传入。随后执行 make -j$(nproc) 编译,生成的可执行文件位于 qfusion/source/build 子目录。
运行引擎时,需要在一个包含 basewsw 子目录的路径下启动,该目录存放 Warsow 2.6+ 的数据文件。
项目遵循 GNU 通用公共许可证第 2 版(或用户选择的更高版本)。README 中保留了完整的 GPLv2 声明:程序按“原样”分发,不附带任何明示或暗示的担保,包括适销性与特定用途适用性的担保。分发或修改需遵守 GPLv2 条款;若未随程序收到许可证副本,可联系自由软件基金会获取。
本仓库适合希望了解 id Tech 2 系引擎架构、跨平台 OpenGL 渲染与大型 C++ 工程构建流程的开发者。阅读时可先从 README 的构建链路入手,理解第三方依赖(angelscript 脚本、openal-soft 音频)与 Qt 静态构建的耦合关系;再结合 source 目录的 CMake 配置理解引擎与游戏模块(QFUSION_GAME)的分离设计。由于 README 未展开引擎内部特性与游戏表现,相关细节需以源码为准,不宜臆测。
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
Fish Folk: Jumpy 是一款鱼类像素画风的战术 2D 射击游戏,使用 Rust 语言与...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...