PDA

Visualizza la versione completa : L'avventurosa storia dell'Audio in The Division 2



Ubi-Guinko
01-17-2020, 04:20 PM
In aggiunta ai nuovi contenuti come la Modalità Hardcore, con l'l'Aggiornamento 6.1 (https://forums.ubisoft.com/showthread.php/2166472-Title-Update-6-1-%E2%80%93-Patch-Notes) abbiamo corretto numerosi errori e bug. Abbiamo inoltre risolto vari problemi audio che affliggevano il gioco fin dall'inizio, come per esempio gli effetti degli spari in ritardo e/o assenti, alcuni campioni affetti da distorsione o la mancanza totale di sonoro.Vogliamo quindi prenderci un attimo per darvi un'idea di come il team audio ha affrontato queste problematiche estremamente complicate durante gli ultimi mesi.

Patch dati su PS4
Una delle funzionalità più utili in ambiente PS4 è quella che permette di scaricare inizialmente un'immagine dati "base" e poi applicarle via via delle patch dati che chiamiamo "delta". Questo permette di ridurre sensibilmente la dimensione delle patch, ma perché l'audio possa funzionare in maniera corretta, tutte queste patch devono risultare contigue all'interno dell'immagine dati. Aggiornando la versione PS4 del gioco, abbiamo scoperto che alcuni gruppi di banchi audio finivano per allontanarsi l'uno dall'altro man mano che si procedeva con gli aggiornamenti, il che creava problemi di performance in lettura e scrittura da disco, andando così a inficiare la resa audio. All'inizio non eravamo riusciti a notare il problema perché normalmente noi lavoriamo creando ogni volta una nuova immagine del disco, quindi noi del team di sviluppo non vedevamo effettivamente questo spostamento, che invece veniva rilevato sia dai tester che dai giocatori. Dopo una serie di discussioni abbiamo fatto dei test diretti in laboratorio e abbiamo avuto prove inconfutabili che questa dinamica incrementale delle patch creava effettivamente dei problemi alla riproduzione dell'audio. Da quel momento, abbiamo deciso di modificare il nostro sistema di patch dati per far sì che i blocchi audio vengano sempre aggiornati interamente indipendentemente dal fatto che siano stati modificati o meno. Questo rende le patch un po' più grandi, ma ci assicura che tutti i banchi audio restino correttamente adiacenti l'uno all'altro.

Frammentazione della memoria
Chiariamo un concetto fondamentale: il numero di blocchi audio presenti in The Division 2 è molto più grande rispetto al primo gioco. Una delle sfide affrontate dagli sviluppatori è stata quella di usare la stessa quantità di memoria sulle console di questa generazione potendo contare, tuttavia, su una minor quantità di risorse di memoria dedicate a causa di fattori come personaggi, animazioni d'ambiente e altre routine di sistema che andavano a occupare porzioni di memoria. Per compensare questi aspetti, abbiamo dovuto essere molto radicali nelle decisioni relative a quali dati carichiamo e scarichiamo durante lo svolgimento del gioco. Quando la porzione di memoria dedicata è piena, caricare un nuovo banco audio significa andare a rimuovere uno di quelli precedenti e in The Division 2 abbiamo dovuto trovare il modo di farlo al doppio della velocità rispetto al capitolo precedente. Per darvi un'idea più chiara di come funzionano le allocazioni di memoria, immaginate che all'inizio di una partita il gioco sia una specie di grande parcheggio con tutti gli spazi usati in modo razionale e ordinato. Magari esce un autobus e al suo posto entra un'utilitaria. A quel punto, non potrebbe parcheggiare lì un altro autobus, perché una porzione dello spazio è stata occupata dall'auto di cui sopra. L'autobus, allora, dovrebbe procedere oltre, rendendo così l'occupazione dello spazio meno omogenea e ordinata rispetto a prima. Il che implicherebbe una riduzione dello spazio totale a disposizione. Chiamiamo questo problema "frammentazione della memoria". Per ogni porzione di memoria allocata e liberata direttamente da Snowdrop, abbiamo un sistema che tiene traccia di ogni spostamento e riduce drasticamente la frammentazione. In ogni caso, la gestione dei blocchi audio nel nostro caso avviene grazie a un software intermedio e funziona in modo lievemente diverso. Finché il motore del gioco doveva riservare dei "parcheggi" specifici per i diversi tipi di dati di gioco, tutto andava alla grande. Tuttavia, con il nuovo e più moderno sistema di allocazione della memoria, la cosa non sembrava filare altrettanto bene. Per esempio, poteva capitare che dopo un paio d'ore di gioco, un utente si trovasse a cambiare arma e scoprire che l'effetto sonoro degli spari era magicamente scomparso - proprio perché il banco sonoro per quell'arma non veniva più caricato correttamente. La colpa era proprio della frammentazione. Per questo, l'unica soluzione è stata quella di riservare dei "parcheggi" dedicati ai banchi audio fin dall'inizio e assegnare a un software mediatore il compito di gestirli.

Audio spaziale Microsoft e Dolby Atmos
Siamo state una delle primissime compagnie a lavorare con l'Audio spaziale Microsoft e nonostante il sistema in sé sia molto valido, molte compagnie del settore periferiche audio per Windows 10 si sono fatte cogliere impreparate. Per esempio, abbiamo avuto un paio di casi in cui intere gamme di headset risultavano mute quando veniva usato il Dolby Atmos con l'Audio spaziale, nonostante funzionassero perfettamente in normale modalità stereo. Sfortunatamente, dopo aver provato numerosi headset differenti, nessuno era in grado di stabilire quali combinazioni specifiche avrebbero avuto problemi. Questo perché alcune aziende non avevano il nostro gioco, o noi non avevamo i loro headset. Nonostante tutti gli sforzi per correggere questi problemi, che avevamo notato fin dalla Beta privata, qualche headset ha continuato a non funzionare correttamente con l'Audio spaziale Microsoft. Abbiamo fatto tutto il possibile per risolvere il problema, pubblicando soluzioni alternative e implementando il riavvio del mix audio del gioco all'entrata e all'uscita dalla finestra del client. Ad agosto abbiamo ricevuto un aggiornamento del firmware per Xbox One che ha reso il sistema dell'Audio spaziale lievemente più pesante in termini di CPU e, dato che The Division® 2 lavora ai limiti di performance della console, questo piccolo cambiamento ha creato non pochi problemi alla riproduzione degli effetti sonori spazializzati. La decisione è stata sofferta, ma per il bene dei giocatori abbiamo scelto quindi di rinunciare all'Audio spaziale Microsoft su questa piattaforma e tornare per ora al surround 7.1 standard.

Precaricamento preventivo blocchi dati
In The Division 2 c'è un flusso costante di contenuti che vengono caricati e scaricati dalla memoria: questo mette a dura prova le piattaforme su cui gira il gioco, in particolare le console. Il risultato è un frequente sovraccarico di input e output dei file. Dobbiamo assicurare un flusso ottimale di trasmissione dati con i dischi rigidi, poiché non sono solo i blocchi audio a essere coinvolti, ma anche le animazioni e molti altri processi di gioco. Un piccolo ritardo in un caricamento, anche di pochi millisecondi, potrebbe inficiare gravemente l'esperienza di gioco e causare problemi di frame rate, animazioni che si bloccano, audio fuori sincrono, ecc. Abbiamo fatto del nostro meglio per evitare che questo avvenga, ma è stato impossibile scongiurare interamente il problema a causa di variabili come la piattaforma in uso, l'età della console o quella del disco rigido. Si tratta di problemi non riscontrabili con i nostri kit di sviluppo, che girano su macchine diverse, per esempio, dalle console commerciali. Alla fine dei conti, non possiamo far altro che considerare questi problemi normali bug fisiologici, perché non si tratta di errori di codice, bensì di questioni legate alla longevità e alla potenza pura dell'hardware in uso. Nei momenti di picco di traffico dati, in particolare, dobbiamo tenere presente le differenze di priorità tra i vari tipi di dati in questione. Affinché il sistema di caricamento funzioni correttamente, dobbiamo assegnare delle precedenze. Abbiamo lavorato duro per ribilanciare le priorità perché non c'erano soltanto problemi di sonoro, ma anche con le texture: poteva capitare, ad esempio, che dei giocatori si trovassero a entrare in un sotterraneo e scoprire che il sonoro era completamente assente. Era come trovarsi sospesi nel vuoto. Una parte del lavoro sulle priorità dei blocchi di dati si è focalizzata sul precaricamento preventivo, un sistema che permette a specifici segmenti di dati di essere disponibili prima del loro effettivo utilizzo. Un esempio di questo meccanismo si può notare nella missione tutorial iniziale, al momento in cui si sente il primo colpo di mortaio. Senza precaricamento, quella roboante esplosione sarebbe arrivata con un ritardo di svariati secondi. Ovviamente, quando il giocatore è guidato in modo lineare dal gioco, o sta guardando un filmato, è semplice prevedere quali dati vanno preparati in anticipo, ma nelle fasi open world la cosa è molto meno lineare.

Passi avanti
Nell'Aggiornamento 6.1, grazie agli sforzi profusi con il precaricamento preventivo, ai test interni e alle vostre utilissime segnalazioni, abbiamo notevolmente ridotto i problemi di audio. In ogni caso, sappiamo bene che c'è ancora molto lavoro da fare e che dobbiamo tenere presenti molte casistiche potenziali, considerando il numero di variabili in gioco. Per questo, siamo consapevoli che potreste ancora incappare, di tanto in tanto, in effetti sonori che saltano, o altri problemi simili. Apprezziamo moltissimo il vostro aiuto nell'identificare questi problemi ed è per questo che vi chiediamo di fornirci sempre tutti i dettagli possibili, come per esempio quando e dove si è verificato uno specifico bug audio. Se incontrate dei problemi audio, fatecelo sapere attraverso le sezioni Supporto Community dei nostri forum[/URL] o il sito del Supporto Ubisoft (https://support.ubi.com/).

/La squadra di The Division 2