Devilution 暗黑破坏神源码重构
Devilution 是 1996 年经典游戏《暗黑破坏神》初代的源代码重构项目,基于泄漏的符号信息与调试版本还原出接近原始形态的 C++ 源码,让这款老游戏重新可维护、可移植、可 MOD。
爱鲜报评分
0 人评分
9k
星数
否
中文
C++
主语言
是
活跃
58
贡献者
人工分析
EDITORIAL推荐理由
这是一次游戏考古与逆向工程的经典案例,项目把二十多年前的商业游戏源码重新带回社区视野,对研究老式 C/C++ 工程、Windows 95 时代编译链和游戏架构都极有价值。它不提供游戏素材,需要自备正版 diabdat.mpq,但正因如此才让源码本身成为可自由学习与改造的基础。适合对游戏史、逆向工程和 C++ 底层开发感兴趣的开发者深入阅读。
适用场景
- 学习 90 年代 C/C++ 游戏引擎架构与代码风格
- 研究 Windows 95 时代编译工具链与二进制还原
- 为《暗黑破坏神》初代开发 MOD 或移植补丁
- 逆向工程与符号信息还原的教学案例
- 老游戏跨平台移植与兼容性修复
优点
- 完整还原了初代《暗黑破坏神》的核心源码结构,参考价值极高
- 保留原始设计(包括 bug),便于对照研究真实历史代码
- 社区活跃,Star 近 9000,有 Discord 讨论渠道
- 支持 Visual C++ 6 到现代 Visual Studio、MinGW 等多种编译方式
- 为 MOD 开发与平台移植提供了统一基础,避免重复逆向
缺点
- 不包含任何游戏素材,必须自备正版 diabdat.mpq 才能运行
- 代码风格古老,存在大量历史遗留写法与已知 bug
- 编译环境配置繁琐,部分场景需旧版编译器与特定 SDK
- 许可证信息不明确,商用或再分发需谨慎评估
Devilution 是什么
Devilution 是对 1996 年暴雪经典作品《暗黑破坏神》(Diablo)初代源代码的重构项目。作者利用 1997 年 PlayStation 日版移植中意外遗留的符号文件,以及 PC 版 DIABDAT.MPQ 内隐藏的调试构建,经过数月拼合,还原出接近原始形态的 C++ 源码。
注意:本项目不包含任何游戏素材,运行需要自备正版
diabdat.mpq。
项目目的
- 让这款被暴雪长期搁置的老游戏重新变得可维护、可更新
- 为 MOD 作者提供统一、开放的代码基础,避免各自重复逆向
- 尽量保留原始设计,包括当年的 bug 与不规范写法,作为研究样本
- 记录被删减或未使用的游戏内容,还原开发历史
编译方式概览
项目支持多种工具链,README 中给出了大致方向:
- Visual C++ 6:打开
Diablo.dsw,选择 Debug/Release 后构建;追求与原版二进制接近时需搭配 SP5 与 Processor Pack - Visual Studio 2010–2017:打开
Diablo.sln构建,需关闭 DEP(/NXCOMPAT: NO),并安装 Windows 8.1 SDK、MFC、Universal CRT SDK 等组件 - MinGW:执行
make MINGW32=1或make,可附加debug参数
具体平台安装说明见仓库 docs/ 目录下的 Linux、Windows、Mac 文档。
运行与联机
编译产物用于替换原版 Diablo.exe,需要原版 1.09(b) 的 DIABDAT.MPQ、DiabloUI.dll、SmackW32.dll、Standard.snp、Storm.dll 等文件。联机方面支持 GoG 的 Battle.net 服务器与 IPX 封装,使用 StarCraft 1.16.1 的 Standard.snp 还可启用本地 UDP 联机。
适合谁
如果你对老式 C/C++ 工程、Windows 95 时代编译链、游戏逆向与移植感兴趣,这个仓库是一份难得的活教材;若只想直接玩游戏,则更适合购买 GoG 正版。
评论
- 暂无评论,来写第一条吧。