L'angolo del design: World of Warcraft Classic

di Blizzard Entertainment il June 15th alle 7:00pm

Salve! Lo sviluppo di World of Warcraft Classic è in corso e siamo molto felici di condividere alcune delle sfide e soluzioni su cui stiamo lavorando. Come menzionato durante l'ultima BlizzCon, il processo di restaurazione del gioco classico non è lineare, ed è importante per noi avere il tempo e le risorse per farlo correttamente. Questo significa analizzare diverse versioni del gioco, dati, programmazione e numeri, oltre a revisionare le modifiche apportate nel corso degli anni. Una cosa è certa: il team di WoW Classic è al lavoro per realizzare il progetto e in questa fase di lavorazione siamo pronti a condividere qualche dettaglio.


WoW Classic: primo prototipo

La prima decisione che abbiamo dovuto prendere, e una delle più importanti, riguardava la versione del gioco su cui focalizzare l'attenzione. Come notato da molti di voi, il periodo classico è durato due anni e ha visto molti cambiamenti. Durante questo periodo sono stati introdotti i campi di battaglia, e sono state aggiunte molte spedizioni e incursioni iconiche. Dopo attenta considerazione, abbiamo optato di basarci sulla patch 1.12, Drums of War, perché rappresenta la versione più completa dell'esperienza classica.

Una volta deciso il punto di partenza, abbiamo analizzato il codice sorgente e deciso cosa potevamo rendere disponibile, esaminando il database di sviluppo originale. Dopo aver unito diversi pezzi, abbiamo ricostruito in locale una versione interna della patch 1.12. La squadra ha potuto creare dei personaggi e affrontare missioni per salire di livello... e morire (molto spesso). Ovviamente, solo per ragioni di testing.

I primi test hanno evidenziato una serie di problemi che ci aspettavamo: il gioco si interrompeva, non riconosceva le schede video moderne e non era compatibile con l'attuale sistema di accesso. Inoltre, gli attuali standard di sicurezza e contro l'uso di cheat non erano supportati. Chiaramente dovevamo lavorare molto per rendere WoW Classic all'altezza degli standard Blizzard e fornire l'esperienza desiderata ai giocatori. Queste sfide sono il nostro pane quotidiano e i programmatori al lavoro su WoW Classic hanno fatto salti mortali.


Verso il futuro: secondo prototipo

A proposito di programmazione, World of Warcraft è un gioco basato sui dati, il che significa che il codice base è flessibile e il modo in cui si comporta è determinato dalle informazioni contenute nei database. Missioni, mostri, oggetti e le regole per la loro interazione sono determinati da progettisti e grafici nei dati.

Ci siamo chiesti: sarebbe possibile ottenere un'esperienza classica autentica usando il codice moderno, con tutte le modifiche e i miglioramenti, per gestire i dati della patch 1.12? Anche se può sembrare una contraddizione, questo avrebbe incorporato sistemi classici come la felicità dei famigli, le competenze delle armi, i talenti classici e così via, mentre elementi successivi come gli scontri tra mascotte, la ricerca gruppi e le imprese non sarebbero esistiti. Dopo settimane di ricerca e sviluppo, test e creazione di prototipi, abbiamo deciso che avremmo potuto creare un'esperienza che comprendeva contenuti e dinamica di gioco classici di WoW senza sacrificare gli sviluppi al codice che WoW ha subito nel corso degli ultimi 13 anni.

I nostri sforzi iniziali ci hanno aiutato a determinare l'esperienza che volevamo fornire, e questo secondo prototipo ha definito il metodo. Partire da un'architettura moderna, con sicurezza e stabilità, ci ha consentito di identificare le attività necessarie a fornire un'esperienza classica autentica. Le differenze di comportamento tra una build di sviluppo e quella autentica possono essere sistematicamente identificate e corrette, operando su fondamenta stabili e sicure.


Scavare più a fondo

Che cosa serve per ricreare un'autentica esperienza classica con la programmazione moderna? Iniziamo analizzando i diversi tipi di dati alla base di WoW:

  • Dati del database: queste informazioni sono quasi sempre rappresentate come numeri. I punti ferita di una creatura, l'ammontare di forza di un oggetto, il momento e il luogo della comparsa di determinate creature sono esempi dei dati numerici accumulati nei database. Possiamo anche immagazzinare e forzare relazioni tra diversi tipi di dati.
  • Dati dei file: questi sono dati molto pesanti, come modelli 3D, texture, animazioni e terreno. L'interfaccia è costituita da file XML e LUA. Molti dei file di grafica non sono nei formati "classici" dei programmi. Prendiamo i file base e li ottimizziamo affinché il gioco possa leggerli e processarli.
  • Script LUA: alcune funzioni sono guidate da script LUA scritti dai programmatori, che consentono di definire comportamenti personalizzati per la logica del server senza bisogno di conoscenze di programmazione approfondite.

Come è cambiata la programmazione

Una delle sfide che affrontiamo è rappresentata dal fatto che i dati classici sono nel formato utilizzato al lancio, ma questo formato è cambiato nel tempo. Serve molto lavoro per assicurarci che i client moderni siano compatibili con i dati classici.

Per esempio, gli incantesimi potevano eseguire solo tre azioni sul bersaglio. In formato tabella, ecco come appariva:

ID

Nome

Effetto 1

Effetto 2

Effetto 3

Aura 1

Aura 2

Danni effetto 1

Danni aura 1

Danni aura 2

1

Palla di Fuoco

Infligge danni

Applica aura

Nessuno

Nessuno

Infligge danni periodici

30

Nessuno

3

2

Dardo di Ghiaccio

Infligge danni

Applica aura

Nessuno

Nessuno

Rallenta

20

Nessuno

Nessuno

Come puoi vedere, molto spazio è occupato da "nessuno". Nel corso della vita di WoW, abbiamo migliorato il design dei dati e normalizzato i dati del database. Oggi, gli stessi dati avrebbero questo aspetto:

Nome file: Incantesimi

ID

Nome

1

Palla di Fuoco

2

Dardo di Gelo

Nome file: Effetto Incantesimi

ID

IDIncantesimo

Effetto

Danni

1

1

Danni

30

2

2

Danni

25

Nome file: Aure Incantesimi

ID

IDIncantesimo

Aura

Danni

1

1

Infligge danni periodici

3

2

2

Rallenta

Nessuno

In questo formato, si spreca molto meno spazio e gli incantesimi non sono limitati a tre effetti. Prima di caricare dati nel database, però, dobbiamo trasformare la vecchia struttura nella nuova. Questo non è limitato agli incantesimi, ma quasi tutti gli elementi del gioco (oggetti, creature, personaggi, generazione, I.A. e altro ancora) hanno subito modifiche al database nel corso degli anni.


Sguardo al futuro

Il lavoro che stiamo facendo ci consentirà di ricreare un'esperienza classica autentica su una piattaforma stabile e ottimizzata, evitando problemi di latenza e instabilità. Altri miglioramenti moderni includono la rilevazione di cheat e bot, l'assistenza clienti e l'integrazione con Battle.net, oltre ad altri miglioramenti rivolti ai giocatori che si dovessero rivelare necessari.

Non vediamo l'ora di affrontare le sfide che ci attendono e di condividere la passione dei giocatori per la versione classica del gioco. Ogni conversione di dati che effettuiamo porta WoW Classic più vicino all'esperienza che tu, e noi, vogliamo. Grazie per accompagnarci in questo viaggio.