本页目录

命令与征服:将军 / 绝命时刻(C&C Generals: Zero Hour)官方源码

CnC_Generals_Zero_Hour · electronicarts/CnC_Generals_Zero_Hour

EA 开源的《命令与征服:将军》及资料片《绝命时刻》源代码,C++ 编写的经典即时战略游戏(RTS)。README 说明该版本为两款游戏提供 Steam 创意工坊支持。仓库仅含源码,未附带 DirectX 9 SDK、STLport 4.5.3、3DSMax 4 SDK、RAD Miles/B...

策略 多人对战 自研引擎 C++ 敌人 AI 寻路算法 游戏状态管理 网络联机 专家
★ Stars 4,746 Forks 2,022 License 未明确 更新 2026-11-07

国内开发环境适配

Windows
官方声明支持
Linux
不支持
macOS
不支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
依赖中的 DirectX 9 SDK、3DSMax 4 SDK、RAD Miles/Bink、GameSpy、SafeDisk 等多为商业或已停止分发的组件,国内获取渠道与合法性需自行核验;README 未提供下载地址。构建需 Visual Studio C++ 6.0 或经 .NET 2003 转换后在 MSVC 2015+ 使用,旧版工具链在国内的获取与安装同样待核验。

中文项目介绍

本仓库是 Electronic Arts 公开的《命令与征服:将军》(Command & Conquer Generals)及其资料片《绝命时刻》(Zero Hour)的源代码。README 明确指出,此次释出的目的之一是为两款游戏提供 Steam 创意工坊(Steam Workshop)支持,并分别给出了《将军》与《绝命时刻》的创意工坊页面链接。

需要强调的是,仓库只包含源代码,不包含可直接运行的成品游戏。README 说明:若要使用编译产物,必须自行拥有正版游戏,可通过 EA App 或 Steam 购买《命令与征服:终极合集》。因此本仓库的定位更接近“源码归档与保存”,而非开箱即用的可玩发行版。

技术架构分析

如何构建

README 的编译章节标题明确标注为仅限 Win32。最快捷的全配置构建方式是:用 Microsoft Visual Studio C++ 6.0 打开 rts.dsw,选择 Build → Batch Build,再点击 “Rebuild All”。README 还提示,若希望二进制与《将军》1.08 补丁、《绝命时刻》1.04 补丁匹配,建议使用 SP6。

若要在较新的 Visual Studio 中编译,README 给出的路径是:先用 Visual Studio .NET 2003 打开 rts.dsw 完成旧工程转换,再用 MSVC 2015 或更新版本打开新生成的工程与解决方案文件。但 README 同时警告:现代 MSVC 强制执行更新的 C++ 标准,需要大量修改代码库才能编译通过;若目标是 Win64 平台,改动会更多。

构建完成后,编译产物会被复制到各游戏目录根下的 /Run/ 文件夹。

补充说明

依赖与缺失组件

README 用专门章节列出了重新编译所需的第三方库,并直言这些库需要“自行寻找或编写替代品,或者彻底移除使用它们的代码”。清单包括:

  • DirectX SDK(9.0 或更高),预期路径 \Code\Libraries\DirectX\
  • STLport 4.5.3,预期路径 \Code\Libraries\STLport-4.5.3
  • 3DSMax 4 SDK,预期路径 \Code\Libraries\Max4SDK\
  • NVASM,预期路径 \Code\Tools\NVASM\
  • BYTEmark,预期路径 \Code\Libraries\Source\Benchmark
  • RAD Miles Sound System SDK,预期路径 \Code\Libraries\Source\WWVegas\Miles6\
  • RAD Bink SDK,预期路径 \Code\GameEngineDevice\Include\VideoDevice\Bink
  • SafeDisk API,预期路径 \Code\GameEngine\Include\Common\SafeDisk 与 \Code\Tools\Launcher\SafeDisk\
  • Miles Sound System 的 “Asimp3”,预期路径 \Code\Libraries\WPAudio\Asimp3
  • GameSpy SDK,预期路径 \Code\Libraries\Source\GameSpy\
  • ZLib 1.1.4,预期路径 \Code\Libraries\Source\Compression\ZLib\
  • LZH-Light 1.0,预期路径 \Code\Libraries\Source\Compression\LZHCompress\CompLibSource 与 CompLibHeader

这些依赖大多属于商业 SDK 或年代久远的专有组件,README 并未提供获取方式,因此“能否成功重新编译”本身就需要读者自行核验。

已知问题与 STLport 补丁

README 记录了一个 Windows 平台的行为:文件名中包含 “version”“update” 或 “install” 字样的可执行文件在运行时需要 UAC 提权,这会影响 versionUpdate 与 buildVersionUpdate 两个项目作为构建后事件运行。解决办法是重命名这两个项目的输出二进制,避开上述关键词。

针对 STLport,README 说明该库需要修改后才能成功编译本源码,仓库已提供 stlport.diff 供审阅与应用,并提醒务必使用 STLport 4.5.3 再打补丁。

许可

本仓库及其内容采用 GPL v3 许可,并附加额外条款,具体以仓库中的 LICENSE.md 为准。

学习建议

对希望研究经典 RTS 架构的读者,本仓库的价值在于可阅读一套完整的商业 RTS 代码组织方式;但需做好心理准备:依赖缺失、工具链老旧、现代编译器兼容性差,README 本身也未承诺可顺利构建。建议先通读依赖清单与编译章节,评估替代方案后再动手,并把“能否编译成功”视为需要自行验证的开放问题。

开源许可证与版权说明

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

相似项目