Progettare i valori dei danni di Diablo III

Progettare i valori dei danni di Diablo III
Lavorare nello sviluppo di software, che si tratti di lavoro, divertimento o della vostra società di videogiochi preferita, significa sapere che i problemi semplici non sempre hanno soluzioni semplici. Lo sviluppo di un gioco è, detto in una parola, complicato. Ci sono migliaia di parti in movimento, e anche la più piccola iterazione può comportare settimane di analisi e di backtracking. Guardando il processo da fuori, si potrebbe essere tentati di chiedere: "Perché non risolvete semplicemente il problema?" Ma è un po' come chiedere a un pasticcere perché non sostituisce semplicemente lo zucchero con un surrogato. La risposta sarà sempre la stessa: "Non è così semplice."

Numeri - Come funzionano?

In Diablo III, vengono fornite moltissime informazioni al giocatore. Parliamo di numeri. Li vedete ovunque! Sono sul vostro equipaggiamento, sul profilo del vostro personaggio e fluttuano intorno alla testa del vostro Nefilim quando siete in combattimento. Dietro ognuna di queste cifre c'è una quantità enorme di tecnologia che ne determina il comportamento.

Abbiamo ricevuto diversi feedback da parte di giocatori che dicevano che i numeri durante i combattimenti stavano cominciando a diventare fastidiosi o difficili da comprendere sul momento. In passato, era stato emozionante vedere quei grandi numeri che spiccavano sopra tutto il resto. Come potevamo ricreare quel richiamo emotivo senza far sembrare ai giocatori che avessero perso la loro potenza?

La patch 2.4.0 presenta un paio di nuove funzionalità che rispondono a questa esigenza. In primo luogo, abbiamo introdotto una nuova opzione di gioco che permette di troncare i numeri e poterli visualizzare utilizzando delle abbreviazioni. In secondo luogo, abbiamo aggiunto una nuova funzione che mette in evidenza con un nuovo colore alcuni dei vostri danni più ingenti in termini di numeri. L'implementazione di ognuna di queste novità è stata una sfida per noi: c'erano problemi di progettazione, o difficoltà con la localizzazione, e alla fine di ogni decisione il risultato doveva avere anche un bell'aspetto.

Inizialmente, pensavamo di mettere in evidenza semplicemente il 5% dei numeri più alti generati negli ultimi secondi. Il primo problema con questo approccio era la diversità di ogni configurazione, soprattutto relativamente a come i danni venivano inflitti: alcuni attacchi creano piccole esplosioni di numeri che persistono nel tempo, altri inondano lo schermo con un flusso costante di informazioni. Un altro problema sorto nel primo passaggio è che non aggiustava le fluttuazioni dei danni inflitti come avrebbe dovuto. Prendete una Stele del potere, per esempio, che aumenta temporaneamente la vostra potenza: al termine dell'effetto vorrete sapere se state ancora infliggendo danni notevoli.

Abbiamo sviluppato il nostro algoritmo passo dopo passo, tenendo conto di questi valori anomali, stabilendo quindi le seguenti regole per far apparire i numeri in arancione:

  • Il danno numerico dev'essere superiore a 10.000, per essere preso in considerazione
  • Se i danni numerici da visualizzare sono maggiori degli ultimi visualizzati in arancione, anche questo nuovo numero apparirà in arancione
  • Il valore del numero più alto decade del 3% ogni secondo
    • Ciò riduce la probabilità che trascorra un periodo troppo lungo senza vedere numeri evidenziati
  • I primi 10 grandi numeri vengono ignorati
    • Questo permette al sistema di calibrarsi da sé
  • Se non viene inflitto alcun danno per 10 secondi, il sistema si ripristina


Dove sono i miei miliardi? - La sfida della localizzazione

Se avete giocato l'ultima patch, potreste aver già notato le nuove abbreviazioni dei danni. Abbiamo ricevuto un sacco di domande, soprattutto dal nostro pubblico di lingua inglese, sul perché misuriamo solo in milioni e saltiamo il conteggio in miliardi.

Le ragioni sono diverse, ma la più importante è la localizzazione. Diablo III è un gioco globale, pubblicato in 13 lingue diverse, quindi quando prendiamo una decisione di progettazione che riguarda qualcosa di scritto (in questo caso, dei numeri), dobbiamo ricordarci che questo cambiamento avverrà in tutte le iterazioni del gioco. E se pensate che i numeri siano una cosa semplicissima da tradurre, non potreste sbagliarvi di più.


A sinistra: sistema numerico inglese. A destra: sistema numerico coreano.

Ecco un esempio di come ciò che all'apparenza è una semplice traduzione possa rivelarsi invece piuttosto complessa. Alcune lingue, come lo spagnolo o il francese, non utilizzano comunemente un termine unico per dire "miliardi", ma si riferiscono a tale valore con ciò che letteralmente noi tradurremmo "mille milioni", quindi non hanno una parola specifica. In termini di etimologia, la parola "billion" nell'inglese americano e britannico originariamente significava "un milione di milioni", ma ora significa "mille milioni".

Le cose diventano ancora più complesse se si considerano lingue come il cinese o il coreano, dove i grandi numeri vengono raggruppati con una scala diversa. Per esempio, in inglese (così come in italiano) la nomenclatura di un numero cambia ogni tre cifre, quindi abbiamo migliaia, milioni, miliardi, e così via. In coreano, la convenzione di denominazione dei numeri, invece, cambia ogni quattro cifre. Questo perché in coreano i numeri sono raggruppati in base diecimila, invece che in base mille.

Questo problema è aggravato dall'uso della punteggiatura. Non tutte le lingue utilizzano le virgole come interruzioni nei grandi numeri. Alcuni usano un punto, per esempio in quasi tutta l'Europa, e altri invece non usano alcuna punteggiatura.


A sinistra: quantità di oro in coreano. A destra: quantità di oro in francese.

Quando i numeri in Diablo III sono cresciuti, e abbiamo deciso di aggiungere una punteggiatura ai numeri, abbiamo avuto bisogno anche di un modo elegante per "tradurre" questa punteggiatura in modo appropriato in ogni localizzazione. Il nostro codice usa una libreria chiamata ICU (International Components for Unicode), che aiuta molto i software di localizzazione. Il codice ICU può essere usato in vari modi, ma noi l'abbiamo usato soprattutto per la sua capacità di prendere come input un numero e una lingua locale (per esempio inglese americano, francese o coreano) per restituire come output un numero formattato correttamente per quella lingua, completo di eventuali punti o virgole. Il nostro team di localizzazione ha creato anche una tabella che mostra quale sia il risultato finale per ciascuna regione.


Un esempio di una delle nostre tabelle per la localizzazione, che specifica quali lingue troncano i numeri e in quale punto.

Alcune localizzazioni hanno abbreviato di più o di meno, per lo più in base alle loro preferenze culturali. C'è una vera e propria psicologia dietro la soddisfazione dei giocatori che visualizzano una determinata lunghezza nei danni numerici che stanno infliggendo, e questa preferenza varia sia a livello personale che culturale. Per esempio, in inglese abbiamo scelto di non abbreviare i milioni, perché vedere "1.000.000" dà molta più soddisfazione di vedere "1M". Saltare i miliardi ci ha aiutato anche qui, perché vedere "1.000M" è molto più entusiasmante di un semplice "1B" (billions). Naturalmente, il formato del numero non è l'unica cosa su cui abbiamo riflettuto. Anche la grafica, i colori e il movimento delle scritte giocano un ruolo chiave.


Far risaltare i numeri - Particolarità grafiche

È importante fare in modo che quando un giocatore vede un numero, capisca rapidamente le implicazioni che vi sono dietro e che cosa significhi per lui in quel preciso istante. Con la patch 2.4.0 abbiamo voluto fornirvi più informazioni possibili durante i combattimenti. Ed è qui che entra in gioco la necessità di mettere in evidenza i colpi critici.

Guarda che bel critico!

Cambiare semplicemente il colore dei numeri era uno dei tanti modi con cui avremmo potuto presentare l'informazione "colpo critico". Ci siamo fatti un sacco di domande su quale fosse il metodo migliore per evidenziare questi colpi. Rendiamo questi numeri più grandi? Li facciamo muovere in modo diverso? Li facciamo lampeggiare? Li facciamo persistere sullo schermo più a lungo? O cambiamo loro solamente il colore? Come potevamo decidere quale di queste opzioni fosse quella giusta?

Abbiamo scelto il colore perché consentiva di presentare ai nostri giocatori questa nuova informazione in un modo radicalmente diverso che superava molti problemi di accessibilità. I numeri arancioni si distinguono, perché sono qualcosa che non avete mai visto prima, quindi inconsciamente prestate loro più attenzione.

L'arancione supera anche la prova per i daltonici. Se guardate una ruota dei colori, l'arancione è in un regno diverso rispetto ai colori che utilizziamo normalmente per altre informazioni. In questo modo, anche i giocatori daltonici possono notare che c'è qualcosa di nuovo!

Quando decidono di cambiare i colori dell'interfaccia, i nostri artisti considerano tre opzioni per la variazione: tonalità, saturazione e luminosità. Tutto ciò è parte dello spazio colore HSL (in inglese: hue, saturation e lightness), uno standard digitale per la ruota dei colori. Ogni aspetto è fondamentale per provocare un'emozione o evocare una risposta da parte di un giocatore. Vogliamo cambiare il mood? Aggiustiamo la tonalità. Se vogliamo rendere più piatta un'immagine carica, agiamo sulla saturazione. E se vogliamo attirare l'attenzione oppure ridurla? La luminosità è la risposta che cerchiamo.

Per esempio, una delle informazioni più importanti mentre giocate è quante cure state ricevendo. Le cure sono ciò che vi tiene in vita e vogliamo che siano chiaramente visibili. Per questo è una delle informazioni più luminose del gioco. Volevamo che anche la notifica dei vostri colpi critici fosse altrettanto visibile, quindi abbiamo giocato molto sul livello di luminosità, così che sappiate sempre quando si sta verificando il vostro miglior picco di danni.


Riassumendo

Quando si parla del team di Diablo III, è facile pensare ai nostri sviluppatori che modificano il modo in cui una classe o un oggetto funzionano, o che aggiungono per voi nuove funzioni da scoprire. Sono le cose con cui interagite direttamente e che catturano prima l'attenzione. Tuttavia, c'è molto di più dietro ciò che il vostro eroe indossa o sta maneggiando, e i nostri artisti, i progettisti, gli esperti di localizzazione e molti altri, ci aiutano a garantire che tutto funzioni all'unisono, senza dare problemi ai nostri giocatori in tutto il mondo.

Speriamo che vi sia piaciuto questo approfondimento dietro le quinte di una piccola caratteristica che, sotto sotto, è invece ingannevolmente gigantesca! Per noi è sempre un privilegio poter lavorare su questo gioco, anche quando si tratta di piccoli dettagli. Grazie per l'attenzione!