Hacker maakt originele WipEout speelbaar in browser

Een hacker heeft de originele PlayStation-game WipEout uit 1995 werkend gekregen in de browser. Dat deed hij op basis van de vorig jaar uitgelekte broncode van de game, die het mogelijk maakte een rewrite te maken van het spel.

De game is te spelen op de website van ontwikkelaar Dominic Szablewski. Die heeft ook een blogpost geschreven over hoe hij de game wist te herschrijven zodat die op Windows, macOS en Linux compilet. Szablewski gebruikte daarvoor de broncode van de originele game die vorig jaar online werd gezet door een groep historici die zich inzet voor het behoud van games. Dat maakte het voor Szablewski een dilemma, zegt hij, maar volgens hem is het herschrijven van de broncode fair use en valt het hele project als abandonware te beschouwen.

De game laadt in de browser en neemt daar 144MB in beslag. Het grootste deel van de broncode zit in de intro en de muziek; Szablewski heeft ook een minimalistische versie online gezet die slechts 11MB groot is. De game kan in iedere browser worden gespeeld zonder dat er add-ons nodig zijn of instellingen moeten worden aangepast.

Wipeout port

Om de game speelbaar te maken heeft Szablewski praktisch alle onderdelen van de game moeten herschrijven. Hij herschreef de renderer, het geheugenbeheer en de graphics, maar ook onderdelen van de game zelf, zoals de hud, de menu's en het geluid.

De game was oorspronkelijk in C geschreven. Szablewski zegt dat het lastig was de game te herschrijven. "De kwaliteit van de gelekte broncode was verschrikkelijk", zegt hij. Het lek was van de WipEout ATI 3D Rage Edition en bevatte verder een port voor Windows. Die ports waren allemaal slecht gedocumenteerd, waardoor het voor Szablewski naar eigen zeggen moeilijk was iets van de game te maken. Szablewski heeft zijn eigen project ook op GitHub gezet, maar zegt dat hij er geen executables bij levert.

Door Tijs Hofmans

Nieuwscoördinator

15-08-2023 • 09:49

76 Linkedin Whatsapp

Reacties (76)

76
76
28
2
0
38
Wijzig sortering
https://phoboslab.org/wipegame/ spelen gaat hier maar lastig; de client trekt het niet :+ (oud beestje)
maar wel super gaaf project, altijd indrukwekkend hoe creatief en innovatief men kan zijn met stukje oude code

[Reactie gewijzigd door himlims_ op 15 augustus 2023 09:53]

Net even getest, mijn PC trekt het prima (goed deze is ook redelijk above average), grappig dat dit tegenwoordig gewoon in een browser kan draaien. Ik herinner de tijd nog dat het renderen van een live-streaming tabel in html / javascript al een hele uitdaging was. Een 3D game in een browser? No way :)
Bekijk ook eens deze lijst:
https://developer.mozilla.org/en-US/docs/Web/API

Dit zijn de API's waar een moderne browser toegang tot heeft zonder extra libraries.

Korte opsomming:
- Directe GPU access, 2D Canvas, 3D hardware
- Meerkanaals audio devices input en output
- Camera + barcode herkenning
- NFC, USB, Bluetooth, Gamepads, Geolocatie, Midi,
Wat ik trouwens zie op PhobosLab is dat er gebruik gemaakt is van WebGL (Wikipedia) Wat logisch is, aangezien het OpenGL is voor in de webbrowser.

[Reactie gewijzigd door Bliksem B op 15 augustus 2023 11:44]

well, je had altijd de semi 3d flash games zoals darkorbit/seafight
en de 3D games van maidmarian, sherwood dungeon/tank ball(2) die draaide ook in de browser, tot dat flash eruit gehaald werd
Alle 3D games zijn feitelijk semi-3d :)
Maar ik weet wat je bedoeld.
Je kan tegenwoordig gewoon C code compilen naar bytecode voor de browser en de performance is ongeveer de helft van native. Dit lijkt voor sommigen slecht, maar "de helft van native C code" is alsnog VEEL sneller dan vergelijkbare JS code.

Met de juiste toolchain kan je met 1 codebase C + SDL + OpenGL een app compilen naar windows, macOS, Linux en de browser.

Ook kan je libraries maken in C en die inladen in je browser en aanroepen vanuit JS, en je kan JS functies aanroepen vanuit je C applicaties. Naast C kan je natuurlijk ook je andere favoriete native taal gebruiken, waaronder Rust en C++
Ja, dat lijkt me fantastisch als je dat allemaal begrijpt ook :)
Je weet dat de Unreal Engine ook gewoon in een browser werkt :)

Alle unreal games kun je spelen in een browser
begin jaren 2000 speelde ik 3d browser games in flash op de school computers ?
er is ook een browser counterstrike spel werkt zelfs op men werk laptop.

[Reactie gewijzigd door TNG128MB op 15 augustus 2023 10:11]

ja, die browser game heb ik ook nog gespeeld heel even, wow, ik was dat compleet vergeten.
met mijn geweldige 20FPS toen XD
Alleen draaiden deze niet echt in de browser. Ze draaien in de Flash client op je PC wat feitelijk een normaal programma is welke de Flash content uitvoert. De browser was gewoon een doorgeefluik voor de beelden die van de Flash client afkomstig waren en deed verder niets.

Daarom was flash ook gevaarlijk 'by design'. Je downloadt zonder dat je er erg in hebt een programma welke onder je gebruikersprivileges lokaal op je PC draait alsof het een normaal programma is en zonder dat de browser snapt wat er gebeurd of dit kan controleren. Toegegeven; het was gesandboxed zodat het, in theorie, niet bij gebruikersgegevens kon komen, maar die sandbox bleek bij iedere hackers bijeenkomst weer zo lek als een mandje te zijn.

WebGL draait aan de andere kant daadwerkelijk in je browser. Het is je browser die de render-calls doet naar de GPU bijvoorbeeld.

[Reactie gewijzigd door MaestroMaus op 15 augustus 2023 13:35]

Ik herinner de tijd nog dat het renderen van een live-streaming tabel in html / javascript al een hele uitdaging was. Een 3D game in een browser? No way :)
Het klinkt misschien gek maar het fitten van een html tabel is een stuk complexer dan het aansturen van de gpu :)
Net geopend op mn iPhone 13. Draait als een zonnetje! 8-)

Super cool. Dit was een paar jaar geleden nog ondenkbaar!
Ik krijg op mijn ipad pro geen controls, hoe doe jij dat?
Erg leuk! Speelt prima op mijn laptop :)
Draait op een simpele NUC ook prima hoor! ;)
Echt te gek dat ik deze classic weer kan spelen.
Of proberen toch, ik ben meer van de controller i.p.v. keyboard-warrior. :P
Waarom word deze persoon een hacker genoemd?
https://nl.wiktionary.org/wiki/hacker
(informatica) iemand die geniet van de intellectuele uitdaging om op een creatieve, onorthodoxe manier aan technische beperkingen te ontsnappen
iem. die inbreekt in computers

https://www.vandale.nl/gr...derlands/betekenis/hacker

[Reactie gewijzigd door WEBGAMING op 15 augustus 2023 10:52]

In bepaalde technisch georiënteerde subculturen is een hacker een persoon die geniet van de intellectuele uitdaging om op een creatieve en onorthodoxe manier aan technische beperkingen te ontsnappen; bijvoorbeeld een goede programmeur. In deze subculturen wordt het gebruik van de woorden hacker en hacken door en voor computerinbrekers als misbruik van de term gezien; zij worden crackers, krakers of script kiddies genoemd.

https://nl.wikipedia.org/wiki/Hacker
Een link naar een wiki is niet echt bewijs voor de betekenis van een woord, het kan wel helpen. Iedereen kan namelijk op een wiki een aanvraag doen om de verklaring bij te schaven. Op die wiki's is het woord hacker duidelijk zijn eigen leven gaan leiden. De oorsponkelijke betekenis van hacken heeft niets met herschrijven van broncode voor een ander platform te maken gehad. Hacken heeft altijd al een negatieve connotatie gehad. Kijk daarvoor naar officiele woordenboeken als Van Dale, Prisma enz...

Het porten van een game door een programmeur, indien er toestemming voor is, heeft nog nooit een illegale bijklank ervaren, dit in tegenstelling tot hacken. Misschien is er nu de verleiding om hacken te gebruiken omdat de code herschreven is zonder toestemming van de eigenaar van de oorspronkelijke code...
Er is in ieder geval in andere artikelen van of over Dominic geen referentie te vinden naar 'hacker'. Dus volgens mij reflecteert het vooral de mening van de Tweakers auteur Tijs Hofmans.

Ik zou het persoonlijke geen fijn label vinden als professioneel (of amateur) ontwikkelaar. Op mijn werk is een hacker iemand die 'even iets in elkaar flanst', al dan niet als een proof-of-concept (dat is de positieve) , of om af te raffelen (de negatieve).

Hoe dan ook, die omschrijving doet geen enkel recht aan wat Dominic hier heeft gemaakt.
Elke coder , gamedev en indie is dus een hacker
Hacker maakt originele WipEout speelbaar in browser
Als ik het artikel zo lees, heeft ie niet echt iets gehackt. Ik denk dat de persoon deze negatieve titel niet verdiend. Retrogaming is vooral gebaseerd op nostalgie en preservatie.
Als ik het zo lees, hanteer jij simpelweg niet de juiste definitie van hacker. Hacker is geen negatieve titel.

https://nl.wiktionary.org/wiki/hacker
(informatica) iemand die geniet van de intellectuele uitdaging om op een creatieve, onorthodoxe manier aan technische beperkingen te ontsnappen
Hacking slaat niet alleen op de vorm die leken kennen, inbreken in accounts/netwerken. Hacken slaat ook op het open maken en/of hergebruiken van een stuk bestaande software op een nieuwe en/of aangepaste wijze. Hieronder valt bijvoorbeeld games porten naar systemen waar ze nooit voor zijn gemaakt of het aanpassen van de werking van een bestaande game, zoals bijvoorbeeld een pokemon romhack

[Reactie gewijzigd door youridv1 op 15 augustus 2023 11:53]

Je hebt gelijk, die betekenis klopt inderdaad. Maar taal evolueert; in de volksmond is een hacker gewoon een digitale inbreker en daarmee uit.

Er zijn genoeg woorden die een betekenis hebben/hadden maar die al lang niet meer in die contexten gebruikt wordt. Net zoals "literally" niet "letterlijk" meer wil zeggen, een "bolide" niet uitsluitend slaat op snelle racewagens, net zoals "gast" nu ook gewoon "man" wil zeggen, "schoon" niet meer slaat op uiterlijk maar op hoe proper iets is, etc.
Je hebt gelijk, maar om helemaal door te slaan naar
Ik denk dat de persoon deze negatieve titel niet verdiend.
vind ik dan ook weer zowat. De persoon in kwestie zou zichzelf waarschijnlijk gewoon een hacker noemen of het maken van deze game onder hacking vinden vallen.

De volksmond serieus nemen als het aankomt op IT is ook net anders dan met termen als literally, bolide, gast en schoon. Dat is mijn mening in ieder geval. Het klinkt een beetje gemeen, maar de gemiddelde persoon is pijnlijk digibeet. Persoonlijk ga ik daarom als het op termen uit onze niche komt niet echt af op wat de volksmond verstaat.
Natuurlijk zal ik het woord hacker gebruiken richting mijn oma in de context van een digitale inbreker, maar dat betekent niet dat ik globaal de definitie van dat woord aan ga passen naar iets fouts omdat dat makkelijker is voor mensen die mij een hacker noemen als ik iets intyp in een terminal.

[Reactie gewijzigd door youridv1 op 15 augustus 2023 15:32]

Guys, jullie realiseren je dat (ondanks dat het wel de gangbare vorm van .. is) hacken verder gaat dan computers en de digi/online wereld? (nee, ik heb het niet over 'lifehacks') Je kan een mechanische constructie netzogoed hacken, op ingenieuze manieren dingen laten doen waar de constructie in kwestie niet voor ontworpen is?

Bv https://tweakers.net/geek...e-cockpit-indicators.html
Helemaal herschreven voor deze browser versie. Is het dan de "Wipeout van Theseus"? :+

Maar verder wel heel cool dat dit allemaal kan nu. Ik ken echt nog de tijd van vage flash games op Newgrounds dat 15 jaar geleden 'the pinnacle' in browser gaming was. Echt tof hoeveel er nu mogelijk is geworden qua design.
Kennelijk worden de textures en muziek en dergelijke nog wel gebruikt. Als je die ook vervangt dan is het in essentie een nieuwe game.
Beetje zoals OpenTTD dus, dat over de jaren ook eigen content packs kreeg bovenop een herschreven codebase.
En het is eigenlijk al op basis van de code van een 'matige port'.
From what I can piece together, it mainly contains the “Wipeout ATI 3D Rage Edition” of the game. A lackluster port for Windows that was bundled with ATI GPUs.
Altijd knap als mensen dit soort dingen voor elkaar krijgen, dus zeker bewonderenswaardig.
Persoonlijk ben ik echter geen voorstander van in-browser gamen, dus ik houd het wel gewoon bij de bestaande Windows/DOS versie van WipEout, en voor de liefhebbers is er sowieso ook nog een onofficiële HD remake:

https://www.dsogaming.com...ance-and-better-controls/

[Reactie gewijzigd door ThanosReXXX op 15 augustus 2023 11:17]

Op mijn Chromebook loop ik tegen de framelimit aan (999 lijkt het?). Tof.

Leuk geschreven artikel ook met flinke dosis humor :o
The 5000 lines of if else that handles the menu state is a striking witness to this insanity.
Compileert en draait prima op een raspberry pi 4. (SDL vanaf commandline dus zonder x11)
Wel even stukje in render_gl.c aanpassen zodat ie "precision highp float;" zet in de shader_source als het geen EMSCRIPTEN is.

Daar gaat mijn productieve dag ;)

[Reactie gewijzigd door gepatto op 15 augustus 2023 13:53]

Het woord waar je naar zoekt is programmeur, heeft niks met hacken te maken.
Nee, het is toch echt hacken. De originele broncode is volledig ontleedt en herschreven.
De broncode was aangeleverd door anderen, die heeft hij niet gehacked. Hij heeft code omgezet van platform A naar platform B, volledig overnieuw, met de broncode als voorbeeld. Rare definitie van hacken wat mij betreft.

[Reactie gewijzigd door Diavire op 15 augustus 2023 12:26]

Ik citeer:
Om de game speelbaar te maken heeft Szablewski praktisch alle onderdelen van de game moeten herschrijven. Hij herschreef de renderer, het geheugenbeheer en de graphics, maar ook onderdelen van de game zelf, zoals de hud, de menu's en het geluid.

De game was oorspronkelijk in C geschreven. Szablewski zegt dat het lastig was de game te herschrijven. "De kwaliteit van de gelekte broncode was verschrikkelijk", zegt hij.
Er staat dus letterlijk in het artikel dat nagenoeg de hele game herschreven is. Dat is niet slechts een programma van platform A naar B overzetten.
Dat is dus letterlijk programmeren. Of het nou omcoden is of verse code schrijven, dat is programmeren. Dat je daarbij kijkt naar hoe iemand het eerder heeft gedaan maakt het geen hacken, juist omdat alles nieuw is, en er niet alleen maar stukjes her en der aangepast worden.

Edit: het lijkt dat we daarbij juist precies hetzelfde bedoelen, maar er een andere betekenis aan hangen.

[Reactie gewijzigd door Diavire op 15 augustus 2023 22:35]

Natuurlijk is het ook programmeren, maar een hacker programmeert ook. Maar laten we het simpel houden: hetgeen deze man gedaan heeft, wordt door alle media die erover geschreven hebben, inclusief Tweakers, hacken genoemd, dus doet het er verder niet zoveel toe wat voor een andere betekenis wij er als individu aan hangen. Als je code moet herschrijven om een programma of spel beter of anders te laten werken, dan breek je toch in op de broncode en volgens de officiële omschrijving valt dit toch echt onder hacken.

Het is ook niet altijd alleen maar negatief, hè? Ongetwijfeld weet je dit al, maar je hebt een veelvoud aan hackers, waarvan er meer dan genoeg zogeheten "witte" hackers zijn, die niets illegaals doen en vaak genoeg zelfs officiële instanties met hun expertise helpen.
https://nl.wiktionary.org/wiki/hacker
(informatica) iemand die geniet van de intellectuele uitdaging om op een creatieve, onorthodoxe manier aan technische beperkingen te ontsnappen
Games porten naar de browser of bijvoorbeeld het schrijven van een zogeheten romhack (hint hint) valt wel degelijk onder hacking. Niet alleen het inbreken op computers/accounts/netwerken valt onder hacking. Dat is slechts een toepassing ervan.

Sterker nog, als je het aan een "echte" hacker vraagt, dus zo iemand die ik hierboven beschrijf, dan wordt de term hacker onterecht misbruikt.

[Reactie gewijzigd door youridv1 op 15 augustus 2023 12:01]

Ik vind het daar genoemde punt 2 persoonlijk erg twijfelachtig. Dat is gewoon een fanatiekeling.

Het hercoderen van een spel (of code) van A naar B heeft wat mij betreft nog nooit de definitie van hacker gehad en klinkt meer als een verbastering die later is toegevoegd. Dan bestaan programmeurs bijna niet meer omdat iedereen onder het hacker mom zou vallen.
Toch is het de originele definitie en is de digitale inbreker een verbastering die door de non IT wereld is ontstaan. :)

Toch tof dat je gewoon graag gelijk wil hebben ongeacht of je iedereen die zichzelf met die term identificeert gewoon beledigt door te zeggen dat ze ongelijk hebben.
Dan bestaan programmeurs bijna niet meer omdat iedereen onder het hacker mom zou vallen.
Uh nee? Programmeurs die gewoon meewerken aan open source project of in dienst zijn van een bedrijf of zelf een applicatie schrijven voor de lol of profijt vallen dus niet onder hackers.

Programmeurs die bestaande code ontleden, decompilen, herschrijven, porten via de niet officiële weg identificeren zich wel degelijk met de term hacker en zij zijn ook de personen onder wie de term is ontstaan.

[Reactie gewijzigd door youridv1 op 15 augustus 2023 12:36]

Jouw eigen bron spreekt je daar op tegen, toen Nederland vroeger zelf nog maar amper internet toegang had en de meesten op HetNet zaten was de interpretatie op IRC al zoals punt 1 in jouw bron, dus uh, ja, kan ik verder niet zoveel mee.

Gelijk of ongelijk kan me verder roesten, ik weet wat ik ermee bedoel en wat de mensen om me heen bedoelen als ze het gebruiken, interessant verhaal verder maar niet hoe het in de werkelijkheid gebruikt wordt.
Alleen toont dit juist aan dat niet iedereen weet wat jij bedoelt met het woord hacker.
Als ik naar de wiki link kijk die s2n6 hieronder heeft gepost denk ik dat ik er toch niet naast zit, maar goed.
Het ging mij hierom: ik weet wat ik ermee bedoel en wat de mensen om me heen bedoelen als ze het gebruiken

Zoals blijkt uit de reacties is dat dus aantoonbaar niet het geval...
Misschien een kleine miscommunicatie, maar met mensen om me heen bedoel ik toch echt mensen in mijn omgeving, niet online forum gebruikers, no offense. :)
En daarom is communicatie moeilijk. We kunnen niet ruiken wat je bedoelt dus moet je duidelijk zijn. En dit toont aan waarom je niet zo maar je eigen betekenis aan iets kan geven.

Het ligt echt aan jou, no offense.
Mwah, ik denk dat "mensen om me heen" duidelijk zat is dat ik daar niet mijn medetweakers mee bedoel, die ligt toch echt met bij jou. Niet zo lullig bedoeld als het klinkt, maar die valt toch echt onder "touch grass". :)
Misschien is dit een generatiedingetje? Ik ga al even mee en in mijn hoofd is een hacker in de eerste plaats een computerenthousiasteling die dingen doet met een computer/IT die het gewone overstijgt. Die louter negatieve/criminele connotatie is er denk ik pas later gekomen. Taal evolueert.

Btw. In de EN-NL vertaling van 'hacker' vermeldt vandale ook "computermaniak, computerfanaat, computerfreak". Ook Myriam-webster vermeldt beide betekenissen (https://www.merriam-webster.com/dictionary/hacks#dictionary-entry-1).

De engelstalige wikipedia-pagina voor hacker vind ik ook iets meer aansluiten bij wat ik als hacker zie dan de NL-versie.
Misschien wel.

Dit uit jouw link:
"A hacker is a person skilled in information technology who uses their technical knowledge to achieve a goal or overcome an obstacle, within a computerized system by non-standard means. Though the term hacker has become associated in popular culture with a security hacker – someone who utilizes their technical know-how of bugs or exploits to break into computer systems and access data which would otherwise be inaccessible to them"
is wat mij betreft een hacker.

Wat mij betreft valt iemand die compleet nieuwe code schrijft met daarnaast het voorbeeld van hoe iemand anders het eerder heeft gedaan, in een totaal andere taal, dus niet onder de noemer hacker, maar programmeur.

Ik bedoel, er is niet echt iets "non-standaard" aan? Het is qua code volledig nieuw, maar gewoon volgens normale wegen behaald.

Als hij nou de oorspronkelijke code had aangepast zodat het in een browser werkt, dan zou het meer onder hacken vallen, maar dat is niet wat hier gebeurt is.
Gaaf zulke projecten. Bij mij gebeurt er alleen niks als ik "play" selecteer :'(
Gebruik de X toets op je toetsenbord
Geweldig, leuk idee om misschien in de toekomst zo oudere games te kunnen herspelen.
Een beetje wat archive.org doet met hun MAME/MESS "online arcade" archive ?
Waarvoor ze waarschijnlijk wel aangeklaagd gaan worden.

Persoonlijk vind ik het heerlijk dat dingen bewaard worden, maar alles in de browser,
dat vind ik dan weer geen goed idee. Je hebt immers geen idee waar al die 3rd party code vandaan
komt. De browser als OS ... zucht !
Klopt, een makkelijkere tussen oplossing moet er komen. Soort van app waarin je alles kunt spelen voor een x bedrag per jaar.
Moet je alleen nog een manier zien te vinden om de uitgevers/ontwikkelaars/op andere manier rechthebbende instanties zover krijgen dat ze daar toestemming voor geven (voor x% van de omzet oid ala muziekstreaming), anders wordt er inbreuk gemaakt op interlectuele eigendommen (het delen van cc protected content) en ook nog eens geld binnengeharkt over diezelfde content. Goeie manier om een zee van rechtzaken over je heen te krijgen (die je dan geheid zal gaan verliezen)🤣
Antstream Arcade is z'n voorbeeld dat ik bedoel, met meer dan 1300+ games. €30,00 voor een jaar pas of €80,00 voor een lifetime pass.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee