本页目录

SDL Sopwith:经典双翼机射击游戏移植版

sdl-sopwith · fragglet/sdl-sopwith

SDL Sopwith 是经典双翼飞机射击游戏 Sopwith 的移植版,原版由 BMB Compuscience Canada 开发,原作者 David L. Clark 以 GNU GPL 发布源码。项目使用 LibSDL,仓库说明其可运行于多数现代操作系统及 Web(通过 Emscripten),并支持自...

策略 自研引擎 C++ 地图编辑器 高级
★ Stars 122 Forks 29 License GPL-2.0 更新 2026-11-07

国内开发环境适配

Windows
官方声明支持
Linux
不支持
macOS
不支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建需在 Windows 上安装 Visual Studio 2017(官方建议)、Windows 8.1 SDK 与 MFC 组件,仅 Win32;更高版本 VS 可能因 Windows SDK 头文件打包不匹配报错。Steam 创意工坊相关功能依赖 Steam 网络,国内访问情况待核验。

中文项目介绍

该仓库是 EA 在 GitHub 上发布的《命令与征服:重制版合集》官方源码存档,内容涵盖 TiberianDawn.dll、RedAlert.dll 以及地图编辑器(Map Editor)的实现。它是游戏运行逻辑层面的源代码,并非一份可以直接双击启动、独立游玩的完整游戏工程:编译出来的二进制需要注入到正版《命令与征服:重制版合集》中才能生效,README 对此有明确说明——想使用编译产物,必须先拥有这款游戏。仓库以 GPL v3 附加条款的形式开源,且在发布后即被归档,官方声明不再提供技术支持。

从用途上看,这份源码最直接的价值是支撑 Steam 创意工坊。README 开篇点明,本次发布为 C&C 重制合集提供了 Steam 创意工坊支持,也就是说模组作者可以在此基础上阅读、修改并重新编译 DLL,从而制作或调整玩法模组,而不仅仅改动美术与地图资源。对于希望理解一款经典即时战略游戏在代码层面如何组织模拟逻辑的开发者来说,这是一个难得由商业公司主动公开的完整游戏逻辑源码样本。

技术栈方面,项目主体使用 C++ 编写,产物是 Win32 动态链接库;地图编辑器部分依赖 MFC,因此构建环境除了常规的 C++ 工具链外,还必须安装 MFC for Visual Studio C++ 组件与 Windows 8.1 SDK,二者缺一不可。整个工程通过根目录下的 CnCRemastered.sln 解决方案组织,README 给出的推荐构建流程是:在 Visual Studio 中打开该解决方案,从工具栏选择 Build 后进入 Batch Build,点击 Select All 再点击 Rebuild,一次性构建所有配置;构建完成后,编译产物会出现在仓库根目录新建的 bin 文件夹中。

核心功能

核心特性

构建过程中有几个容易踩坑的点。其一是 Visual Studio 版本:官方推荐使用 Visual Studio 2017,因为更高版本会因与 Windows SDK 头文件的打包不匹配而报错;其二是平台限制,README 明确标注为 Win32 Only,即只支持 32 位 Windows 目标,没有 x64 配置可选项。这意味着在 64 位开发机上依然要确保安装了对应的 32 位工具链与 SDK 组件。

在项目治理上,这个仓库的态度非常明确:它不接受任何形式的贡献,包括 pull request 和 issue,仓库仅用于保存(preservation)目的,归档后不提供支持。如果开发者希望基于这份代码做改动并寻求协作,官方给出的建议是在自己的 GitHub 用户或组织空间下 fork 一份。这一点在参与前需要提前了解,避免按常规开源项目的习惯去提 issue。

许可方面,仓库及其内容采用 GPL v3 授权,但附带额外条款,具体内容需阅读仓库中的 LICENSE.md。由于存在附加条款,若打算把修改后的 DLL 用于分发、整合进其他项目或用于商业场景,应先逐条确认这些附加限制,而不能只按标准 GPL v3 理解。

技术架构分析

技术要点

适合的学习点集中在几个方向:一是观察一个成熟 RTS 的模拟层如何以 DLL 形式与宿主程序解耦,理解游戏逻辑模块与引擎、渲染、平台层之间的边界划分;二是了解地图编辑器与游戏运行时之间的数据衔接方式;三是把它当作 C++/Win32/MFC 混合工程的构建实践样本,尤其是老旧工具链(VS2017、Windows 8.1 SDK)下的工程配置与批量构建流程。需要注意的是,README 并未逐项列出源码内部各模块的职责划分,涉及具体系统实现细节的内容,都需要自行阅读源码加以核验,不宜仅凭简介推断功能构成。

开源许可证与版权说明

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

相似项目