本页目录

《超级马里奥64》完整反编译工程(sm64)

sm64 · n64decomp/sm64

n64decomp/sm64 是《超级马里奥64》的完整反编译工程,覆盖日版、美版、欧版、Shindou 版与 iQue 神游版(cn),可用 make 构建对应 ROM,并列出各版本 sha1。仓库不含编译所需全部资源,需自备原版 ROM(baserom.<版本>.z64)提取素材;...

动作游戏 射击 恐怖 自研引擎 C++ 角色控制 碰撞检测 敌人 AI 关卡管理 专家
★ Stars 8,970 Forks 1,686 License CC0-1.0 更新 2026-11-12

国内开发环境适配

Windows
官方声明支持
Linux
未知
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
需要 Visual Studio 2010 与 DirectX SDK(June 2010),属较老工具链;源码不含游戏数据,需自备正版游戏数据并更新至最新版;GitHub 访问与依赖下载可能需代理,具体待核验。

中文项目介绍

这个仓库是 id Software 以 GPL 授权公开发布的《Doom 3 BFG Edition》源代码包。需要强调的是:它发布的是代码而非游戏,仓库中不包含任何游戏数据(地图、材质、模型、音频等资源),这些数据仍受原版最终用户许可协议(EULA)约束,使用者必须照常遵守。README 同时提醒,若想让编译产物与正式版本保持一致,应先把游戏本体更新到最新版本;《Doom 3 BFG Edition》在 Steam 商店有售,但商店链接只用于购买游戏数据,与源码授权是两回事。

这一版源代码在功能上是「删减过的」。README 明确列出三处缺失:其一,不含任何 Steam 集成功能,包括漫游配置(roaming profiles)、成就、排行榜、匹配(matchmaking)、Steam 覆盖层以及其他 Steam 特性;其二,不含 Bink 视频的渲染功能,因此过场视频相关的播放路径在开源版中不可用;其三,不含通过「depth fail」方式渲染模板阴影(stencil shadows)的功能,也就是业界常说的「Carmack's Reverse」技巧。这三点意味着,即使你有正版数据,直接用这份代码编译出的程序也无法完整复现商业版本的全部表现;反过来说,它们也恰好标出了原版中由闭源中间件或专利化技巧承担的部分,对研究「商业游戏哪些模块会因法律或商业原因被剥离」很有参考价值。

核心功能

核心特性

许可证结构是阅读本仓库时不可忽略的一环。主体代码采用 GNU 通用公共许可证(详见 COPYING.txt),但还附带若干「附加条款」(additional terms),README 说明这些附加条款应随 GPL 正文一并提供,若缺失需以书面形式向 id Software(c/o ZeniMax Media)索取。更重要的是,有一部分第三方代码被明确排除在 GPL 覆盖范围之外,各自保留原有许可:neo/renderer/jpeg-6 下的 IJG JPEG 库(Thomas G. Lane 版权)、neo/framework/zlib 下的 zlib、neo/idlib/Base64.cpp 的 Base64 实现(Lars Wirzenius)、neo/idlib/hashing/MD4.cpp 与 MD5.cpp 的 RSA Data Security 摘要算法实现,以及 neo/framework/Unzip.cpp 与 Unzip.h 中基于 zlib 的 zip 解压 IO 代码。这些文件在再分发时必须保留各自的版权声明与免责声明,不能简单当成 GPL 代码处理。

构建方面,README 只给出了 Windows(win32)路径:官方提供 Microsoft Visual Studio 2010 工程文件 neo\doom3.sln,并期望该解决方案与 Express 版本兼容;此外必须安装 Microsoft DirectX SDK,工程默认到「C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)」这个路径查找,如果实际安装位置不同,需要自行修改工程文件里的包含目录与库目录。除此之外,README 没有承诺 Linux、macOS 或其他平台的官方构建方式,只在末尾提示:如果你拿到这份代码时距发布已过去数周,互联网上很可能已有各方维护的改良分支,视你的目的(研究、移植、做新游戏)而定,那些分支或许是更好的起点。

技术架构分析

技术要点

从学习角度看,这是一份体量可观、结构完整的 C++ 商业引擎与游戏逻辑源码:包含渲染器、音频、输入与文件系统抽象层,以及 idLib 这类自带的通用基础库(容器、字符串、哈希、序列化等),还有资源打包与解压、跨平台的类型与内存管理约定。它适合用来研究上一代 id 引擎的工程组织方式、模块划分与渲染管线写法,也适合做「把老引擎移植到现代平台」这类练习的起点。但它的门槛不低:老旧的 VS2010 工具链与现代编译器存在兼容问题,DirectX SDK(June 2010)已属淘汰组件,且由于缺少游戏数据、Steam 层与 Bink 播放,开箱即用的「跑起来看效果」体验并不成立。建议把它当作阅读与移植素材,而不是可直接二次开发的完整游戏基座。

开源许可证与版权说明

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

相似项目