无尽太空(Endless Sky):2D 沙盒太空探索与贸易战斗游戏
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
AbyssEngine · AbyssEngine/AbyssEngine
使用 C 语言从零重写《暗黑破坏神2》游戏引擎的开源项目,目标是在可移植平台上复刻原作引擎,并便于模组制作与扩展。项目采用洁净室方式实现,不使用原作代码,也不进行逆向工程;官方说明指出其不兼容原作存档与多人系统。支持 Windows...
Abyss Engine 是一个采用洁净室(clean-room)方式、使用 C 语言从零重写《暗黑破坏神2》(Diablo II)游戏引擎的开源项目。其核心目标并非简单复刻原作,而是将原版引擎移植到一个可移植性更强的平台上,同时让模组制作与功能扩展变得更加容易。
需要特别说明的是,本项目不是逆向工程项目,开发过程中没有使用任何原作代码。官方也明确指出,引擎不兼容原版游戏的存档文件与多人联机系统。这意味着它更像是一个面向未来的、可改造的引擎基础,而非原版游戏的直接替代品。
项目通过 IRC 频道 #AbyssEngine(位于 irc.libera.chat)进行社区交流,官方已不再维护 Discord 存在,任何相关服务器均与本项目无关。
在开始构建之前,请确保你的开发环境满足以下要求:
克隆仓库时,请务必递归拉取子模块:
git submodule update --init --recursive
项目提供了多种编译途径,可根据你使用的开发环境选择:
mkdir build
cd build
cmake .. -G Xcode
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
编译完成后,不同平台的运行方式略有差异:
abyss 可执行文件。Abyss Engine.app 应用包。请注意,引擎运行前必须正确配置 abyss.ini 文件,否则无法启动。
从命令行运行 AbyssEngine 时,日志会直接输出到控制台。在 macOS 上,你需要直接运行应用包内部的二进制文件才能看到日志:
./AbyssEngine.app/Contents/MacOS/AbyssEngine
Abyss Engine 使用纯 C 语言实现,遵循 C99 标准,构建系统基于 CMake。项目采用洁净室开发方式,强调代码的原创性与可移植性。其设计目标包括:
由于引擎需要读取原版 MPQ 资源文件,它实际上是一个“引擎重实现 + 原版资源”的组合方案。这也意味着它无法脱离原版游戏资源独立运行。
Abyss Engine 官方声明支持以下平台:
其他平台或许也能运行,但不在官方支持范围内。
引擎运行需要原版《暗黑破坏神2》及《毁灭之王》(LOD)的 MPQ 文件,这些文件不包含在仓库中。你可以通过购买游戏的实体副本,或从 battle.net 等数字发行平台合法获取。
开发团队明确表示不支持盗版,且网上多数盗版版本经过修改,引擎无法提供支持。使用盗版版本报告问题只会浪费开发资源,请避免此类行为。
Abyss Engine 启动时必须加载 abyss.ini 配置文件。仓库源码中的 /content/abyss.ini 提供了模板文件,你需要将其复制到对应平台的本地设置目录:
%APPDATA%/abyss/abyss.ini~/.config/abyss/abyss.ini~/Library/Application Support/abyss/abyss.ini复制后,请根据你的系统实际情况修改配置内容,确保引擎能够正确找到游戏资源。
对于想要学习游戏引擎架构或《暗黑破坏神2》实现细节的开发者,Abyss Engine 提供了一个难得的洁净室案例。建议从以下步骤入手:
abyss.ini;需要注意的是,本项目不兼容原版存档与多人系统,因此不适合期望直接继承原版游戏进度的用户。它更适合作为学习、研究或二次开发的基础平台。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...