雷神之锤3竞技场(Quake III Arena)GPL 源码发布
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
Open-Golf · mgerdes/Open-Golf
用 C 语言编写的跨平台迷你高尔夫游戏。README 列出 HTML、iOS、Android、Windows、Linux 平台及对应试玩或下载入口。项目基于 Sokol 库实现跨平台 3D 图形与音频,并自行编写高尔夫球的碰撞检测与碰撞响应物理代码;借助 ImGui 搭建游戏...
这是美国艺电(Electronic Arts)以 GPL v3(附带额外条款)方式公开的《命令与征服:将军》及其资料片《绝命时刻》的完整游戏源代码仓库。它与常见的「开源复刻」或「同人重制」项目不同——仓库里放的不是可执行程序或美术资源,而是当年用于构建这款商业即时战略游戏的原始工程文件,包括游戏逻辑、渲染设备层、音频设备层、工具链工程等,属于商业作品源代码的保存(preservation)行为。官方在 README 中明确表示,该仓库不接收任何 Pull Request 与 Issue,也不提供技术支持,仅供存档与研究用途;若希望基于它继续开发,需要自行 Fork 到个人账号下再自行维护。
从内容定位来看,它是完整商业 RTS 的源码快照,而非教学示例。README 特别指出,本次发布的主要目的是为两款游戏提供 Steam 创意工坊(Steam Workshop)支持,并分别给出了《C&C 将军》(appid 2229870)与《C&C 将军:绝命时刻》(appid 2732960)的创意工坊页面链接。工程结构按当年 Westwood/EA 的惯例组织,源代码根目录下的 rts.dsw 是 Visual Studio 6.0 的工作区文件,涵盖了游戏本体与配套工具的多个工程;构建完成后,产物会被复制到各游戏目录根下的 /Run/ 文件夹中。
在技术实现上,这是一套典型的 2000 年代初期的 Windows 原生 C++ 大型工程:使用自研的 SAGE 世代引擎(仓库中大量出现 GameEngine、GameEngineDevice、WWVegas 等自有模块),把游戏逻辑、设备抽象层(DirectX 图形与输入)、音频、视频播放、压缩、网络联机等拆成独立库。它依赖大量当年的第三方组件,而这正是重建的最大障碍。README 逐一列出了缺失依赖及其在工程中期望的路径:DirectX SDK 9.0 或更高(\Code\Libraries\DirectX\)、STLport 4.5.3、3DSMax 4 SDK、NVASM 汇编器、BYTEmark 基准测试、RAD Miles Sound System SDK 与 Miles 的「Asimp3」模块、RAD Bink 视频 SDK、SafeDisc 光盘校验 API、GameSpy SDK,以及 ZLib 1.1.4 与 LZH-Light 1.0 两个压缩库。这些组件大多已停售、闭源或难以合法获取,README 建议的做法是自行寻找替代实现、重写相关封装,或者干脆把调用它们的代码整段移除。
构建流程方面,官方给出的「最短路径」是:用 Microsoft Visual Studio C++ 6.0(推荐 SP6,以便与《将军》1.08 补丁、《绝命时刻》1.04 补丁的二进制保持一致)打开 rts.dsw,通过 Build → Batch Build 的「Rebuild All」一次编译所有配置。若想用现代编译器,则需要先用 Visual Studio .NET 2003 打开旧工程并转换出新的解决方案文件,再用 MSVC 2015 或更新版本打开。官方同时提醒:现代 MSVC 强制执行更新的 C++ 标准,代码库需要做大量修改才可能通过编译,若打算编译 Win64 版本,改动量还要大得多。此外还提供了一个 stlport.diff 补丁文件,说明 STLport 也必须打补丁才能配合这份源码编译,且必须使用 4.5.3 版本。
平台支持非常明确:仅 Win32。README 的小节标题直接写作「Compiling (Win32 Only)」,没有提供 Linux 或 macOS 的构建说明,工程文件、DirectX 依赖与 SafeDisc 等组件也都是 Windows 专属。仓库中还有一条容易被忽略的「已知问题」:Windows 的策略会让文件名中包含 version、update、install 等字样(不区分大小写)的可执行文件需要 UAC 提权才能运行,这会使得 versionUpdate 与 buildVersionUpdate 这两个工程作为编译后置步骤执行失败;解决办法是重命名输出二进制,避开这些关键词。另外,README 强调即便编译成功,要实际游玩仍必须拥有正版游戏,可通过 EA App 或 Steam 购买《命令与征服 终极合集》。
对学习者而言,这份代码的价值不在于「拿来就能跑」,而在于它是一份罕见的、完整的商业 RTS 工程遗产:可以观察大型 C++ 项目如何分层组织游戏逻辑与设备层、如何组织多配置批量构建、如何处理跨模块的第三方 SDK 封装,以及当年光盘校验、GameSpy 联机、Miles 音频等已经被时代淘汰的技术栈长什么样。适合的人群是有一定 Windows C++ 与 MSVC 工程经验、对 RTS 架构或游戏 preservation 感兴趣的开发者。需要提前有心理准备的是:编译门槛属于专家级,缺失依赖多、许可证是带附加条款的 GPL v3(须阅读 LICENSE.md)、且没有官方支持渠道,任何构建尝试都应视为自行探索而非「按文档即可复现」。仓库未附带依赖、未提供可执行包与在线试玩,也没有 CI 或预编译产物,实际可构建性有待读者自行核验。
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
《影子武士》(Shadow Warrior)v1.2 CD 版完整源代码,由 3D Realms 于 2005...