本页目录

Unity 飞机战斗(UnityAircraftFight)

UnityAircraftFight · linxinfa/UnityAircraftFight

这是一个使用 C# 编写的 Unity 飞机战斗项目,仓库描述仅标注为 UnityAircraftFight,未提供更多玩法细节。仓库 README 摘录内容实际为 Doom 3 GPL 源码发布说明,与项目名称不符,具体功能与实现情况待核验。

射击 恐怖 自研引擎 C++ 碰撞检测 物理系统 地图编辑器 动画系统 专家
★ Stars 4,646 Forks 1,773 License 未明确 更新 2026-11-06

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建依赖较重:Win32 需 32 位 MFC 与 Microsoft DirectX SDK(June 2010),Linux 需 SCons;游戏数据需自备正版并升级到最新版本。国内获取 DirectX SDK 与旧版 Visual Studio 2010 可能不便,具体可用性待核验。

中文项目介绍

本仓库是 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 给出的构建路径如下:

  • Win32:使用 neo\doom.sln(Visual Studio 2010 工程)。注意需要 32 位 MFC 与 DirectX SDK,Express 版不可用。
  • GNU/Linux x86:构建系统基于 SCons(http://www.scons.org/),在 neo/ 文件夹中执行 scons。
  • MacOS X:XCode 3.2 工程位于 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/ 下的渲染、声音、工具等模块),再结合构建系统定位入口。
  • 关注 README 明确指出的功能缺口(stencil shadows 的 depth fail 方法)与平台差异,避免把缺失功能误判为编译错误。
  • 若目标是获得更新、更完善的引擎版本,README 提示:在源码发布数周之后再获取该代码的用户,往往能在互联网上的各类开源项目中找到经过修改与改进的版本,视个人兴趣而定,这些项目可能是更好的起点。
  • 使用游戏数据前务必确认 EULA 与本地法律要求。

开源许可证与版权说明

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

相似项目