Die notorisch langen Ladezeiten von GTA Online waren unter Spielern ein Running Gag: mehr als sechs Minuten Starren auf einen Ladebildschirm, bevor man in ein Spiel gelangte. Im März 2021 hatte ein Programmierer namens t0st genug davon, zerlegte das Spiel und bastelte seine eigene Korrektur.
Der Übeltäter war banal: die Art und Weise, wie die Entwickler von GTA Online die Daten in einer großen, mehrere Megabyte umfassenden JSON-Datei parsten und anschließend sortierten. t0sts Korrektur führte nach seinen eigenen informellen Benchmarks zu einer Verringerung der Ladezeiten um rund 70 %, und in seiner Ausarbeitung merkte er an, das Kernproblem beim Parsen und Speichern „sollte für einen einzelnen Entwickler nicht mehr als einen Tag dauern“.
Innerhalb von zwei Wochen hatte Rockstar t0st kontaktiert, anerkannt, dass er eine echte Verbesserung der Ladezeiten der PC-Version aufgedeckt hatte, ihm im Rahmen seines Bug-Bounty-Programms 10.000 US-Dollar gezahlt und zugesagt, die Änderungen in einem kommenden Titel-Update umzusetzen.
Sechs Minuten Ladezeit reduzierten sich auf ein einziges CPU-gebundenes Parsen-und-Sortieren einer mehrere Megabyte großen JSON-Datei – eine Korrektur von einem Tag, die jahrelang offen vor aller Augen verborgen lag.
Startcode, der bei jedem Start ausgeführt wird, verbirgt sich offen vor aller Augen – niemand profiliert, was schon immer langsam war.
Ein ineffizientes Parsen-und-Sortieren einer mehrere Megabyte großen Datei summiert sich bei jedem Start zu Minuten an Wartezeit für die Spieler.
Ein Außenstehender mit einem Disassembler und ohne Annahmen fand in Tagen, was jahrelange routinemäßige Entwicklung nie zutage gefördert hatte.
Das Langsamste in Ihrem Produkt ist vielleicht eine Datenstruktur, die niemand je profiliert hat – und manchmal wird nur ein Kunde mit einem Disassembler je einen Blick darauf werfen.
Rockstars Erklärung gegenüber PC Gamer bestätigte, dass t0st „tatsächlich einen Aspekt des Spielcodes im Zusammenhang mit den Ladezeiten aufgedeckt“ habe, der verbessert werden könne, und erklärte, die Änderungen würden in einem kommenden Titel-Update erscheinen, wobei kein Zeitrahmen genannt wurde. Die Episode wurde zur Standardreferenz sowohl für Community-Profiling als auch für Bug-Bounty-Auszahlungen im Gaming-Bereich.
DEN BELEGEN FOLGEN
Die Quellen
- Developers to update GTA Online to address poor load times after community fix Ars Technica · arstechnica.com ·