A clean-room reimplementation of the Diablo 2 game engine in C, designed for portability and modding.
Abyss Engine is a clean-room, from-scratch reimplementation of the original Diablo 2 game engine written in C. It recreates the classic Diablo 2 gameplay experience while being built on a portable, modern codebase designed for easier modification and extension than the original. The project does not use any original Diablo 2 source code and is not compatible with original save files or multiplayer systems.
Game developers, modders, and enthusiasts interested in studying, modifying, or porting the Diablo 2 engine to modern platforms. It specifically targets those who legally own Diablo 2 and want to experiment with its engine on Windows, macOS, or Linux.
Developers choose Abyss Engine for its legal, clean-room approach that avoids original code, its cross-platform support on x64 and Arm64 architectures, and its design focus on moddability and extensibility for community-driven projects.
Abyss Engine clean-room reimplementation of Diablo 2, written in C. The goal is to recreate the original game engine, but on a portable platform that can also easily be modded and extended.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Written entirely from scratch in C without using any original Diablo 2 code, ensuring legality and avoiding copyright issues, as emphasized in the README's description and philosophy.
Officially supports Windows, macOS, and Linux on both x64 and Arm64 architectures, making it runnable on modern systems like Apple Silicon Macs, as listed in the Supported Platforms section.
Designed to be easily modded and extended by the community, with a portable codebase that encourages modifications, highlighted in the project's goal and key features.
Built on a modern, portable codebase in C that is easier to understand and modify than the original engine's outdated code, facilitating educational use and experimentation.
The engine does not support original Diablo 2 multiplayer systems or save files, limiting it to single-player experiences and requiring users to start fresh, as admitted in the README's introduction.
Users must legally obtain Diablo 2 MPQ files to run the engine, adding a barrier to entry and assuming ownership of the original game, which is explicitly stated in the Configuration section.
Building and configuring involves steps like cloning submodules, using CMake, and setting up abyss.ini, which can be daunting for non-technical users, as outlined in the Building and Configuration sections.