Trend DK
Forside Gaming Ét komma i tysk sprogfil crashede Steam-spil i månedsvis: Sådan...

Ét komma i tysk sprogfil crashede Steam-spil i månedsvis: Sådan fandt udviklerne den absurde fejl

Ét komma i tysk sprogfil crashede Steam-spil i månedsvis: Sådan fandt udviklerne den absurde fejl
Illustrationsfoto / AI-genereret

Udviklerne bag VR-mech-spillet Iron Rebellion jagtede spøgelses-crash i månedsvis, før de opdagede, at et enkelt komma i tyske spilleres systemindstillinger væltede hele netværkskoden.

Spillet crashede kun i et helt bestemt scenarie: en mech skulle ødelægges, falde til venstre på et specifikt kort, og der skulle være mindst to tyske spillere i kampen. Ellers skete der ingenting.

Historien blev fortalt af holdet bag spillet i en video og beskrevet af det tyske Gamestar, der peger på den uskyldige synder: kommaet.

Sådan knækkede kommaet netværket

Iron Rebellion er en 4v4 multiplayer-mech-shooter udviklet af det amerikanske studie Black Beach Studio, udgivet i fuld version 12. december 2024 til Steam og Meta Quest.

Når en mech i spillet blev ødelagt og faldt om, sendte klienten dens positionsdata som netværkspakker til de andre spillere. På engelske og amerikanske systemer skrives decimaltal med punktum, altså for eksempel 12.5. På tyske systemer skrives det samme tal med komma, altså 12,5. Da den tyske lokalisering også formaterede tallene efter tysk standard, kom der pludselig kommaer i netværkspakkerne, som de øvrige spilleres kode ikke kunne læse.

Resultatet var et hårdt crash for alle i kampen. Polske spillere ville teknisk set have oplevet samme fejl, da også de bruger komma som decimaltegn, men der var i praksis for få polske brugere til at udløse scenariet ret ofte.

Fejlen holdt sig skjult i månedsvis

Det bizarre var, at de automatiske crash-rapporter ikke viste noget som helst. Spillere klagede over pludselige nedbrud på både Steam og i Meta Quest Store, men udviklerne kunne ikke finde årsagen. Først da holdet begyndte at rekonstruere præcise kampsituationer manuelt, faldt puslespillet på plads.

Kombinationen af faldretning, kort og spillerlandenes system-indstillinger var så snæver, at fejlen kun ramte i ganske få situationer ad gangen. Løsningen var til gengæld simpel: tvinge netværkskoden til at bruge samme decimalformat på tværs af alle spillere, uanset lokal indstilling.

Ét tegn kan koste dyrt

Iron Rebellion er langt fra det første eksempel på, at et enkelt tegn kan vælte et system.

Da NASA opsendte rumsonden Mariner 1 den 22. juli 1962, blev raketten ødelagt 293 sekunder efter start, fordi en overbjælke over et symbol i guidance-koden var blevet glemt under indtastningen. Uden det lille tegn regnede computeren en anelse forkert og sendte raketten ud af kurs. Regningen lød på 18,5 millioner datidens dollars, hvilket svarer til over en milliard danske kroner i dag. Forfatteren Arthur C. Clarke kaldte det siden den dyreste manglende bindestreg i historien.

For Iron Rebellions vedkommende blev den økonomiske skade heldigvis begrænset til tid og tålmodighed. Men historien er endnu en påmindelse om, at moderne software hviler på antagelser, som verden ikke altid følger. Et komma i stedet for et punktum er nok til at vælte et helt spil, hvis netværkskoden ikke er forberedt på at møde en anden slags decimaltal, end den er vokset op med.

Ads by MGDK