Modder laat DOOM na 2,5 jaar onafgebroken draaien crashen

Een modder zegt DOOM te hebben laten crashen nadat de game 2,5 jaar onafgebroken draaide. Dat komt door een ontwerpkeuze van de ruim dertig jaar oude game, waarbij er continu een beetje extra data geschreven wordt. Dit zorgt er uiteindelijk voor een integer overflow.

WinDOOM crashDe modder schrijft dat hij voor het experiment WinDOOM op een Windows-PDA liet draaien. De kleine computer, vermoedelijk een ASUS MyPal A620, heeft een 18650-accu en werd gedurende het experiment van 5V-stroom voorzien. De modder startte het experiment op een onbekend moment, grofweg 2,5 jaar geleden, en zag onlangs dat de game uiteindelijk is gecrasht. Hoelang dat precies duurde, is dus niet bekend.

De crash wordt veroorzaakt door een overvloed aan opgeslagen 'gametics', ofwel ticks, updates van de gamestaat. Dat heeft met de engine van DOOM te maken. Die heeft een functie waarbij er vanuit het hoofdmenu een 'demo' gestart wordt wanneer de speler geen nieuw spel start. Het gaat hierbij niet om een opname van het spel, wat een groot bestand zou zijn, maar een klein lumpbestand waarbij de inputs van een denkbeeldige speler als het ware intern ingevoerd worden. Bij iedere loop van een van de drie demo's worden de gametics opgeslagen, maar niet gereset bij het starten van een nieuwe demo. Hierdoor bouwt het aantal opgeslagen informatie continu op.

Volgens berekeningen van Tom's Hardware worden deze ticks opgeslagen als gesigneerde 32bit-integer, ofwel een maximum van 2.147.483.647 ticks voordat er een intergeroverflow plaatsvindt. Dat gebeurt met een gamesnelheid van 35 ticks per seconde na net geen 1,95 jaar. Het medium speculeert dat de betreffende port van DOOM mogelijk op een lagere ticksnelheid van 30Hz draait, wat meer in de buurt zou komen van de vermelde 2,5 jaar aan draaitijd. De exacte speelduur voordat de specifieke crash plaatsvindt, is niet bekend.

Voor zover bekend is het voor het eerst dat iemand deze programmeertechnische beperking van de originele DOOM heeft getest. Voor een normale gebruiker is deze 'ontwerpfout' van programmeur John Carmack niet relevant. Althans, tenzij de speler om wat voor reden dan ook ruim twee jaar vergeet een nieuw potje te starten.

Door Yannick Spinner

Redacteur

17-09-2025 • 20:52

33

Reacties (33)

33
33
22
1
0
6
Wijzig sortering
.oisyn Moderator Devschuur® 17 september 2025 22:22
Borderlands 4 crasht al na 3 uur. Wat zijn we toch vooruitgegaan in de laatste 30 jaar :Y)
De ASUS MyPal A620 kan normaal zeker geen 18650 accu bevatten; dat past fysiek niet.
Ook dat is (als het klopt) al een mod op zich.
Het was dan ook een DIY gefabriceerde UPS met een 18650 die de PDA voedde.
Uit de bron
So I set up DOOM on a small PDA, powered through a DIY 18650 based UPS which itself was connected to the USB port of my router for a constant 5V supply.
dat moet niks uitmaken toch? als je geen accu meer kan krijgen moet je wat.
En toch.. In een virtuele machine waar je een veelvoud aan cpu kracht hebt, zou je toch met een verhoogde tick veel sneller tegen deze bug aan lopen? Bedoel, neem een tienvoudig snellere cpu, dan ben je met een drie a viertal maanden al zover. Als je dan ook de tick rate omhoog gooit (mits mogelijk) wordt het helemaal feest. Wel eerbiedwaardig dit, dat zeker :)
De tickrate wordt niet aangepast met framerate...
Nee ingesteld middels een variabele, maar daar heb je wel een snellere cpu voor nodig ;)
Om nog maar niet te spreken van het feit dat een Windows OS (ook al is het in dit geval Mobile of CE) 2,5 jaar onafgebroken draait, dat is ook een prestatie op zich. 8)7

[Reactie gewijzigd door akimosan op 17 september 2025 21:55]

Ik kan me nog een geval herinneren van 10-20 jaar terug, waarin Windows Servers na 48 dagen uit zichzelf gingen booten. Daarbij legden ze allerlei systemen, inclusief de vluchtleiding van een luchthaven, plat.
Was in Windows 95/98 en NT, na 49 dagen door een 32 bit counter die vol liep.
Dit verdient toch een aanmeding bij CVSS, niet?
Alleen als je er een exploit van kunt maken. Gewoon een crash is geen security risk.
30 Hz tickrate is niet veel.

We zijn met 64 bits tijdperk maar "verwend" met tickrates van 10 MHz en die levenslang niet overflowed.
Ik denk niet dat er moderne games zijn met een tickrate van 10 Mhz. Een tickrate is gewoon hoeveel keer per seconde de state van de game wordt bijgewerkt, en die ligt denk ik nog steeds wel gewoon tussen de 30 en 90Hz ofzo, afhankelijk van de game.

En ook tegenwoordig is het gewoon mogelijk dat applicaties en games teveel dingen in het geheugen willen plaatsen waardoor het geheugen volloopt en er dingen crashen; dat is geen opgelost probleem...
Minecraft zelfs maar 20 ticks per seconde!
De modder laat niks crashen, de titel doet dit vermoeden, maar het is toch echt de game zelf.
Hij laat het gebeuren, dus op zich klopt dat wel.
Nee de game, door de beperkingen.
Moraal van het verhaal: Alleen John Carmack kan Doom laten crashen, en zelfs dan kost het hem onder normale omstandigheden bijna 2 jaar.
En toch weet ik zeker dat John Carmack het irritant vind dat deze bug erin zit 😉

Hij is een en al optimalisatie, nette code, perfectie.
Dit verhaal _/-\o_ bijna literatuur in shortform. Prachtig.
Bedoelen ze dit met Stop Killing Games?


Om te kunnen reageren moet je ingelogd zijn