Diablo er kommet til din browser

Illustration: Screendump
Virksomheden Rivsoft har bragt det gamle Blizzard-spil til browseren.

Det er et velkendt fænomen, at alle platforme før eller siden kommer til at afvikle Doom, men måske er den samme udvikling ved at ske med Blizzards hack-n-slash-klassiker Diablo.

Nu kan du i hvert fald spille Diablo direkte i browseren takket være udviklerne hos Rivsoft.

Læs også: Blizzard fejrer Diablo-jubilæum ved at genskabe Diablo 1 i Diablo 3

Man kan gratis spille demo-versionen, som i det gamle Diablo gik under navnet 'Spawn version'. Ideen var, at man kunne tage sin CD-ROM med hjem til en kammerat og installere et spawn af spillet på deres computer, som kunne spilles uden CD-ROM.

Læs også: Diablo III overtrumfer Yousees planer om kabelarbejde

I dag har Diablos spawn-funktion fået nyt liv som default-udgaven af browserspillet, men det kan også lade sig gøre at spille den fulde version - selvfølgelig kun hvis man er legitim ejer af spillet.

Hvis man stadig har Diablo stående på hylden (og en computer med et optisk drev), eller hvis man har købt genudgivelsen fra GOG.com, kan man finde filen DIABDAT.MPQ frem og på den måde låse op for den fulde udgave af spillet.

Diablo i browseren kan lade sig gøre på grund af Devilution, et omfattende projekt, hvor en programmør har genskabt hele Diablos originale kildekode til fri brug for alle.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Sune Marcher

Diablo i browseren kan lade sig gøre på grund af Devilution, et omfattende projekt, hvor en programmør har genskabt hele Diablos originale kildekode, til fri brug for alle.

Projektet har ikke "genskabt den originale kildekode" (hvilket er en sætning der ikke giver ret meget mening – hvordan genskaber man noget originalt?).

Der er tale om at folkene har reverse engineered executables, og fordi udviklerne af Playstation releasen havded glemt at strippe debug information, har de været i stand til at få en masse af de oprindelige funktions/variabelnavne ud, og haft væsentligt nemmere ved at transformere maskinkode til C++, end hvis det skulle gøres helt fra bunden. Stadig et kæmpe arbejde, og hatten af for det!

Men originale kildekode? Nej. Alle kommentarer er naturligvis væk, preprocessor statements er replaced, og så videre. Alt der ikke er nævnt i debug symbols (navne på lokale variable?) har de været nødt til at gætte på selv.

...og så er projektets legale status mildest talt i en gråzone. Jeg håber at Blizzard enten vælger at blive ved med at ignorere det, eller måske endda greenlighter det – hell, måske endda gør som id Software og releaser den oprindelige kildekode (hvis den ikke er gået tabt). I mellemtiden bør man nok lige lave en git clone hvis man er interesseret i projektet :-)

Bjarke Rodas

Men originale kildekode? Nej. Alle kommentarer er naturligvis væk, preprocessor statements er replaced, og så videre. Alt der ikke er nævnt i debug symbols (navne på lokale variable?) har de været nødt til at gætte på selv.

Fra README'en på github:

"To top it all off a special build is hidden on the PC release in DIABDAT.MPQ -> D1221A.MPQ -> DIABLO.EXE! This build contains debug tools and assert strings further giving away code information.

After months of piecing these mistakes together, Devilution was born. I present to you a reconstructed form of Diablo's original source code! Once more shall the heroes of Sanctuary return to the depths below!"

Så de har faktisk netop fx assert strings, men mangler selvf. kommentarer.

Sune Marcher

Så de har faktisk netop fx assert strings, men mangler selvf. kommentarer.


Og preprocessor symbols :-)

Version2 er mega-goddamn-broken med hensyn til kode-blokke for tiden, jeg får

The requested URL was rejected. Please consult with your administrator.

Your support ID is: 8219780963969317387

hvergang jeg forsøger at poste snippets, men disclaim.cpp er et godt og simpelt eksempel på manglede preprocessor symboler.

Assert strings kan være ret så nyttige. Jeg har ikke kigget på exe-filen, så ved ikke hvor meget der er – men typisk brug af assert er til at verificere nogle preconditions (af typen der altid bør være true, så ikke brugt på safety checks der skal med i produktionskode), og typisk ikke i function bodies og slet ikke i fx for loops.

Jeg har skimmet nogle enkelte af filerne fra GitHub, og det er et ret dygtigt reverse engineering arbejde – det ligner noget der rent faktisk kan arbejdes med. Bare det at det er splittet op i source moduler er en kæmpe hjælp.

Hvem der bare havde haft debug symbols til sit reverse engineering arbejde ;)

Log ind eller Opret konto for at kommentere