引擎源码本体
以 C++ 编写的 Doom 3 引擎源代码,采用 GPL 授权,并附带若干附加条款(ADDITIONAL TERMS)。
UnityAircraftFight · linxinfa/UnityAircraftFight
这是一个使用 C# 编写的 Unity 飞机战斗项目,仓库描述仅标注为 UnityAircraftFight,未提供更多玩法细节。仓库 README 摘录内容实际为 Doom 3 GPL 源码发布说明,与项目名称不符,具体功能与实现情况待核验。
本仓库是 id Software 以 GPL 许可发布的《毁灭战士3》(Doom 3)引擎源代码,仓库描述为 “Doom 3 GPL source release”,主要语言为 C++。需要首先明确的一点是:这份源码发布不包含任何游戏数据。游戏数据仍受原始 EULA 约束,使用者必须像往常一样遵守该协议;同时,README 要求将游戏升级到最新版本。README 还给出了 Steam 商店中《Doom 3》与《Doom 3: Resurrection of Evil》的页面链接,作为获取正版游戏数据的途径。
因此,这个仓库的定位是“引擎源码参考与二次开发起点”,而不是一个开箱即玩的完整游戏项目。想要运行它,需要自行准备合法的游戏数据。
以 C++ 编写的 Doom 3 引擎源代码,采用 GPL 授权,并附带若干附加条款(ADDITIONAL TERMS)。
Win32 提供 Microsoft Visual Studio 2010 工程文件;GNU/Linux x86 使用 SCons 构建;MacOS X 提供 XCode 3.2 工程。
包含 Maya 导出插件相关代码,Maya 授权用户可从 Autodesk 获取 SDK。
仓库内捆绑了 Curl、JPEG library、OggVorbis、PropTree、OpenAL SDK、Base64 实现、基于 zlib 的 zip 读取、MD4 等组件,README 逐一列出了它们的版权与许可声明,并明确这些代码被排除在 GPL 覆盖范围之外(EXCLUDED CODE)。
README 中特别提到一项与渲染相关的技术说明:本次 GPL 源码发布不包含通过 “depth fail” 方法渲染模板阴影(stencil shadows)的功能,也就是常说的 “Carmack's Reverse”。这是阅读源码时需要留意的功能缺口,而不是构建配置问题。
在依赖层面,Win32 构建需要 32 位 MFC,因此免费的 Visual Studio 2010 Express Edition 无法成功编译;同时还需要安装 Microsoft DirectX SDK,若其未安装在 C:\Program Files (x86)\Microsoft DirectX SDK (June 2010),则需要相应修改工程文件。Linux 侧构建系统基于 SCons,在 neo/ 目录下执行 scons 命令即可。
README 给出的构建路径如下:
neo\doom.sln(Visual Studio 2010 工程)。注意需要 32 位 MFC 与 DirectX SDK,Express 版不可用。neo/ 文件夹中执行 scons。neo/sys/osx/。运行方面,由于仓库不含游戏数据,需要自行拥有正版游戏、升级到最新版本,并按 EULA 使用其数据。具体编译步骤与参数细节,README 未完整展开,建议以仓库内文档与实际工程文件为准,相关细节待核验。
许可证主体见 COPYING.txt(GNU GENERAL PUBLIC LICENSE)。此外,Doom 3 GPL 源码还受若干附加条款约束,README 说明这些附加条款应随 GPL 条款一并提供,若缺失可向 id Software 书面索取。
README 以清单形式列出了被明确排除在 GPL 之外的代码及其各自许可,包括 Curl、JPEG library、OggVorbis、PropTree、OpenAL SDK、Base64 实现、基于 zlib 的 zip IO、MD4 等。若要将这些部分用于自己的项目,需自行向版权持有者取得相应授权并遵守其条款。
这份代码更适合作为“商业级引擎源码阅读材料”与二次开发基础:
neo/ 下的渲染、声音、工具等模块),再结合构建系统定位入口。
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
jfduke3d 是 JonoF 对 3D Realms《Duke Nukem 3D》的源码移植,基于其 Build...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...