L'angolo del programmatore: la personalizzazione della creazione dei personaggi

di Blizzard Entertainment il November 17th alle 6:00pm

Ora che siamo a meno di una settimana dalla pubblicazione di Shadowlands, speriamo che tu abbia avuto la possibilità di giocare con la pre-patch e di cambiare i tuoi personaggi con le nuove opzioni di personalizzazione! Mentre armeggiavi con nuovi tagli di capelli e colori degli occhi, potresti esserti chiesto cosa serva per aggiornare un sistema tanto importante, che è stato ampliato a ogni espansione. Continua a leggere per scoprire come abbiamo contribuito a dare vita a queste nuove opzioni!

Un po' di storia

Quando World of Warcraft uscì per la prima volta, la nostra massima priorità era rendere il gioco accessibile al maggior numero di persone possibile. Per fare ciò, le specifiche minime dovevano essere ottimizzate in modo che il gioco fosse eseguibile su un'ampia varietà di hardware. Quindi, è stato necessario scendere a compromessi. Volevamo aggiungere una per una le dita delle mani dei personaggi, visto l'impatto che avrebbero avuto sul frame rate, o quella potenza di elaborazione dei dati doveva essere indirizzata verso una funzione del gioco? Dopo il lancio nel 2004, queste preoccupazioni sono svanite, grazie all'aumento delle prestazioni nell'hardware delle generazioni successive, offrendoci la possibilità di esplorare nuove idee e aggiornamenti.

Texture dei modelli dei Tauren

Quindi, cosa abbiamo cambiato e come sono stati costruiti i primi personaggi? In origine, il modello di dati era relativamente semplice, ma con il passare del tempo e con l'aggiunta di nuove funzionalità la situazione ha iniziato a complicarsi. Per ogni razza e genere, era possibile personalizzare solo cinque caratteristiche (aumentate a otto con Legion), ma come fare quando erano state già usate tutte e cinque? Come creare un PNG Cacciatore di Demoni precedente a Legion, quando gli Elfi della Notte avevano già usato tutte e cinque le caratteristiche? I progettisti ebbero un lampo di genio: usarono il sistema degli oggetti per aggiungere in modo efficace un'altra caratteristica. Poiché le camicie venivano per prime nella "gerarchia degli strati", potevano essere usate come base per creare dei tatuaggi aggiungendo un livello alfa e la trasparenza al resto della camicia. Furbi!

Tatuaggi dei Cacciatori di Demoni

Sistemi, dinamica di gioco e struttura dei dati

Tuttavia, non era possibile adottare la tecnica descritta sopra ogni volta che uno sviluppatore voleva creare qualcosa di speciale. Quindi, abbiamo fatto tesoro delle lezioni delle espansioni precedenti e abbiamo capito che alla fine ci serviva una quantità illimitata di personalizzazioni, in cui ogni caratteristica sarebbe stata separata dal resto (come occhi, viso, barba o baffi), invece che solo cinque caratteristiche generiche. Il sistema doveva essere più facile da mantenere, senza dover duplicare grandi quantità di dati (come si vede dal nostro editor in stile "foglio di calcolo", dove ogni cella è una variante del viso incrociata con una variante del colore della pelle). Soprattutto, volevamo ridurre il carico complessivo sugli artisti che creavano le risorse e sui progettisti che le implementavano.

Vecchio editor di personalizzazione
Nell'immagine: il vecchio editor di personalizzazioni usato prima della pre-patch di Shadowlands.

Per iniziare, abbiamo preso delle tabelle indipendenti del database, in cui ogni voce conteneva quantità enormi di informazioni, e abbiamo suddiviso tutto in raggruppamenti di dati più piccoli e più logici. A sua volta, questo ci ha permesso di separarci dal "foglio di calcolo" e di creare una serie di editor personalizzati e generati automaticamente, che sarebbero stati molto simili a quello che i giocatori avrebbero visto in gioco. Alla fine, la nuova struttura dei dati ci ha fornito tutta la flessibilità di cui avevamo bisogno, oltre a offrirci l'opportunità per nuove fantastiche personalizzazioni che prima non erano possibili, come quella di modificare i Worgen in modo indipendente dalla loro forma umana.

Nuova finestra di visualizzazione del personaggio
Con le nuove risorse e il nuovo ambiente di modifica, ora aggiungere ulteriori scelte è molto più semplice!

Alla fine, poiché avevamo rivisto completamente i dati e gli elementi di gioco, dovevamo anche essere pronti: tutti i giocatori, il primo giorno, accedendo con i vecchi dati avrebbero dovuto vedere i propri personaggi identici a com'erano prima della pre-patch (per non parlare delle decine di migliaia di PNG). Per farlo, abbiamo creato un processo di conversione silente con quasi 9.000 regole, tenendo conto di cose come le opzioni per la barba degli Umani, ora divisa in barba, baffi e basette. Il team dell'automazione ha creato uno strumento in grado di confrontare in massa gli screenshot del prima e del dopo, in modo che il QA potesse identificare rapidamente eventuali discrepanze. Dal momento che è andato tutto come avrebbe dovuto, i giocatori che si sono connessi il giorno della pre-patch non hanno notato alcun cambiamento ai loro amati personaggi!

Ricostruire il motore

Per facilitare le nuove opzioni di personalizzazione, era necessaria una revisione completa del motore. In passato, ogni set di opzioni di personalizzazione richiedeva una propria texture, e scegliere diverse opzioni cambiava la texture unica utilizzata per un dato personaggio. Il numero di nuove opzioni disponibili per i personaggi di Shadowlands ha portato il numero di permutazioni nell'ordine dei milioni, quindi abbiamo progettato un nuovissimo sistema per generare le texture dei personaggi al volo.

Tra le altre cose, abbiamo riscritto da zero tutto il codice di elaborazione delle texture, utilizzando le estensioni SIMD (Single Instruction Multiple Data) e un sistema progettato per la gestione delle risorse condivise tra personaggi che utilizzano le stesse texture. Queste modifiche massimizzano l'utilizzo del processore e ci aiutano a evitare di eseguire operazioni di texture duplicate negli scenari intensivi. Insieme alla nuova struttura del database, abbiamo così potuto creare un sistema velocissimo e totalmente basato sui dati, allontanandoci dalle tabelle del database impostate manualmente. Ecco una GIF di ciò che accade al motore quando riceve una richiesta per creare un Orco.

Nuova finestra di visualizzazione del personaggio
Le texture intermedie vengono generate utilizzando una texture in scala di grigi e una maschera per generare un tatuaggio colorato procedurale.
Nuova finestra di visualizzazione del personaggio
Uno screenshot di un prototipo precedente, che mostra le texture usate e i rispettivi input e output.

Interfaccia utente e animazioni

Con l'aumentare delle opzioni di personalizzazione, anche l'interfaccia utente è stata completamente riprogettata per Shadowlands. Il nuovo sistema consente ai progettisti di creare e classificare tutte le opzioni di personalizzazione che vogliono, senza alcuna necessità di riprogettare il codice o i sistemi sottostanti. Ogni opzione può anche comprendere tutte le scelte che desiderano e i progettisti possono scegliere di visualizzare ciascuna scelta utilizzando un nome personalizzato, due campioni di colore o con un numero. Ci siamo anche impegnati molto per rendere l'intera esperienza molto più ricettiva rispetto agli input del giocatore, consentendogli di visualizzare le scelte semplicemente passandoci sopra il mouse, invece di doverle cliccare una per una per visualizzarle. Inoltre, l'intera interfaccia di personalizzazione è ora condivisa tra la schermata di creazione del personaggio e il Barbiere.

Interfaccia della creazione del personaggio

Abbiamo anche riprogettato l'intera schermata di selezione della razza e della classe, consentendo ai nostri progettisti e artisti eccezionali di aggiungere animazioni ed effetti personalizzati. Poiché siamo nella schermata di creazione, e i principali sistemi di gioco non sono ancora in esecuzione, abbiamo operato un'estensiva rifattorizzazione. Col nuovo sistema, gli artisti e i progettisti hanno il pieno controllo su quali animazioni ed effetti riprodurre per ogni singola combinazione di razza, classe e genere, e possono apportare qualsiasi modifica necessaria.


Ci auguriamo che questo sguardo dietro le quinte della personalizzazione dei personaggi ti sia piaciuto tanto quanto a noi è piaciuto l'aspetto creativo che ne è emerso! Stile e onore, Azeroth!