7/7/2017

Operazione Health: analisi – complessità di Hibana

Dopo un esame approfondito, pensiamo di aver individuato e risolto quasi tutti i problemi riguardanti il funzionamento del gadget di Hibana. A partire dall'aggiornamento 2.1.1 dell'11 luglio per tutte le piattaforme, dovreste poter notare un comportamento del lanciagranate X-KAIROS di Hibana più omogeneo.

Il caso: il design unico di Hibana

Prima dell'avvento di Operazione Health, avevamo ricevuto alcune segnalazioni riguardanti il lanciagranate X-KAIROS di Hibana. Dopo un esame approfondito, la squadra ha scoperto dei problemi alla base dell'architettura del gadget di Hibana che hanno comportato la necessità di riscrivere quasi da zero il codice di gestione dei suoi proiettili. Abbiamo parlato con il programmatore animazione Alex Busby, che ci ha descritto sia l'approccio iniziale alle meccaniche di gioco concernenti Hibana, sia il modo in cui la squadra intende correggerlo una volta per tutte.

Prima, però, dobbiamo fare un passo indietro e chiarire perché Hibana è differente dagli altri operatori. Soltanto così si potrà capire perché il modo in cui è stato sviluppato il suo design unico ha causato tutti quei problemi che avete riscontrato nel gioco. Hibana si serve del suo gadget per sparare fino a sei cariche X-KAIROS da far esplodere a comando. Per costruire Hibana, la squadra ha creato diversi oggetti-rete distinti per il suo corpo, il suo gadget (il lanciagranate) e le singole cariche X-KAIROS. Nessun altro operatore presenta un simile numero di oggetti-rete attivi contemporaneamente.

"Anche se esiste già qualcosa di simile con Ash, Hibana è il primo personaggio per il quale esistono varie fasi in cui è possibile sparare diverse volte, cariche multiple e varie fasi in cui è possibile sparare più cariche o farne saltare altre o ricaricare." – Alex Busby, programmatore animazione

Ma cosa sono gli oggetti-rete? Per elaborare gli eventi che si verificano nel corso di una partita, è necessario dividerli per poterli accettare in un ordine diverso da quello preventivato. Per fare in modo che il tutto funzioni, ad alcuni di questi processi assegniamo due distinte autorità (l'autorità host e l'autorità locale) il cui compito è far sì che ogni cosa accada esattamente come ci si aspetta, e questo per tutti i giocatori coinvolti. In sostanza, per ciascuna partita si viene a creare una cronologia di eventi sia sul server sia sulla macchina locale di ciascun giocatore (il PC o la console). Se c'è una discrepanza tra le cronologie, l'autorità host privilegia i dati sul server, mentre l'autorità locale privilegia i dati della macchina locale. Solitamente tutti questi calcoli e confronti avvengono così rapidamente da non essere percepibili dall'occhio umano.

Il problema: discrepanza tra l'autorità host e locale

Nel caso di Hibana, occorre monitorare molti eventi in contemporanea per un unico operatore. Abbiamo il suo lanciagranate, che può mandare al server messaggi relativi al lancio delle cariche, alle loro traiettorie e all'intervallo di ricarica; abbiamo la sua posizione nel mondo di gioco, per consentirne il rilevamento da parte degli altri giocatori e per dar vita alle collisioni; infine, abbiamo fino a sei cariche X-KAIROS che inviano messaggi al server sulla loro posizione e sullo stato di attivazione. Per tenere traccia di tutti questi elementi con precisione, abbiamo assegnato a ciascuna un oggetto-rete, con il compito di comunicare le relative informazioni al server.

Tuttavia, una volta introdotta Hibana, abbiamo notato una progressiva difficoltà dei nostri server nel gestire tutte le informazioni inviate dai suoi vari oggetti-rete. Per esempio, se Hibana sparava sei cariche, il flusso dei dati a volte veniva interrotto da un lag (ritardo) significativo o da altri malfunzionamenti di rete. Le combinazioni di circostanze che potevano causare simili problemi con il gadget di Hibana erano numerosissime e molte di esse dipendevano dall'autorità (host o locale) assegnata al singolo step.

La soluzione: oggetti-rete snelliti

Dopo mesi di duro lavoro, abbiamo semplificato la gestione degli oggetti-rete di Hibana. Anzitutto, abbiamo limitato il numero complessivo di oggetti-rete da monitorare, riducendo così automaticamente il numero di potenziali conflitti tra le cronologie dell'autorità host e dell'autorità locale. In questo modo, i giocatori non dovrebbero riscontrare le complicazioni dovute alla loro desincronizzazione.

"Le correzioni apportate hanno potenziato in molti casi la sfera d'azione dell'autorità host, cercando però di mantenere una reattività quanto più elevata possibile. Questo è stato, in succo, il nostro lavoro. Abbiamo individuato i casi in cui avrebbero potuto verificarsi degli errori o delle desincronizzazioni e abbiamo assegnato sempre di più la gestione del gadget all'autorità host." - Alex Busby, programmatore animazione

Infine abbiamo meticolosamente analizzato tutti gli scenari in cui si verificavano altri problemi, come per esempio il posizionamento delle cariche e gli errori grafici, e corretto anche quelli. Ulteriori dettagli sulle correzioni concernenti Hibana nell'aggiornamento 2.1.1 sono presenti nelle note sulla patch che saranno pubblicate lunedì 10 luglio.

Queste correzioni non soltanto miglioreranno l'esperienza di gioco con Hibana, ma ci apriranno le porte a una maggiore varietà di soluzioni nel caso dovessimo introdurre altri operatori basati su una meccanica simile.

Speriamo di avervi spiegato in modo esaustivo la natura dei problemi relativi a Hibana e del motivo per cui, durante Operazione Health, abbiamo dovuto impiegare buona parte delle nostre risorse per correggerli.

Grazie mille per il vostro continuo supporto!

Visita gli altri canali social

facebook icontwitter iconyoutube icontwitch icon