World of Warcraft

Restoring History: Creating WoW Classic - Riepilogo conferenza

Blizzard Entertainment

L'attesissimo World of Warcraft Classic è stato per lungo tempo un argomento di massimo interesse per la community, ma per comprendere veramente l'impegno richiesto per dare vita a un'esperienza che rispecchiasse la qualità Blizzard, i programmatori Brian Birmingham e Omar Gonzalez e il direttore di gioco Ion Hazzikostas sono saliti sul palco e hanno condiviso le loro impressioni.

Mettere insieme i pezzi

Per semplificare i principi fondamentali della creazione di un gioco, Omar ha ridotto il processo a tre fattori: i dati del database, l'aspetto artistico e il codice sorgente.

  • I dati del database includono, per esempio, la salute di una creatura, la quantità di Tempra fornita da un equipaggiamento, le posizioni in cui compaiono gli oggetti nel mondo e molti altri.
  • L'aspetto artistico include tantissimi elementi, dall'aspetto di un Elfo della Notte durante Fondersi nelle Ombre al suono di una Pirosfera, fino al movimento oscillante dell'ascia di un Orco.
  • Il codice sorgente comprende le istruzioni su come il gioco viene visualizzato, sui processi di input e la connessione fra i giocatori.

Per iniziare, abbiamo dovuto scoprire a quando risaliva il codice sorgente, e abbiamo scoperto che il nostro repository del codice era stato pubblicato nel 1997, ben prima che World of Warcraft iniziasse lo sviluppo.

Era un buon inizio, ma c'erano dei problemi con il metodo usato dagli sviluppatori per gestire gli aggiornamenti ai dati del database. A differenza del nostro codice, che permetteva di elaborare e sviluppare rami diversi del gioco in maniera indipendente gli uni dagli altri, i primi dati del database venivano completamente sovrascritti a ogni aggiornamento. Per fortuna, abbiamo risolto il problema molto rapidamente dopo il lancio e, guardando bene, abbiamo trovato dati risalenti alla versione 1.12 o anche precedenti.

Infine, abbiamo trovato le risorse artistiche su vecchi nastri di backup, del tutto corrispondenti ai dati del database che avevamo conservato.

Mettendo insieme tutti e tre i componenti, siamo stati in grado di fare una prova e connetterci al gioco, creare nuovi personaggi, uccidere dei cinghiali e completare alcune missioni.

La dinamica di gioco classica nel mondo attuale

Pe quanto avessimo a disposizione una versione funzionante del gioco, c'erano molte altre sfide da superare. La tecnologia a supporto del gioco ha fatto molta strada da quando è stata lanciata per la prima volta. Pensiamo al supporto su cloud, all'integrazione con l'applicazione Battle.net, alle funzionalità dell'assistenza clienti e ai moltissimi errori e problemi precedentemente corretti.

Per superare questi ostacoli abbiamo guardato ciò che ci piaceva (aspetto artistico e dati) e ciò che non ci piaceva (il codice) di quanto avevamo. Volevamo vedere se potevamo utilizzare i dati e l'aspetto grafico della versione classica all'interno del nostro codice moderno così che tutto filasse liscio. Le cose non sono andate proprio come volevamo, ma dopo qualche intoppo siamo riusciti a mettere insieme una versione di prova per dimostrare come potevamo far funzionare le cose e avere qualcosa di giocabile. Ciò ha rafforzato la nostra fiducia nel poter offrire un'esperienza di gioco degna della qualità Blizzard all'interno della nostra piattaforma moderna.

Dal prototipo alla demo

I nostri elementi costitutivi, i dati del database, il codice sorgente e l'aspetto artistico interagiscono tra loro per creare le funzioni visibili dai giocatori come il terreno, la dinamica di gioco, le animazioni e l'illuminazione. Le varie funzioni richiedono che gli elementi costitutivi siano in relazione tra loro in diversi modi.

Per comprendere appieno le interazioni, prendiamo in considerazione il terreno, che include il posizionamento delle colline, delle valli, degli alberi, degli edifici e tutto il resto. Collegando i vecchi file dei dati del terreno al sistema di gioco moderno, ci siamo resi conto che il modo in cui il sistema osservava i dati era diverso. Ciò ha comportato il mancato allineamento tra il sistema aggiornato e i dati classici, risultante in cose come i falò dei Kolkar sott'acqua o gli alberi bruciati di Cataclysm.

Dati del terreno 1.12

Motore 1.12

Motore moderno

Altezza terreno

Acqua

Erba

Posizionamento oggetti

Altezza terreno

Acqua

Erba

Posizionamento oggetti

Altezza terreno

Posizionamento oggetti

Acqua

Erba

Fortunatamente, il nostro editor moderno è in grado di eseguire alcune di queste conversioni di dati, e possiamo convertire i dati del terreno con lo stesso editor che usiamo su Battle for Azeroth. L'editor moderno sa come caricare il vecchio formato del terreno e come trasformarlo nel formato nuovo per poi esportarlo nel nostro motore moderno. Questo processo ha corretto, tra le altre cose, il problema del posizionamento dei falò e l'aspetto degli alberi bruciati.

Un altro ostacolo che abbiamo superato riguarda il modo in cui archiviamo e uniamo i dati. World of Warcraft ha diverse patch in sviluppo in contemporanea, perché ogni patch si trova in una fase di sviluppo diversa. Se aggiungiamo un elemento artistico o un file di terreno a una patch, vogliamo che venga visualizzato automaticamente nelle patch successive. In questi quattordici anni di sviluppo, abbiamo sempre seguito una linea temporale fissa. Se avessimo semplicemente inserito la nuova patch per la versione classica nel flusso di sviluppo attuale, avremmo sovrascritto cose come la diga attuale a Loch Modan ripristinando la versione precedente, il che avrebbe provocato diversi problemi alla pubblicazione di Battle for Azeroth.

Per evitarlo, abbiamo insegnato alcuni nuovi trucchi ai nostri strumenti, in modo da poter implementare la patch classica senza influire sulla versione attuale del gioco. Abbiamo copiato i dati 1.12 in un nuovo progetto e abbiamo insegnato ai nostri strumenti a distinguerli, così ora, quando implementiamo la patch, tutte le modifiche rimangono all'interno della versione classica senza mai interagire con le patch della versione principale. Potrebbe sembrare semplice come copiare dei file in una directory, ma è stato complesso insegnare a tutti i nostri strumenti come farlo in modo da poter apportare le modifiche automaticamente. Poter utilizzare i nostri strumenti interni è un grande vantaggio e volevamo assicurarci che la versione classica avesse accesso a tutte le nostre infrastrutture e dati.

Modelli e animazioni dei personaggi classici

Ci siamo anche presi del tempo per ripristinare completamente i modelli classici per quanto riguarda l'aspetto grafico. Purtroppo, mentre lavoravamo al ripristino, abbiamo scoperto che alcuni modelli erano corrotti. In alcuni casi mancavano le texture, e abbiamo dovuto fare delle ricerche per scoprire come avrebbero dovuto comparire quegli elementi nel sistema e correggerli.

Anche le animazioni originali sono state ripristinate, ma il nostro sistema di animazione è strettamente collegato al codice di gioco. Abbiamo dovuto apportare delle modifiche ai dati e al codice per riportare le animazioni a com'erano nella 1.12. Ci siamo imbattuti in alcuni errori lungo la strada, come modelli che avrebbero dovuto apparire proni e invece erano in posizione verticale e viceversa, ma siamo riusciti a correggerli.

Ripristinare il sistema delle classi

Abbiamo fatto grandi progressi semplicemente convertendo i dati in codice, ma alcuni sistemi non hanno un equivalente moderno. La classe probabilmente più colpita è il Cacciatore. Con il tempo sono stati rimossi i sistemi della felicità e della fedeltà dei famigli, così come l'addestramento e la possibilità di usare sia un'arma a distanza che un'arma da mischia. Sono tutti casi in cui la conversione dei vecchi dati nel nuovo sistema non poteva funzionare, perché quei dati non esistono nel nuovo sistema. Quindi abbiamo dovuto riprendere in mano il vecchio codice. Fortunatamente, tutto è andato liscio, anche se il fatto di dover comprare delle frecce o di dover nutrire il proprio famiglio ha colto di sorpresa alcune persone.

Il problema non era solo dei Cacciatori. Anche i punti combo dei Ladri hanno richiesto un cambio di codice, perché il sistema moderno sa come accumulare e consumare i punti combo, ma non sa come perderli quando si cambia bersaglio. Ci sono anche le vecchie formule da combattimento da considerare. In questo caso, abbiamo ripristinato il vecchio codice per le formule di combattimento, compresi colpi critici e colpi devastanti, la cui probabilità d'attivazione viene modificata anche dalla differenza tra la difesa di chi difende e la competenza con l'arma di chi attacca. Sì, anche la competenza nelle armi è tornata. Avevamo quei dati, ma abbiamo dovuto ripristinare il codice che aumentava una competenza man mano che si usava quell'arma e che modificava di conseguenza le probabilità d'impatto e di critico.

Interfaccia utente e illuminazione

La schermata dei personaggi è un ottimo esempio di un'interfaccia utente simbolica che abbiamo chiaramente dovuto ripristinare, assicurandoci di riuscire a riproporre quella sensazione storica anche negli effetti su schermo e nelle luci dietro i personaggi. Non possiamo garantire la perfezione, ma possiamo promettere che stiamo facendo del nostro meglio per ricreare un'esperienza autentica.

Prendiamo un altro esempio di illuminazione, la Foresta di Elwynn. C'è stato un momento nella storia di Warcraft in cui abbiamo modificato tutte le equazioni dell'illuminazione e, di conseguenza, i nostri grafici ambientali hanno dovuto ripassare tutte le zone per migliorarne l'illuminazione sfruttando le nuove equazioni. Per ricreare l'esperienza originale, abbiamo dovuto azzerare quei cambiamenti. La prima cosa che abbiamo fatto è stata ripristinare i vecchi dati dell'illuminazione, avvicinandoci molto all'illuminazione originale. Con qualche altra modifica alla formula della distanza e della nebbia e con alcuni altri cambiamenti alle ombre, siamo riusciti ad avvicinarci ancora di più all'illuminazione originale.

Lavoro finito?

Di certo qualcuno si starà chiedendo se abbiamo finito con tutti questi lavori e se non sarebbe stato più semplice aggiornare il client di riferimento.

Dopo un anno trascorso a lavorare su questo progetto, a farci strada tra errori e sfide, appare visibile una certa distanza tra ciò che abbiamo realizzato e ciò che vogliamo realizzare. Quando guardiamo al World of Warcraft di oggi vediamo chiaramente le differenze rispetto alla versione Classic. Se provassimo ad aggiornare il client di riferimento, provocheremmo molti cambiamenti invisibili che diventerebbero bug in attesa di essere sfruttati, arresti anomali che non verrebbero alla luce se non quando ci sono milioni di giocatori online contemporaneamente, e molto altro ancora. Abbiamo scelto di affrontare il problema in modo da rendere il nostro lavoro chiaro e palese, invece che sotterraneo e difficile da vedere.

Non abbiamo ancora finito e ci sono ancora molte funzioni da prendere in considerazione, soprattutto nelle capitali, come le banche e le Case d'Asta. Dobbiamo testare le spedizioni e le incursioni per assicurarci che tutte le abilità dei boss funzionino ancora correttamente, e dobbiamo rivedere tutti i sistemi PvP.

Filosofia e piani per il futuro

Nel ripristinare World of Warcraft Classic, abbiamo voluto fornire un'esperienza autentica grazie alla quale in teoria qualcuno, se non avesse più giocato da allora, sarebbe stato in grado di riprendere il gioco esattamente da dove l'aveva interrotto. Le cose potrebbero andare un po' più velocemente e l'hardware potrà essere migliorato, ma il gioco dovrebbe comunque dare l'impressione di essere il World of Warcraft dal 2006. Una parte importante la giocano le equazioni dei combattimenti e delle abilità, ma anche le dinamiche sociali e la dipendenza dagli altri, come la difficoltà nel trovare un gruppo e il conseguente doversi affidare agli altri giocatori per una spedizione o uno scontro speciale. Volevamo anche assicurarci di non finire col modificare i dati della 1.12 e l'esperienza risultante con il gioco.

Molte decisioni che abbiamo preso sono state abbastanza chiare da subito. A cose come la Ricerca delle incursioni abbiamo detto chiaramente "no". Così come alla possibilità di creare gruppi tra reami diversi, al sistema delle imprese, alle Case d'Asta unificate e... sì, al volo.

Altre decisioni sono state meno facili. A un certo punto c'era un limite di otto penalità per personaggio, portato successivamente a 16 e oggi del tutto eliminato. Questo cambiamento ha cambiato radicalmente il bilanciamento tra le classi e le strategie studiate dai giocatori in relazione a questo limite di penalità. Per evitare di intervenire sui dati 1.12, abbiamo stabilito un limite di 16 penalità.

La consegna della posta di gioco tra compagni di gilda ora è istantanea, ma in passato aveva un ritardo di un'ora, come la posta tra estranei. Il passaggio alla posta istantanea ha reso le cose più comode, ma ha annullato l'interazione sociale di dover incontrare qualcuno di persona nel gioco, se volevi qualcosa subito. Quindi, abbiamo reintrodotto quel ritardo. Altre agevolazioni, come il completamento automatico dei nomi dei destinatari o lo svuotamento rapido della casella di posta, sono state lasciate. La scelta è stata facile, perché facilmente qualcuno avrebbe potuto creare un add-on che facesse quelle stesse cose, e non ci sembrava che avesse senso rimuoverle.

L'impossibilità di scambiarsi i bottini in passato portava spesso a doversi rivolgere all'assistenza clienti, se qualcuno depredava accidentalmente qualcosa che non voleva. Con il sistema attuale, i giocatori hanno un periodo di tempo durante il quale possono scambiare il bottino con gli altri giocatori. È una comodità che abbiamo ritenuto valesse la pena conservare nella versione Classic, piuttosto che dover rispondere a innumerevoli ticket, del tutto inutili all'esperienza di gioco (ninja avvisati!).

Sono cambiate molte cose anche per le classi che fanno affidamento sulla generazione della propria risorsa, come l'energia per i Ladri. La rigenerazione avveniva in blocchi in base ai "battiti" del server. Quindi, per generare 20 energia, ci volevano ben 2 secondi. Oggi il sistema è diverso e genera 1 energia ogni decimo di secondo. Questa differenza ha cambiato le tempistiche per l'utilizzo di determinate abilità: quella che sembrava una caratteristica minore oggi cambia radicalmente le rotazioni di combattimento e la capacità di infliggere danni nella dinamica di gioco classica. Abbiamo ritenuto che fosse importante ripristinarla per fornire un'esperienza autentica.

Nel corso degli anni è cambiato ciò che possono fare gli add-on, diventati sempre più sofisticati man mano che gli autori hanno maturato anni di esperienza e competenza. Non abbiamo ancora raggiunto una soluzione definita su cosa significherà tutto questo per la versione classica, ma una cosa che sappiamo è che non torneremo alle API degli add-on 1.12, perché farlo aprirebbe la strada all'automazione quasi totale del processo decisionale in combattimento, consentendo un comportamento "da robot" in netto contrasto con l'esperienza di gioco di base di WoW. E di certo non lo vogliamo. D'altra parte, le moderne API offrono alcune funzionalità aggiuntive dal punto di vista social che potrebbero compromettere un'esperienza autentica. Stiamo ancora studiando i dettagli e stiamo cercando una buona via di mezzo, tenendo d'occhio i feedback della community e degli autori di add-on per capire a che punto fissare dei limiti.

Piano di pubblicazione dei contenuti

Inizieremo con la versione 1.12, ma vogliamo assicurarci di fornire l'esperienza che i giocatori si aspettano. Ecco quindi la tabella di marcia per questo viaggio, che comprende quattro fasi aggiuntive che integreremo man mano nell'esperienza di gioco.

  • Fase 1: Molten Core (Nucleo Ardente), Onyxia, Dire Maul (Maglio Infausto), Kazzak, Azuregos
  • Fase 2: Blackwing Lair (Fortezza dell'Ala Nera), campi di battaglia e ricompense PvP, Zul'Gurub
  • Fase 3: Ahn'Qiraj (incluso l'evento d'apertura), Tier 0.5, contenuti di Silitus, Draghi Verdi
  • Fase 4: incursione di Naxxramas, Invasione del Flagello

Questi piani sono soggetti a modifiche, ma volevamo dare un'idea più approfondita su ciò che ci aspetta. Speriamo di continuare a ricevere i feedback dei giocatori, perché sappiamo che c'è ancora molto lavoro da fare.

I partecipanti alla BlizzCon e i possessori del biglietto virtuale BlizzCon 2018 possono provare la demo di WoW Classic oggi stesso! Per maggiori informazioni e tutte le restrizioni riguardanti la demo, leggi il nostro angolo degli sviluppatori.