#4 Coding Error - RuneScape e il Massacro di Falador
Di come una festa in casa si è velocemente trasformata in un delirio di PvP non richiesto
Quarto appuntamento con Coding Error. Ehy, sono costante in qualcosa, sono fiero di me stesso. E quindi, dopo il primo capitolo dedicato al Corrupted Blood di World of Warcraft, il secondo a Phantasy Star Online 2 a cui non andavano a genio gli Hard Disk e il terzo in cui, per un banale errore di codice, l’updater di EVE Online cancellava il file Boot.ini del sistema operativo, oggi rimaniamo sempre nel campo degli MMO e ci riallacciamo idealmente al primo appuntamento della serie. Gli Hard Disk, questa volta, sono perfettamente al sicuro ma lo stesso non si può dire degli alter ego digitali degli utenti di un determinato mondo di RuneScape che, nel 2006, per circa un’ora, sono stati vittime di PvP non richiesto e non voluto ed entrato nella storia. Questo è il Massacro di Falador.
Articoli precedenti
#1 World of Warcraft e il Corrupted Blood
Definiamo prima per bene di cosa stiamo parlando. RuneScape è un MMO sandbox nato nel 2001 e che detiene due record del mondo come MMORPG browser gratuito più popolare al mondo, conseguiti rispettivamente nel 2007 e nel 2008. Stiamo parlando di più di 300 milioni di account creati, numeri enormi, con circa 2 milioni di account attivi al mese. Nel 2004 il motore di gioco subì un pesante processo di riscrittura e il gioco venne aggiornato talmente tanto che la software house, Jagex, lo pubblicizzò come RuneScape 2. La grafica diventò tridimensionale, il sistema di combattimento venne cambiato e fu aggiunta anche la musica. La versione originale non era stata chiusa ma rimase online come RuneScape Classic.
Nel 2013 il titolo attraversò un nuovo processo di aggiornamento che lo portò a diventare RuneScape 3. Nuove musiche orchestrate, una nuova interfaccia utente e dei controlli della telecamera migliorati diedero vita così al gioco conosciuto ancora oggi. La versione Classic diventò Old School Runescape, una versione “vintage” nata come un’esatta copia del gioco del 2007 che nel tempo è stata comunque migliorata ed espansa, un po’ come World of Warcraft Classic, che non è una esatta e fedele riproduzione dei tempi che furono.
Come detto prima, si tratta di un gioco sandbox in cui, in pratica, non è presente una storia lineare. I giocatori fissano i propri obiettivi e crescono il personaggio come meglio credono, adattandolo al proprio stile. Tutto questo è basato sul sistema delle Skill, le abilità di ogni personaggio. Quest’ultime aumentano man mano che si utilizzano, in un sistema simile a quello presente anche in altri giochi come Ultima o Skyrim, per dirne un paio. Ed è proprio da una skill che ha origine, indirettamente, la storia di oggi.
I problemi partono già dal momento in cui è necessario definire una data precisa per l’avvenimento. A causa dell’ora in cui accadde e dei vari fusi orari dei soggetti interessati, qualcuno sostiene sia avvenuto il 6 giugno, altri il 7. Alla fine fu deciso che tale avvenimento accadde il 6 giugno 2006, il 6/6/6. Il primo personaggio di questa vicenda è un giocatore neozelandese, Cursed You, che amava veramente tanto RuneScape. Era stato introdotto al gioco da un suo amico e cominciò a giocarci tanto, ma veramente tanto, al punto di arrivare a vendere denaro virtuale in cambio di valuta reale tramite siti di terze parti. Una pratica vietata dai TOS ma che, in un primo momento, riuscì a praticare senza essere scoperto. Arriviamo così al 30 maggio 2006, giorno in cui Jagex introdusse una nuova skill, Construction.
Cursed You, insieme ad altri tre amici, voleva essere il primo al mondo a raggiungere il livello massimo in questa Skill, il livello 99. Cominciò così un grinding no-stop. Convinse addirittura i suoi genitori a farlo rimanere a casa da scuola. Quando era costretto a dormire o uscire veniva sostituito da un amico, che continuava a giocare incessantemente (anche se ci sarebbe un attimo da discutere sul termine “giocare” data l’estrema ripetitività delle azioni che eseguivano per raggiungere il loro scopo). C’è da dire che questa pratica fu portata avanti tramite tick manipulation. Piccola parentesi necessaria: il motore di gioco di RuneScape, così come quello di tantissimi altri titoli multiplayer, funziona su un'unità di tempo predefinita chiamata in gergo "tick", ognuno dei quali dura circa 0,6 secondi. Tramite la sopracitata tick manipulation si può ridurre il numero medio di tick impiegati per il completamento di un'azione desiderata, portando così a un enorme risparmio di tempo. È tutta una questione di fare i giusti click in momenti estremamente precisi. Ricordatevi la questione dei tempi e dei tick perché tornerà utile più avanti.
Quindi, Cursed You e il suo team cominciarono a comprare quintali di materiali in modo da continuare a grindare e arrivare così, finalmente, al fatidico livello 99 il 6 giugno 2006 (in Nuova Zelanda era ancora il 5 giugno). Era il primo al mondo a raggiungere questo traguardo, ed era giusto festeggiare. Diede così una festa all’interno della sua casa digitale, costruita proprio grazie a questa nuova Skill, e invitò tutti. Ma proprio tutti. Pubblicò dei messaggi all’interno dei forum di RuneScape più famosi dell’epoca per invitare quanti più giocatori possibili alla festa. In pochissimo tempo la casa si riempì di gente e tra gli ospiti festosi c’era anche Brian, l’altro protagonista di questa storia. Si trattava di un giocatore americano di 16 anni che era stato invitato alla festa da un amico e il suo nickname all’interno del gioco era Durial321.
Questo giocatore, dopo essere entrato alla festa, andò immediatamente al piano inferiore della casa, dove era presente un dungeon, l’unica zona in cui era attivo il PvP. Ogni volta che un personaggio al suo interno moriva, rinasceva in un portale all’esterno della casa. Immaginate per un attimo il delirio assoluto che era presente in quel piano. Si stima che in quel momento, su 1200 utenti connessi al server (che di base hanno un limite massimo di 2000 persone), ben 800 erano all’interno della casa, che stava letteralmente esplodendo in un’orgia di PvP costante. Avere la maggior parte degli utenti compressi all’interno di uno spazio piccolissimo non era una cosa prevista né pienamente supportata dal server. Dopo circa mezz’ora non si capiva più niente, il lag regnava supremo.
A un certo punto, Durial321, dopo essere morto, rinato e rientrato in casa, decise di non recarsi al dungeon ma di andare nella stanza principale. Era piuttosto spoglia, conteneva solo due sedie e una strana “palla magica” che lui non aveva mai visto prima. Non appena Durial321 entrò all’interno di questa palla, il gioco si bloccò per qualche istante, apparve un messaggio di caricamento in cima allo schermo e, dopo pochi secondi, si ritrovò all’esterno della casa, insieme a tutti gli altri ospiti della festa.
CursedYou, stanco del lag e del macello che si stava creando, aveva cambiato le impostazioni della sua casa, limitando l’ingresso ai soli amici. Di conseguenza, tutte le persone che non erano nella sua lista amici furono buttate fuori. È in questo momento che si creò un evento unico. La casa era improvvisamente diventata l’unico luogo sicuro dato che, all’esterno, si era scatenato l’inferno. Alcuni giocatori si ritrovarono infatti con l’impostazione per il PvP, che di solito nelle zone sicure (ad esempio le città) non può essere attivata, attiva mentre altri no. Di conseguenza, gli utenti che avevano questa opzione attiva potevano attaccare chiunque mentre quelli che non potevano attivarla non potevano rispondere in alcun modo agli attacchi. E in pochi secondi, non appena ci si rese conto della situazione, partì il delirio.
Le persone che potevano attaccavano incessantemente chiunque gli capitasse a tiro, depredandone il cadavere e rubando tutti gli oggetti. La gente urlava di correre a nord, verso la banca, per depositare tutti gli oggetti in loro possesso ma gli attaccanti si posizionarono subito di fronte alle porte, falcidiando chiunque arrivasse. Alcuni utenti si prodigavano in buone azioni, tentando di fermare gli attaccanti, ma presto tutto diventò ingestibile. Altri tentarono addirittura di cambiare mondo per portare la loro voglia di sangue ovunque ma, per fortuna il PvP si disattivava automaticamente non appena il giocatore effettuava una qualsiasi azione di spostamento veloce, come ad esempio un teletrasporto o, appunto, lo spostamento in un altro World, così come con il logout.
I ticket inondarono il supporto così come le discussioni sul forum ufficiale e i moderatori, in pochi minuti, vennero a sapere del bug. Si collegarono subito, cercando di capire meglio la situazione, e si trovarono davanti a un vero e proprio caos a cui nemmeno loro potevano mettere mano. Infatti il sistema di RuneScape fa sì che i giocatori non si possano disconnettere né mentre sono in combattimento né entro 10 secondi dalla fine di uno scontro e su questo non potevano mettere mano nemmeno i moderatori. Se un giocatore era in PvP, non poteva essere bannato. Certo, nel momento in cui un attaccante faceva passare 10 secondi veniva istantaneamente bannato ma fin quando continuava ad attaccare era “al sicuro”.
Alcuni penseranno “ma non basterebbe fare Alt+F4 anche se si è in combattimento”? Certo, questo chiuderebbe il gioco, ma il personaggio continuerebbe comunque a esistere all’interno del mondo virtuale fino a quando non fosse sopraggiunta una condizione per la quale si sarebbe potuto attivare il logout. In sostanza, mentre si era vittima di un attacco, anche se si fosse chiuso il gioco con la forza bruta, il personaggio sarebbe rimasto lì a soccombere. CursedYou, nel frattempo, continuava a divertirsi e a festeggiare il traguardo raggiunto insieme ai suoi amici, nella sua bella casetta virtuale. Dato però che i report dei giocatori lo citavano molte volte (d’altronde prima dell’attacco erano tutti a casa sua), fu temporaneamente bannato dai moderatori, che stavano ancora cercando di capire cosa stava succedendo.
Durial321 aveva deciso di lasciarsi andare all’ultraviolenza. Chiamò un amico a cui dare i suoi oggetti più preziosi, probabilmente conscio del fatto che, alla fine di tutto, sarebbe stato bannato permanentemente, e se ne andò verso Ghost Town (Edgeville), a piedi. Sottolineo che lui era completamente ignaro del fatto che, teletrasportandosi, avrebbe perso il PvP quindi l’andare a piedi è stata una scelta, per lui, vincente ed estremamente fortunata. Non appena arrivò a Edgeville si ritrovò davanti a una cittadina alla sua mercè, ignara di ciò che stava succedendo lì vicino. Iniziò così ad attaccare i giocatori presenti, che fuggirono verso Falador, la stessa città verso cui i moderatori presenti a Rimmington, la città da cui era partito tutto, avevano indirizzato gli utenti connessi. I mod, non appena videro che la città si era svuotata, pensarono che tutto fosse finito e uscirono momentaneamente dal gioco, inconsci del fatto che avevano appena fatto raggruppare in un unico luogo praticamente tutti gli utenti presenti sul server in quel momento. E così partì il vero e proprio Massacro.
Si consumò così un bagno di sangue digitale, tra giocatori che tentavano di scappare, altri che lootavano i corpi a terra, lag totale e la chat che esplodeva. I giocatori connessi invitavano gli amici ad assistere a quello che stava succedendo e, in pochissimi minuti, da 1200 giocatori si era passati al limite del server, 2000. Durial321, ad un certo punto, con il suo bel cappellino da party verde, era rimasto praticamente l’unico ad avere il PvP ed era in preda alla furia omicida, seguito da decine e decine di utenti che spammavano messaggi in chat, tra chi lo esaltava, chi lo pregava di fermarsi e chi invece lo invitava ad attaccarlo per poter entrare così nella storia. Per fortuna, questa condizione non poteva andare avanti all’infinito. Una volta trascorsi dieci secondi senza essere riuscito ad attaccare nessuno venne infine bannato. Il Massacro era durato un’ora.
Adesso per Jagex era arrivata l’ora di trovare e sistemare il bug che aveva scatenato tutto. Peccato fossero le 2 di notte in Inghilterra e non erano presenti sviluppatori presenti negli uffici. Dopo una serie di chiamate venne contattato Mod Ash, una figura storica di RuneScape, che, per mettersi al sicuro, disattivò temporaneamente tutto il PvP, ovunque. CursedYou, ingiustamente bannato, sarebbe stato reinserito nel gioco e successivamente venne implementato un hotfix che pose la parola fine in maniera definitiva al problema. Ma la soluzione non fu mica immediata, anzi.
Oggi sappiamo bene cosa è successo ma, negli anni, sono state fatte diverse teorie su questo bug, in cui si andavano cercando i colpevoli. Una puntava il dito sul ring da combattimento, un’altra sosteneva che tutto questo fosse stato causato da un malfunzionamento di un oggetto della cucina ma Durial321, nel momento dell’espulsione, non si trovava né in cucina né nel ring bensì nella stanza principale. E qui entra in gioco l’oggetto di cui ho parlato all’inizio, la “palla magica”. Come spiegato da uno degli sviluppatori del gioco, all’interno delle case si poteva fare PvP solo all’interno del dungeon. Nel resto della casa l’opzione era semplicemente nascosta, così come nelle aree sicure dell’open world. Se un giocatore, all’interno della casa, aveva il PvP attivo e usciva, questa opzione veniva disabilitata automaticamente.
Gli sviluppatori avevano quindi pensato a tutti i modi in cui un utente poteva uscire da una casa e, nel caso in cui uno di questi avveniva, il PvP veniva conseguenzialmente disattivato. Peccato però che ci fosse stata una piccola svista, rappresentata dalla “palla magica”, la Greater Magic Cage, un oggetto nuovissimo del gioco che era stato aggiunto insieme alla skill Construction. E serviva anche il livello 89 per poterlo realizzare. Ricordo che CursedYou è stato il primo a raggiungere il livello massimo in questa Skill quindi è plausibile pensare che la Greater Magic Cage presente all’interno della sua casa fosse la prima mai costruita da un giocatore.
Il funzionamento dell’oggetto era semplice: non appena un utente entrava al suo interno, veniva intrappolato. Durial321 era stato cacciato dalla casa proprio mentre era intrappolato all’interno della sfera ma c’è un ulteriore dettaglio da tenere in considerazione. All’esterno della trappola è presente una leva che, se azionata, permette di teletrasportare i prigionieri della sfera all’interno del dungeon. Insieme a Durial321, in quel momento, era presente anche un altro giocatore che, successivamente, scrisse nei forum di star subendo un teletrasporto nel momento in cui venne cacciato dalla casa. La presenza di due azioni in contemporanea potrebbe aver portato a un’inversione della priorità. In pratica il proprietario della casa aveva cacciato tutti nell’esatto tick del server in cui un altro giocatore aveva attivato la leva per far andare nel dungeon i personaggi intrappolati. Il gioco ha gestito le due azioni in maniera errata, dando priorità al giocatore che aveva il PID, il Player Identification Number, più alto.
Di conseguenza prima è avvenuta l’azione di espulsione dalla casa e subito dopo è avvenuta l’azione di teletrasporto nel dungeon. Il problema è che quest’ultima non poteva effettivamente avvenire, dato che il giocatore era ormai fuori dalla casa, ma il gioco lo registrava comunque come se fosse all’interno del dungeon, e quindi con il PvP attivo. Insomma, una serie di cause fortuite e tempistiche incredibili.
L’evento, già dal giorno dopo, era diventato una leggenda tra i giocatori, che diffondevano messaggi nei forum parlando di quello che era avvenuto. Molti utenti, uccisi e depredati, chiedevano di avere indietro l’equipaggiamento che gli era stato sottratto. Fu realizzata pure una lunga intervista con Durial321 e, alla fine, CursedYou finì con l’essere bannato a causa dello scambio di oggetti in-game per soldi reali. Come sempre accade per eventi di questo genere, il bug portò i programmatori a esaminare meglio il codice con cui era scritto, Runescript, e vennero applicate delle modifiche con le quali sarebbe stato possibile capire esattamente dove si trova un determinato giocatore e in che stato è, collegandoci anche le variabili del PvP, evitando così qualsiasi altro problema futuro. Questo avvenimento entrò a far parte della storia del mondo di Gielinor. Venne citato nell’evento Invasion of Falador del 2015 e fu anche aggiunta una placca il 13 giugno 2016, all’interno del Falador Park, in occasione del decimo anniversario, quando fu organizzato anche un evento a Falador in cui alcuni giocatori venivano impossessati dal fantasma di Durial321, potendo così attaccare altri giocatori che non potevano reagire, per poi successivamente coalizzarsi tutti contro una versione gigante di Durial321.
E concludiamo anche questo appuntamento bello corposo di Coding Error, che segna anche la fine, almeno per il momento, degli errori legati agli MMO. Per i prossimi vireremo verso altri lidi, con fatti più o meno conosciuti nel mondo dei videogiochi che hanno lasciato il segno.