Skip to content
Diablo II remade using Java and LibGDX
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
android Added quest status strings Mar 31, 2019
core Simplified implementation May 10, 2019
desktop Deleted gdx.diablo Mar 29, 2019
ds1viewer Deleted gdx.diablo Mar 29, 2019
gradle/wrapper init Jan 12, 2019
mpqlib Setting up #8 Mar 21, 2019
mpqviewer Bugfix for some null layers for barb cofs May 5, 2019
screenshots Updated player creation screenshot Mar 20, 2019
server Deleted gdx.diablo Mar 29, 2019
tester Deleted gdx.diablo Mar 29, 2019
tools Scrolling now adjusts MapRenderer zoom May 15, 2019
.gitignore init Jan 12, 2019
AUTHORS Fixes formatting May 10, 2019
LICENSE Closes #23 May 10, 2019 Test commit of riiablo merge Mar 29, 2019
build.gradle init Jan 12, 2019
gradlew init Jan 12, 2019
gradlew.bat init Jan 12, 2019
settings.gradle Moved MapViewer to tools module -- deleted mapbuilder module May 5, 2019


This is my attempt at rebuilding Diablo II from scratch. There is still a long ways to go, but a lot of the core is there. The game itself uses 100% original Diablo II assets which are not (and will never) be provided, i.e., you should already own a copy of the game to play this. I am going to do my best to remain faithful to the original game, however I am planning on changing and adding additional features as I think they become necessary (e.g., auto gold pickup). I will write articles in the future explaining how I was able to accomplish certain things, and how some core systems work.

Unlike the original game, this version supports just about any reasonable aspect ratio (4:3, 16:9, 18:9, 21:9), however by design I'm locking the game to 480px in height because the original game assets are all geared for that (i.e., the width is dynamic). The expansion did introduce 800x600 support, and I may end up supporting that for the desktop version in the future (specifically for some of the multiplayer lobby stuff), but it's not necessary for the core functionality. The mobile version currently uses 360px height to make selecting UI elements easier, however since much of the UI panels are 480px, in-game is locked at 480px, but I will change this in the future or at least provide scaling on a per-component basis (text). This does run on Android, and I have been using a Galaxy Note 5 as the min spec when testing, but older phones may work as well, especially after optimizations have been made. I can already play Diablo II on PC, my goal is to be able to sit back and play it casually with my friends while also supporting cross-platform play. This game supports local play that can then be taken online (similar to Open, with a more secure option being far beyond that.

NOTE: This is not playable yet, but the game runs and you can load save files, walk around a bit and look at your characters. Game saves are not modified yet, and 1.13c+ saves are supported (support for some other versions may be added in the future, but it isn't a priority, and I expect most people to create new characters anyways). I do not plan on, or want to make this game compatible with playing with users using the original game client.


  • Written using Java + LibGDX + OpenGL
  • Runs on PC, Android and eventually more (IOS, Linux, etc.)
  • Cross-platform multiplayer
  • Dedicated servers, TCP/IP (listen servers) connections, and single player
  • Full console, including CVAR support and key bindings
  • Controller support
  • Platform-specific features (Android touch, PC mouse, etc)
  • Scalable UI (Partial for now)


In-Game Create Character

MPQ Viewer

Still a work in progress, but this allows you to look at the game's assets and is used to test my MPQ library implementation. Currently this does not allow for viewing all files that the game can load, but those should hopefully come in the future. This should be a replacement for DR Test in the future, at least in a general sense, since the UI I made is much more helpful when writing the game code.

Screenshot MPQ Viewer

Map Builder

Used to test the map building algorithm/renderer. This is very basic at the moment.

Screenshot Map Builder
You can’t perform that action at this time.