本页目录

深渊引擎(Abyss Engine):C 语言编写的《暗黑破坏神2》洁净室重实现

AbyssEngine · AbyssEngine/AbyssEngine

使用 C 语言从零重写《暗黑破坏神2》游戏引擎的开源项目,目标是在可移植平台上复刻原作引擎,并便于模组制作与扩展。项目采用洁净室方式实现,不使用原作代码,也不进行逆向工程;官方说明指出其不兼容原作存档与多人系统。支持 Windows...

动作游戏 RPG 自研引擎 C 背包系统 游戏状态管理 音频系统 UI 系统 高级
★ Stars 331 Forks 60 License MIT 更新 2026-11-09

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建需从 GitHub 递归拉取子模块,国内网络可能受限,建议配置代理或使用镜像;运行需自备合法 MPQ 文件,获取途径受区域限制,请自行核验。

中文项目介绍

Abyss Engine 是一个采用洁净室(clean-room)方式、使用 C 语言从零重写《暗黑破坏神2》(Diablo II)游戏引擎的开源项目。其核心目标并非简单复刻原作,而是将原版引擎移植到一个可移植性更强的平台上,同时让模组制作与功能扩展变得更加容易。

需要特别说明的是,本项目不是逆向工程项目,开发过程中没有使用任何原作代码。官方也明确指出,引擎不兼容原版游戏的存档文件与多人联机系统。这意味着它更像是一个面向未来的、可改造的引擎基础,而非原版游戏的直接替代品。

项目通过 IRC 频道 #AbyssEngine(位于 irc.libera.chat)进行社区交流,官方已不再维护 Discord 存在,任何相关服务器均与本项目无关。

技术架构分析

构建指南

前置条件

在开始构建之前,请确保你的开发环境满足以下要求:

  • CMake 3.20 或更高版本
  • 符合 C99 标准的编译器(如 GCC、Clang 或 MSVC)

克隆仓库时,请务必递归拉取子模块:

git submodule update --init --recursive

编译方式

项目提供了多种编译途径,可根据你使用的开发环境选择:

  • Visual Studio 2022 / CLion / VSCode(配合 CMake Tools 扩展):直接在 IDE 中打开项目根目录并构建解决方案即可。
  • Xcode:先通过 CMake 生成 Xcode 工程,再加载构建:
mkdir build
cd build
cmake .. -G Xcode
  • 命令行:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release

运行引擎

编译完成后,不同平台的运行方式略有差异:

  • Linux 与 Windows:直接执行构建目录中的 abyss 可执行文件。
  • macOS:执行构建目录中的 Abyss Engine.app 应用包。

请注意,引擎运行前必须正确配置 abyss.ini 文件,否则无法启动。

输出日志

从命令行运行 AbyssEngine 时,日志会直接输出到控制台。在 macOS 上,你需要直接运行应用包内部的二进制文件才能看到日志:

./AbyssEngine.app/Contents/MacOS/AbyssEngine

技术要点与定位

Abyss Engine 使用纯 C 语言实现,遵循 C99 标准,构建系统基于 CMake。项目采用洁净室开发方式,强调代码的原创性与可移植性。其设计目标包括:

  • 在 Windows、macOS、Linux 等多平台上提供一致的运行体验;
  • 为模组制作者提供易于扩展的引擎架构;
  • 不依赖原版代码,规避法律风险。

由于引擎需要读取原版 MPQ 资源文件,它实际上是一个“引擎重实现 + 原版资源”的组合方案。这也意味着它无法脱离原版游戏资源独立运行。

补充说明

支持的平台

Abyss Engine 官方声明支持以下平台:

  • Windows 10+(x64、Arm64)
  • macOS(Arm64)
  • Linux(x64、Arm64)

其他平台或许也能运行,但不在官方支持范围内。

配置说明

MPQ 文件

引擎运行需要原版《暗黑破坏神2》及《毁灭之王》(LOD)的 MPQ 文件,这些文件不包含在仓库中。你可以通过购买游戏的实体副本,或从 battle.net 等数字发行平台合法获取。

开发团队明确表示不支持盗版,且网上多数盗版版本经过修改,引擎无法提供支持。使用盗版版本报告问题只会浪费开发资源,请避免此类行为。

abyss.ini

Abyss Engine 启动时必须加载 abyss.ini 配置文件。仓库源码中的 /content/abyss.ini 提供了模板文件,你需要将其复制到对应平台的本地设置目录:

  • Windows:%APPDATA%/abyss/abyss.ini
  • Linux:~/.config/abyss/abyss.ini
  • macOS:~/Library/Application Support/abyss/abyss.ini

复制后,请根据你的系统实际情况修改配置内容,确保引擎能够正确找到游戏资源。

学习与使用建议

对于想要学习游戏引擎架构或《暗黑破坏神2》实现细节的开发者,Abyss Engine 提供了一个难得的洁净室案例。建议从以下步骤入手:

  1. 先确保拥有合法的原版游戏 MPQ 文件;
  2. 按照构建指南完成编译,并正确配置 abyss.ini;
  3. 从命令行运行以观察日志输出,便于排查问题;
  4. 阅读源码时,可重点关注引擎的模块划分与资源加载逻辑。

需要注意的是,本项目不兼容原版存档与多人系统,因此不适合期望直接继承原版游戏进度的用户。它更适合作为学习、研究或二次开发的基础平台。

开源许可证与版权说明

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

相似项目