#5 Coding Error - GTA Online e il caricamento infinito
Di come un utente di GitHub risolse un problema che andava avanti da anni
Quinto appuntamento per Coding Error, l’appuntamento settimanale per gli amanti degli errori nei videogiochi. Abbandoniamo finalmente il mondo degli MMO ma non ci allontaniamo molto dall’ambiente multiplayer. Oggi parlo infatti di un problema che ha colpito tutti gli utenti che, per anni, volevano giocare a GTA Online e che, al momento dell’avvio, si ritrovavano davanti a una schermata di caricamento infinitamente lunga. Quindi, niente bug che rompevano tutto, niente Hard Disk distrutti o personaggi morti per strani problemi ma solo un fastidio durato per tanto tempo e risolto da un anonimo utente online.
Articoli precedenti
#1 World of Warcraft e il Corrupted Blood
#2 Phantasy Star Online 2 e il suo odio verso gli Hard Disk
Ma partiamo sempre da una breve introduzione del gioco in oggetto, anche se a ‘sto giro sembra veramente superflua. Grand Theft Auto V è infatti un titolo entrato nella storia oltre che in tre diverse generazioni di console. Pubblicato per la prima volta su PlayStation 3 e Xbox 360 a fine 2013, arrivò su PlayStation 4 e Xbox One a fine 2014, su PC l’anno successivo e sulle console attuali a inizio 2022. E poi è Skyrim quello a essere memato…
Vero e proprio fenomeno globale, l’ultimo titolo della serie open world di Rockstar è arrivato a essere il terzo gioco più venduto della storia, dopo Tetris e Minecraft, ed è anche entrato nel Guinness World Record come videogioco ad aver incassato più velocemente 1 miliardo di dollari. Ci sono voluti solo 3 giorni. Anche se le avventure di Michael, Trevor e Franklin hanno subito catturato le attenzioni dei giocatori di tutto il mondo, è stato GTA Online il vero protagonista.
La componente online arrivò circa un mese dopo l’uscita del gioco, a ottobre del 2013, e non fu una buona partenza. Erano presenti infatti bug e problemi vari e c’erano cheater a non finire. I soldi venivano generati come se nulla fosse e l’economia interna era completamente distrutta. Rockstar corse ai ripari arginando il problema il più possibile con ban e rimozione dei soldi generati e riuscì a stabilizzare la situazione. Da allora, GTA Online è stato un continuo crescendo inesorabile sia di popolarità che di contenuti.
La software house, dimenticandosi completamente dell’esistenza della campagna single player (così come accaduto per Red Dead Redemption 2), si concentrò unicamente sullo sviluppo di continui DLC dedicati alla componente online tanto da cancellare anche l’unico contenuto aggiuntivo che era stato previsto per la storia. E dal punto di vista economico, non gli si può dare torto. GTA Online era una vera gallina dalle uova d’oro. Le microtransazioni con le quali i giocatori possono acquistare denaro digitale permetteva un afflusso pressoché costante di denaro e il costo per aggiungere delle novità era inferiore rispetto a quello previsto per un DLC single player, che avrebbe comunque fatto incassare alla società solo nel momento della vendita, esaurendosi subito.
Ed ecco così arrivare, dal 2013 ad oggi, una spaventosa quantità di contenuto aggiuntivo per GTA Online grazie al quale gli utenti potevano mettere le mani su nuove armi, veicoli di tutti i tipi nonché nuove attività di gioco come le rapine, aggiunte nel 2015, il sistema VIP e guardie del corpo, l’import/export, casinò, nuove missioni e tantissime altre cose, la lista è infinita. Il successo fu garantito anche dal fatto che qualsiasi streamer e video su YouTube, in ambito gaming, era dedicato solo ed esclusivamente a GTA. Nel tempo poi sarebbe arrivata una nuova esplosione di notorietà portata dai server roleplay, dove i giocatori devono, come intuibile dal nome, fare roleplay e vivere così una nuova vita digitale.
Chi si approccia al gioco da marzo del 2021 in poi non avrà notato niente di strano ma prima di allora l’accesso alle lobby di GTA Online era piagato da un problema estremamente fastidioso. Risolti i crash, i bug e sistemati alla buona i cheater (che sono comunque sempre presenti), Rockstar non lavorò mai su una cosa: i tempi di caricamento. Accedere alla componente multiplayer di GTA 5 significava ritrovarsi davanti a circa 6 minuti di caricamento, ogni singola volta. E quella era la media, perché il tempo poteva aumentare anche fino a 15 minuti. E ciò era ancora più frustrante durante i primi periodi di vita, dato che i crash non mancavano. Insomma, avvii la partita, ti alzi, vai in bagno, ti fai un caffettino e torni a sederti, sperando non ci siano stati problemi. La cosa divertente della situazione? Il bug è stato risolto da un utente di GitHub. Sapete il detto no? Dove non arriva una compagnia miliardaria arriva un modder su Internet.
L’autore della soluzione avviò quindi GTA V e GTA Online e diede un’occhiata al Task Manager, scoprendo che, dopo circa un minuto di caricamento delle risorse generali usate sia per la modalità storia che per l’online, il gioco portava al massimo l’utilizzo di un singolo core del PC per minuti interi, senza fare nient’altro. L’uso del disco, della rete, della GPU e della memoria erano praticamente a zero. Cominciò così un processo di reverse engineering e, scavando nel codice del gioco, scoprì due errori di scrittura del codice piuttosto banali, che sarebbero potuti essere risolti velocemente, che impallavano completamente il caricamento.
Il codice aveva problemi nel leggere un file JSON e alcuni elementi venivano analizzati più volte, inutilmente. Dopo aver applicato una sua patch realizzata a mano, il tempo di caricamento passò dagli abituali 6 minuti a meno di 2. T0st realizzò quindi un lungo post in cui spiegava dettagliatamente tutta la procedura che aveva seguito e, dopo pochi giorni, di preciso il 15 marzo, venne contattato da Rockstar. La società aveva riconosciuto il problema e stava anche applicando la patch correttiva e T0st venne ricompensato con ben 10.000 dollari.
E così, grazie alla semplice curiosità di un utente, la miniera d’oro di Rockstar continuò a generare introiti a un ritmo ancora più veloce e frenetico rispetto al passato. Chissà cosa succederà all’uscita di GTA 6… Appuntamento alla prossima settimana con un nuovo appuntamento di Coding Error in cui parlerò dell’IA rotta di alcuni nemici di un gioco tristemente noto in Italia, ma per i motivi sbagliati.