AX 爱鲜报

Devilution 暗黑破坏神源码重构

Devilution 是 1996 年经典游戏《暗黑破坏神》初代的源代码重构项目,基于泄漏的符号信息与调试版本还原出接近原始形态的 C++ 源码,让这款老游戏重新可维护、可移植、可 MOD。

爱鲜报评分

0.0

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 正版。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。