Skip to main content

Intervista Tecnica: Halo Reach

Bungie spiega la creazione del gioco.

Quella che vi apprestate a leggere è un'intervista tecnica che il team di sviluppo di Bungie ha rilasciato al nostro Digital Foundry nelle scorse settimane. Gli argomenti trattati sono abbastanza ostici all'inizio, poi diventano di più facile comprensione, passando a temi come animazioni, intelligenza artificiale e bilanciamento del gioco.

Hanno partecipato all'intervista il graphic engineer Chris Tchou, il character designer Chris Opdahl, il community/writer Eric Osborne, il senior animation lead Richard Lico e il character engineer Max Dyckhoff.

Chiunque sia interessato a comprendere ciò che sta dietro a un videogame dovrebbe dedicare qualche minuto a questo articolo, che soprattutto nelle fasi finali lascia ben capire cosa separi una buona produzione da un tripla A capace di rinverdire ancora una volta i fasti di una delle saghe di maggiore successo dell'industria videoludica.

Digital FoundryIniziamo parlando dei miglioramenti al renderer. Siete stati in grado di gestire più sorgenti di luce rispetto al passato: avete utilizzato una modalità deferred? Quali ricerche avete effettuato, e quale soluzione avete adottato in proposito?
Chris Tchou

Halo 3 ed Halo 3: ODST utilizzavano un approccio "semi-deferred" a due passaggi, tranne per piccoli oggetti decorativi come erba e ciottoli che venivano renderizzati a singolo passaggio per una questione di velocità. Il semi-deferred rendering ci permetteva di applicare facilmente le decals, ma non l'abbiamo usato per l'illuminazione: quest'ultima veniva applicata nel secondo passaggio sui poligoni, così da ottenere delle lightmap complesse e dei bei riflessi di luce sui metalli (meglio del phong shading speculare). Per Halo Reach, abbiamo ricostruito i buffer deferred in maniera che potessero approssimare meglio i nostri modelli speculari, che ci hanno permesso di utilizzare delle veloci luci dinamiche deferred dovunque, senza perdere la lucentezza dei riflessi.

Inoltre abbiamo anche creato un sistema per determinare quando gli oggetti non si avvalgono del canale deferred (es. quando non hanno decals o complesse luci deferred che li toccano) e assegnare al volo tali oggetti al più veloce rendering diretto a singolo passaggio. Yaohua Hu ha anche speso molto tempo per ricercare una miglior rappresentazione delle lightmap (migliore delle armoniche sferiche studiate dalla meccanica quantistica!) che ci desse lo stesso supporto per le fonti di luce spaziali, contrasto migliorato, meno artefatti, un consumo di memoria inferiore e una performance nettamente superiore. Questo ci ha aiutati a risparmiare parecchio tempo di renderizzazione della GPU da usare per l'illuminazione dinamica deferred ed altre chicche grafiche.

1.2TB di riprese in HDMI effettuate dal Digital Foundry riassumono l'intera campagna di Halo Reach in 16 minuti e 34 secondi di filmato.
Digital FoundryIn precedenza, c'è stato un breve riferimento alla possibilità di renderizzare molte più particelle in Reach, e nel primo documento video abbiamo dato una fugace occhiata ad una demo in proposito: cosa c'è di nuovo in questo frangente e come viene utilizzato nel gioco?
Chris Tchou

Abbiamo creato un sistema particellare per gestire i casi specifici in cui ci sono numerose piccole particelle momentanee: in sostanza frammenti di roccia, nuvole di fumo, gocce di pioggia, schizzi, scintille e questo genere di cose. Lo esporrò più dettagliatamente alla prossima GDC, ma la parte migliore è che può gestire decine di migliaia di collisioni/rimbalzi ad ogni frame leggendo il buffer di profondità ed il normal buffer, e impiega meno di 0.3ms (circa 1/100esimo di un frame); il che è decisamente buono paragonato alle sette (7) collisioni standard permesse dal budget degli effetti standard.

Il nuovo sistema particellare permette agli artisti addetti agli effetti di usare un enorme quantitativo di queste piccole particelle che si scontrano durante gli effetti, senza preoccuparsi affatto della performance. E viene impiegato anche per la pioggia: se osservate la pioggia a rallentatore nel theatre mode potrete seguire ogni singola goccia mentre cade, finché non si infrange contro qualcosa!

Digital FoundryCome viene gestito l'HDR questa volta? Il dual framebuffer dava diversi problemi ad Halo 3, in termini di risoluzione ridotta, ma ciò non era ben giustificato. Altri formati di framebuffer (7e3/FP10 o INT16) non erano all'altezza? La vostra precedente presentazione alla GDC descriveva le differenze solo in termini numerici, ma il paragone effettivo è difficile da rendere in altro modo. Qual è l'approccio adottato con Reach?
Chris Tchou

Abbiamo utilizzato un singolo buffer 7e3 per il rendering finale di Reach. Il risultato è un HDR più limitato (circa 8x oltre il punto di bianco, invece del 128x di Halo 3) ma è molto più veloce nelle trasparenze e nel post-processing. In pratica, la differenza tra HDR 8x e 128x è lieve: la cosa principale che salta all'occhio è che il bloom attorno alle aree luminose perde colore più spesso, desaturandosi in bianco.

Inoltre confermiamo che un singolo buffer 7e3 ci dà più EDRAM disponibile per il lighting pass finale, ma la risoluzione del renderer è ancora limitata dai tre buffer utilizzati nel deferred pass principale. La risoluzione di Halo 3 era più limitata perché riservavamo un po' di EDRAM per le ombre dinamiche durante il lighting pass, insieme ai due buffer HDR ed al buffer di profondità. Invece con un singolo buffer 7e3, abbiamo un sacco di spazio disponibile per le ombre, ed è limitato solo dai tre buffer utilizzati durante il deferred pass.

Digital FoundryIl setup utilizzato in Halo 3 (e sospettiamo anche in Reach) fa pensare che non siate inclini ad usare il tiling dell'EDRAM. Quali sono i motivi?
Chris Tchou

Il tiling multiplo è problematico: o aggiunge troppa latenza al controller (perché il tiling rallenta la partenza della GPU), o risulta in troppi passaggi sui poligoni, consumando una gran quantità di risorse della CPU (in pratica tutto viene renderizzato due volte). Un altro fattore è nella DAC della 360, che ha un filtro fantastico in grado di nascondere gli artefatti: in realtà abbiamo eseguito vari test con degli utenti a risoluzioni diverse e nessuno riusciva a vedere la differenza! Quindi abbiamo deciso di optare per la performance migliore e per una latenza dei controlli ridotta, piuttosto che per un aumento di risoluzione quasi impercettibile che potesse minare il gameplay.