雷神之锤3竞技场(Quake III Arena)GPL 源码发布
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
AtomicGameEngine · AtomicGameEngine/AtomicGameEngine
Atomic Game Engine 是一个多平台 2D/3D 游戏引擎,主体用 C++ 编写,并在 C++、C#、JavaScript、TypeScript 中提供一致的 API,覆盖 Windows、macOS、Linux、Android、iOS 与 WebGL。项目包含编辑器,支持 Monaco、VSCode、Atom 及 Visu...
i oquake3 是社区维护的 Quake III Arena 引擎项目,目标是为《Quake 3: Arena》《Team Arena》以及各类模组提供一个可以继续开发的基础引擎。README 明确指出,项目意图是提供一份“基线引擎”(baseline engine),既可用于游玩原版游戏与模组,也可作为后续开发的起点。
需要区分的是:Quake 3 的游戏源代码以 GPLv2 发布,但游戏数据(地图、素材等)并不免费。README 特别提醒,若想游玩《Quake 3: Arena》或资料片《Team Arena》,仍需自行购买游戏副本。项目官网提供了购买与支持项目的链接。
源码托管在 GitHub 的 ioquake/ioq3 仓库;README 也提醒,如果你看到的不是这个地址,那它就不是 ioquake3,而是别人的项目。原始 id Software 随 Q3 源码发布的自述文件已被重命名为 id-readme.txt,以免混淆。
README 列出的主要已实现特性包括:
README 同时说明,地图编辑器及相关编译工具并不包含在内,建议使用来自 icculus.org/gtkradiant/ 的现代版本。
默认的 opengl2 渲染器支持 OpenGL ES 2+,但 README 坦言仍有许多缺失特性,性能对嵌入式 SoC 与移动平台而言可能不足。opengl1 渲染器不支持 OpenGL ES。opengl2 渲染器会同时尝试 OpenGL 与 OpenGL ES API,由 cvar r_preferOpenGLES 控制优先顺序:-1 为自动(默认),0 为 OpenGL,1 为 OpenGL ES。README 给出的示例是在命令行中设置:
ioquake3 +set cl_renderer opengl2 +set r_preferOpenGLES 1
与原版相比,用户配置与数据文件存放在更现代的位置。若想改变行为,可在命令行加入 +set fs_homepath <path> 指定路径。README 列出的默认位置为:
C:\Users\<username>\AppData\Roaming\Quake3/Users/<username>/Library/Application Support/Quake3/home/<username>/.config/Quake3,数据文件(pk3 等)在 /home/<username>/.local/share/Quake3,其他内部运行时文件在 /home/<username>/.local/state/Quake3这些目录对应 Free Desktop XDG Base Directory 规范。原版使用的 /home/.q3a 若存在仍会被使用,但会提示是否迁移到上述位置。
README 用较大篇幅列出新增 cvar,例如 cl_autoRecordDemo(每次换图录制新 demo)、cl_aviFrameRate(录制视频的帧率)、cl_aviMotionJpeg(录制视频时使用 mjpeg 编码)、cl_guidServerUniq(让 cl_guid 对每个服务器唯一)、cl_cURLLib(非 Windows 下加载的 cURL 库文件名)、cl_consoleKeys(切换控制台的按键列表)、cl_mouseAccelStyle 与 cl_mouseAccelOffset(鼠标加速行为与曲线调校)、con_autochat、con_autoclear、con_scale、con_notifylines,以及摇杆相关的 in_joystickUseAnalog、j_forward、j_side、j_up、j_pitch、j_yaw 等。
README 强调,所有平台若想游玩原版游戏或资料片,仍需购买游戏副本。
git clone git://github.com/ioquake/ioq3.gitcd ioq3sudo apt install cmake libsdl2-devcmake -S . -B build -DCMAKE_BUILD_TYPE=Releasecmake --build buildbuild 目录安装时先设置 CMAKE_INSTALL_PREFIX(默认 /opt/quake3/),再执行 cmake --install build。
安装 Visual Studio Community 版与 CMake,克隆仓库后可用 Visual Studio 选择 CMakeLists.txt 构建,或使用命令行:cmake -S . -B build -G "Visual Studio 17 2022",再执行 cmake --build build --config Release。
安装 XCode 与 CMake(可通过 homebrew),克隆后执行与类 Unix 相同的 cmake 命令,最后把 /build/ 中生成的 ioquake3.app 复制到 /Applications/ioquake3。
按 Emscripten SDK 说明安装并配置环境,使用 emcmake cmake -S . -B build -DCMAKE_BUILD_TYPE=Release 与 cmake --build build 构建;将 baseq3 的 pk3 文件复制或软链到 build/Release/baseq3,只有 client-config.json 中列出的游戏文件会被加载;启动一个静态 Web 服务器(如 python3 -m http.server),在浏览器打开 http://localhost:8000/build/Release/ioquake3.html,可通过开发者控制台查看错误与警告,README 还提到可用 Chrome 扩展调试 C 代码。
README 列出可用 -D 设置的变量,包括 BUILD_SERVER、BUILD_CLIENT、BUILD_RENDERER_OPENGL1、BUILD_RENDERER_OPENGL2、BUILD_GAME_LIBRARIES、BUILD_GAME_QVMS、BUILD_STANDALONE,以及 USE_RENDERER_DLOPEN、USE_OPENAL、USE_OPENAL_DLOPEN、USE_HTTP、USE_CODEC_VORBIS、USE_CODEC_OPUS、USE_MUMBLE、USE_VOIP、USE_FREETYPE、USE_INTERNAL_LIBS、USE_INTERNAL_SDL、USE_INTERNAL_ZLIB、USE_INTERNAL_JPEG、USE_INTERNAL_OGG、USE_INTERNAL_VORBIS、USE_INTERNAL_OPUS、EMSCRIPTEN_PRELOAD_FILE、CMAKE_BUILD_TYPE 等。默认值可能因目标平台而异。
ioquake3 是一份成熟的 C 语言 3D 射击游戏引擎代码库,适合希望理解 Quake 系列引擎架构、网络联机、渲染后端与跨平台构建的读者。建议先从 CMake 构建入手,跑通客户端与专用服务器,再结合控制台 cvar 与命令观察运行时行为;若关注 Web 方向,可尝试 Emscripten 构建路径。注意游戏数据需自行合法获取,仓库本身不包含可游玩内容。
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
该项目用 C 语言维护《Aliens versus Predator》(1999)可获得的游戏源码,...