雷神之锤3竞技场(Quake III Arena)GPL 源码发布
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
choicescript · dfabulich/choicescript
ChoiceScript 是一套用于开发多分支选择式(multiple-choice)文字互动游戏的脚本语言,仓库 dfabulich/choicescript 以 JavaScript 为主要语言。其核心用途是让作者用脚本编写剧情分支与选项,从而构建文字冒险类作品。仓库未提供 READM...
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:7c04c678d4ecd9e9c06747e7c17e0bb9qt-everywhere-src-5.13.2.zip:39a0465610f70d9f877f42fc5337d1ac无论目标平台为何,都需要先对 Qt 源码应用一处 QML 垃圾回收相关的补丁(README 中以 diff 形式给出,涉及 qtdeclarative/src/qml/memory/qv4mm.cpp 与 qv4mm_p.h)。该补丁引入外部变量 qt_wswHeapSizeGCThreshold,并改写 allocate 中的 GC 触发逻辑。
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 下同样使用一组特性开关配置 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 的相应义务。
platformsupport.pro 修改是构建链路中的关键前置条件,建议逐字对照 diff 应用;
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
Fish Folk: Jumpy 是一款鱼类像素画风的战术 2D 射击游戏,使用 Rust 语言与...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...