Diablo 1.09b Source Code Released (Devilution)
#1
(02-02-2018, 11:17 PM)TheKillerVortex Wrote: Reverse engineering the game is a behemoth of an undertaking (that's in reference to a professional programmer / reverse engineering specialist). You would be better off creating your own Diablo clone (...)

As far as: "Am I interested?" No. Unfortunately. Thank you, though.

Welcome!

Diablo was everything but loved by Blizzard. The last update to the game was in 2001, and Blizzard stopped supporting/selling it altogether a few years ago. I took up a mission to fix this problem. Diablo was a game I played extensively as a teenager; but as time passed, it became harder to run the game on newer hardware. The lack of new content also took away from the re-playability. Modding has too many limitations and reversing the game initially sounded like far too much work. (...)

After four months of hard work, I present to you Devilution! The entire source code to Diablo reverse engineered. Currently, programmers to help fix the remaining issues and beta testers are needed!

So what are you waiting for: Get the Source Code+Binary here

P.S. "Are you interested now?" Tongue
Reply
#2
Pretty amazing! I hope Blizzard doesn't go after you for this, but you never know. As you state on the github, you're not distributing the Diablo assets so a person would still need a copy of the game. That should keep you safe Smile

You left out interesting things in your post, too. Such as "I've uploaded a small mod which makes the UI much more like Diablo 2 in only a few hundred lines of code." People are going to have fun with this.
Quote:Considering the mods here are generally liberals who seem to have a soft spot for fascism and white supremacy (despite them saying otherwise), me being perma-banned at some point is probably not out of the question.
Reply
#3
I tried to keep it concise so it doesn't look like a bunch of rambling, hehe. Not sure what Blizzard will do, but hopefully nothing given the fact they no longer support Diablo as a product.

The goal of this is of course to modernize the game a bit without drastically changing things. A simple UI replacement and enabling unused content should keep things fresh. As great as Diablo may have been back in 1997, it stands the test of time. I'm sure you know that Bolty, I recall seeing your posts on the old forums from around then. (It's crazy how long ago that was!). After we've been spoiled with D2, Path of Exile, etc. it's such a pain to go back to using wrappers for IPX/Modem just to play over LAN.
Reply
#4
#3 at the moment. You must have done something right.

https://news.ycombinator.com/item?id=17338886
Reply
#5
GalaXyHaXz, you are now a personal hero of mine alongside Max Schaefer, sir. Thank you so much!

p.s. Looking at your documentation it seems clear you have interest in making an 'improved but classic' version of Diablo at some point. I reviewed your list of known Diablo bugs and wanted to add these two multiplayer related animation issues, as they're a bit obscure:

-1) If other players perform an action that changes their animation state (such as changing armor, unequipped a weapon/shield etc.), and this update is received by another client whose game currently sees that player in a 'locked' state that prevents actions (such as attacking, being stunned, blocking etc.) their animation instantly changes on that client but the 'locked' flag remains, which causes them to glitch out on the client's game and see them standing in place idly and periodically teleporting as their actual reported location on the network moves far away enough from the position the client currently thinks they are. I believe this same issue is why you often see players whose weapons have broken glitch out the same way - your own game 'unequips' the broken item, and then their client receives that update while they still see you mid-attack.

Further proof of this is evident in that stuck players can become unstuck when forced into an animation state that prevents action eventually, for instance if your game thinks the other player got stunned or would block an attack, as soon as the animation finishes they become normal again and you can see their actions.

(Boring note: This glitch could actually occur on your own character in older versions of Diablo where it was possible to open your inventory and change equipment while in a 'locked' state, e.g. mid-stun, and your own character would get stuck.)

-2) Other players somewhere erroneously reference your own local character's animation frame count, which results in weird stuff like seeing a Warrior plucking away at his bow fervently but you may not see a single arrow fired, or a Sorc swinging an axe as fast as a Warrior. Basically (example only; numbers may not be accurate) your Rogue may only have 10 frames when she fires a bow, and the arrows is loosed on the 8th frame, but the Warrior may have 16 frames (slower) and an arrow is loosed on frame 14. If the Warrior attacks 'slowly' you'll see these arrows fly out, but if they're clicking fast enough, on your screen they appear to shooting as fast as your Rogue (repeating the attack after the 8th frame or whatever), but their animation never actually gets back far enough to where the Warrior's arrow is spawned on your own screen.



I was actually intending to write ASM patches for these some day, but that seems wasteful now. Keep up the great work!
Reply
#6
(06-07-2018, 10:36 PM)GalaXyHaXz Wrote: I present to you Devilution!
Just want to say I heard the news from another place on the internetz, and letting you know nearly everyone who heard it and understood what it means are absolutely happy and impressed.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)