Les temps de chargement notoirement longs de GTA Online étaient une plaisanterie récurrente parmi les joueurs : plus de six minutes à fixer un écran de chargement avant d'entrer dans une partie. En mars 2021, un codeur connu sous le nom de t0st en a eu assez, a démonté le jeu et a conçu son propre correctif.
Le coupable était banal : la manière dont les développeurs de GTA Online avaient choisi d'analyser puis de trier les données d'un gros fichier JSON de plusieurs mégaoctets. Le correctif de t0st a produit une diminution d'environ 70 % des temps de chargement selon ses propres benchmarks informels, et son compte rendu notait que le problème central d'analyse et de stockage « ne devrait pas prendre plus d'une journée à un seul développeur pour être résolu ».
En deux semaines, Rockstar avait contacté t0st, reconnu qu'il avait révélé une véritable amélioration des temps de chargement de la version PC, lui avait versé 10 000 dollars dans le cadre de son programme de primes pour bugs, et s'était engagé à mettre en œuvre des changements dans une prochaine mise à jour du titre.
Six minutes de chargement se résumaient à une seule analyse et un seul tri d'un fichier JSON de plusieurs mégaoctets, limités par le CPU — un correctif d'une journée caché à la vue de tous pendant des années.
Le code de démarrage qui s'exécute à chaque lancement se cache à la vue de tous — personne ne profile ce qui a toujours été lent.
Une analyse et un tri inefficaces sur un fichier de plusieurs mégaoctets se multiplient en minutes d'attente pour le joueur à chaque lancement.
Un outsider muni d'un désassembleur et sans idées préconçues a trouvé en quelques jours ce que des années de développement routinier n'avaient jamais fait surface.
La chose la plus lente de votre produit peut être une structure de données que personne n'a jamais profilée — et parfois seul un client muni d'un désassembleur y jettera un œil.
Suites
La déclaration de Rockstar à PC Gamer confirmait que t0st « avait, de fait, révélé un aspect du code du jeu lié aux temps de chargement » qui pouvait être amélioré, et indiquait que des changements seraient livrés dans une prochaine mise à jour du titre, sans qu'aucun délai ne soit donné. L'épisode est devenu la référence standard tant pour le profilage communautaire que pour les paiements de primes pour bugs dans le jeu vidéo.
VÉRIFIEZ LES SOURCES
Les sources
- Developers to update GTA Online to address poor load times after community fix Ars Technica · arstechnica.com ·