Skip to content
An open source re-implementation of Diablo 2
Go Shell
Branch: master
Clone or download
FooSoft and essial Remove ebiten reference in d2shared (#252)
* Remove ebiten reference in d2shared
* update d2shared reference to latest
Latest commit 61d63bc Dec 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update go.yml (#157) Nov 13, 2019
.vscode Visual Studio Code extension recommendations (#191) Nov 16, 2019
d2audio Migrate out d2common d2helper d2data modules (#195) Nov 17, 2019
d2core Engine and region reorganization in preperation for spatial partition… Dec 13, 2019
d2corecommon Add OSX support for path fixups. (#251) Dec 14, 2019
d2corehelper Migrate out d2common d2helper d2data modules (#195) Nov 17, 2019
d2render Remove ebiten reference in d2shared (#252) Dec 15, 2019
docs Added areas screenshot gif. (#218) Nov 21, 2019
.editorconfig Changes necessary for migration to org account (#67) Nov 2, 2019
.gitignore Add OpenDiablo2 non-windows bin to gitignore (#247) Dec 9, 2019
.travis.yml More CI fixes. (#225) Nov 22, 2019 Create Nov 22, 2018
CONTRIBUTORS Add CONTRIBUTORS file content to credits screen (#159) Nov 13, 2019
LICENSE Create LICENSE Oct 25, 2019 Update (#231) Nov 23, 2019
config.json Add OSX support for path fixups. (#251) Dec 14, 2019
d2logo.ico More build updates. Added build info to game. Nov 2, 2019
d2logo.png More build updates. Added build info to game. Nov 2, 2019
go.mod Remove ebiten reference in d2shared (#252) Dec 15, 2019
go.sum Remove ebiten reference in d2shared (#252) Dec 15, 2019
main.go Phase 1 prep work for gameplay (#196) Nov 17, 2019
rh.exe Final modification for builds Nov 2, 2019 Update (#241) Dec 2, 2019
tagdev.bat CI release updates Nov 2, 2019

OpenDiablo2 Build Status

Join us on Discord!
Development Live stream


About this project

OpenDiablo2 is an ARPG game engine in the same vein of the 2000's games, and supports playing Diablo 2. The engine is written in golang and is cross platform. However, please note that this project does not ship with the assets or content required to play Diablo 2. You must have a legally purchased copy of Diablo 2 and its expansion Lord of Destruction installed on your computer in order to run that game on this engine. If you have an original copy of the disks, those files should work fine as well.

We are currently working on features necessary to play Diablo 2 in its entirety. After this is completed, we will work on expanding the project to include tools and plugin support for modding, as well as writing completely new games with the engine.

Please note that this game is neither developed by, nor endorsed by Blizzard or its parent company Activision.

Diablo 2 and its content is ©2000 Blizzard Entertainment, Inc. All rights reserved. Diablo and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.



To pull the project down, run go get

On windows this folder will most likely be in C:\users\(you)\go\src\\OpenDiablo2\OpenDiablo2

In the root folder, run go get -d to pull down all dependencies.

To run the project, run go run . from the root folder.

You can also open the root folder in VSCode. Make sure you have the ms-vscode.go plugin installed.


There are several dependencies which need to be installed additionally. To install them you can use ./ in the project root folder - this script takes care of the installation for you.


The imports for this project utilize This means that even if you clone the repo, changes will not be taken as it will still pull from the main repo's files. In order to use your local version, add the following to go.mod in the base folder:

replace => /your/forked/import/path

This will tell go to use your local path instead of the official repo. Be sure to exclude this change from your pull requests!

If you find something you'd like to fix thats obviously broken, create a branch, commit your code, and submit a pull request. If it's a new or missing feature you'd like to see, add an issue, and be descriptive!

If you'd like to help out and are not quite sure how, you can look through any open issues and tasks, or ask for tasks on our discord server.

VS Code Extensions

The following extensions are recommended for working with this project:

  • ms-vscode.go
  • defaltd.go-coverage-viewer

When you open the workspace for the first time, Visual Studio Code will automatically suggest these extensions for installation.

Alternatively you can get to it by going to settings Ctrl+,, expanding Extensions and selecting Go configuration, then clicking on Edit in settings.json. Just paste that section where appropriate.


The engine is configured via the config.json file. By default, the configuration assumes that you have installed Diablo 2 and the expansion via the official Blizzard Diablo2 installers using the default file paths. If you are not on Windows, or have installed the game in a different location, the base path may have to be adjusted.


Main Menu

Select Hero

Select Hero

Additional Credits

You can’t perform that action at this time.