Diablo II remade using Java and LibGDX
Go to file
2019-03-05 21:22:26 -08:00
android Created speech.txt table to map sound id to string tbl key 2019-03-04 18:59:38 -08:00
core Minor changes 2019-03-05 21:22:26 -08:00
desktop Minor changes 2019-03-05 21:22:26 -08:00
ds1viewer init 2019-01-12 01:04:56 -08:00
gradle/wrapper init 2019-01-12 01:04:56 -08:00
mapbuilder Minor changes 2019-03-05 21:22:26 -08:00
mpqviewer Fixed compat with new Animation class API 2019-01-28 14:55:08 -08:00
screenshots Updated MapBuilder screenshot 2019-02-15 02:11:56 -08:00
server Added functional networking with multiple clients in a server rendered correctly 2019-02-08 20:56:04 -08:00
tester Minor changes 2019-03-05 21:22:26 -08:00
.gitignore init 2019-01-12 01:04:56 -08:00
build.gradle Added extremely basic path-finding algorithm 2019-02-17 18:50:14 -08:00
gradle.properties init 2019-01-12 01:04:56 -08:00
gradlew init 2019-01-12 01:04:56 -08:00
gradlew.bat init 2019-01-12 01:04:56 -08:00
README.md Updated README 2019-02-10 02:42:20 -08:00
settings.gradle Added server module with extremely basic socket support 2019-01-14 01:54:17 -08:00

LibGDX Diablo II

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. I will write articles in the future explaining how I was able to accomplish certain things, and how some core systems work.

Some important changes that I will note are that this version supports a 16:9 aspect ratio (the original was 640x480 and expansion was 800x600), and will eventually support wider. Because I'm limited to the original game assets, the game will be upscaled to the desired resolution, and 480p seems to work well on a smart phone, however I want to target 360p for the menus because components are sized much better. 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. 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 Battle.net), 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.

Features

  • 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
  • TODO Controller support
  • TODO Platform-specific features (Android touch, PC mouse, etc)

Screenshots

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