devilution
Diablo devolved - magic behind the 1996 computer game
A faithfully reconstructed version of Diablo's original 1996 source code that lets you compile and run the classic game on modern hardware using your own copy of the game's data files.
Devilution is a reconstructed version of the original source code for Diablo, the 1996 action role-playing game by Blizzard. The project exists because the game was abandoned after its sequel came out and became increasingly difficult to run on modern hardware. A developer traced the code back through a series of accidents: a PlayStation port of Diablo made in Japan accidentally had its debug symbol file left in, and a special debug build was hidden inside a file on the PC release. By combining clues from both sources, the project reconstructed what the original code must have looked like.
The result is a drop-in replacement for the original game executable. It does not include any game data or art assets from Diablo itself. To actually play the game using Devilution, you need a legitimate copy of Diablo's data files, either from the original disc or from the GoG.com release. Once you have those files and compile the Devilution binary, it replaces the original Diablo.exe and runs the game.
One of the stated goals is to keep the code faithful to the original, including its bugs and rough patches, rather than fix everything immediately. This makes it a clean foundation that other developers can build on top of. The project also documents content that was cut or left unfinished before the game shipped, such as features that were planned but removed under time pressure.
For people who want to modify the game, having the source code is a significant improvement over the previous situation, where modders had to work by injecting code into a compiled binary they could not fully read. The README includes examples of simple mods, such as adding a health bar above enemies or a redesigned trade screen.
Multiplayer works through the original Battle.net service provided by GoG, as well as over local networks. Building the project requires a Windows development environment; instructions are provided for Visual C++ versions ranging from the 1990s tools used in the original development up to Visual Studio 2017, and for MinGW on Linux, Windows, and Mac.
Where it fits
- Compile and run the original Diablo game on modern Windows, Linux, or Mac using legitimate data files from the disc or GoG.
- Mod Diablo by editing readable C++ source code instead of injecting into an opaque compiled binary.
- Study 1990s commercial game engine architecture through the reconstructed Diablo codebase.
- Build new features or bug fixes on top of the clean source code as a foundation for community improvements.