本页目录

雷神之锤3竞技场(Quake III Arena)GPL 源码发布

Quake-III-Arena · id-Software/Quake-III-Arena

id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源代码,主要使用 C 语言。README 包含许可证说明,以及 WIN32、GNU/Linux、Mac 三个平台的编译章节;其中使用 zlib 处理 .zip 文件的部分代码不受 GPL 覆盖,具...

射击 多人对战 自研引擎 C 游戏状态管理 网络联机 地图编辑器 音频系统 高级
★ Stars 8,322 Forks 2,219 License GPL-2.0 更新 2026-11-12

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
README 要求 gcc 2.95 与 nasm,并依赖 X11 的 X Direct Graphics Access、X Video Mode 扩展头文件;现代发行版通常需自行准备旧版工具链或改用社区清理版,具体可行性待核验。

中文项目介绍

本仓库是 id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源代码。README 开篇即说明文件结构,并列出 LICENSE、GENERAL NOTES、COMPILING ON WIN32、COMPILING ON GNU/LINUX、COMPILING ON MAC 五个章节,内容以许可证声明与各平台编译指引为主,并未提供玩法说明或 Demo 介绍。

需要特别注意的是,这次发布并非「全部代码都归 GPL」:README 明确列出若干第三方代码片段仍受各自许可证约束,完整条款见 COPYING.txt。

技术架构分析

构建与运行

README 按平台给出了编译方式,但作者同时声明:虽然确认过在 Windows、GNU/Linux 与 Mac 上仍可编译,但该构建「没有经过任何形式的广泛测试」,因此可能无法完全正常工作。作者还建议,若在发布数月或数年之后才接触此代码,最好先在网络上寻找经过清理、适配现代编译器与环境的版本。

Windows(WIN32)

  • 提供 VC7 / Visual C++ 2003 工程文件:code/quake3.sln 与 q3radiant/Radiant.sln。
  • 编译 qvm 需要运行若干批处理文件,且要求 lcc.exe、q3cpp.exe、q3rcc.exe、q3asm.exe 位于 PATH 中;lcc/bin 与 code/win32/mod-sdk-setup/bin 下提供了部分预编译二进制。
  • qvm 批处理文件分布在 code/game、code/cgame、code/q3_ui、code/ui 等目录。

GNU/Linux

  • 构建系统使用 cons(README 称其可视为 scons 的 perl 前身),无需自行寻找,构建脚本已随源码树提供。
  • 依赖 nasm 与 gcc 2.95;需确保 X11 的 X Direct Graphics Access 与 X Video Mode 扩展头文件可用。
  • 典型编译命令:[..]/code$ ./unix/cons -- gcc=gcc-2.95 g++=g++-2.95。

Mac

  • OSX 编译工程文件位于 code/macosx/Quake3.pbproj。

补充说明

许可证构成

README 的 LICENSE 章节逐项列出了不受 GPL 覆盖的代码,这是理解本仓库使用边界的关键:

  • zlib 相关:code/qcommon/unzip.c(4299 行)与 libs/pak/unzip.cpp(4546 行)中处理 .zip 文件 I/O 的部分,版权归 Gilles Vollant 与 Jean-loup Gailly、Mark Adler,采用 zlib 式许可,允许商用与再分发,但要求保留来源声明、修改版本须明确标注、不得移除许可声明。
  • MD4 消息摘要算法:code/qcommon/md4.c(299 行)与 common/md4.c(277 行),版权归 RSA Data Security, Inc.,用于校验 pak 文件;许可要求在所有提及该软件的material中标注其名称,衍生作品须注明「derived from」。
  • 标准 C 库替代例程:code/game/bg_lib.c(1324 行),版权归加州大学董事会,采用 BSD 式四条款许可,含广告致谢条款。
  • ADPCM 编解码器:code/client/snd_adpcm.c(330 行),版权归 Stichting Mathematisch Centrum(阿姆斯特丹),允许免费使用、复制、修改与分发,但不得以其名义做广告宣传。
  • JPEG 库:code/jpeg-6 与 libs/jpeg6,版权归 Thomas G. Lane / Independent JPEG Group,采用 IJG 许可,分发源码须附带原始 README,仅分发可执行文件时须声明「based in part on the work of the Independent JPEG Group」。README 还特别说明:随附的库 README 已丢失,因此改用 6b 版本替代,且为便于引擎调用做了少量「glue type」修改。

学习建议

本仓库更适合作为引擎与工具链源码的阅读材料,而非开箱即用的游戏项目:

  • 若关注渲染、游戏逻辑与 OS 抽象层的组织方式,可从 code/ 入手,再结合 q3map、q3radiant 理解地图生产管线。
  • 若关注虚拟机与脚本编译链路,lcc/ 与 q3asm/ 构成一条从 C 到 qvm 字节码的完整路径,值得按顺序阅读。
  • 动手编译前请先确认工具链版本(尤其 gcc 2.95 与 VC7 属较早期环境),并留意 README 中关于「未广泛测试」的提示;同时务必区分 GPL 代码与上述第三方许可片段,避免误用。

README 未提供玩法指南、Demo 或在线文档链接,相关内容需自行核验。

开源许可证与版权说明

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

相似项目