PC e console next-gen: parla uno dei padri di Battlefield 4

Johan Andersson ci parla di Battlefield 4, Frostbite 3, funzioni da integrare nell'hardware next-gen, sviluppo su Xbox One e PS4 e l'API AMD Mantle.

Avatar di Chris Angelini

a cura di Chris Angelini

Abbiamo intervistato Johan Andersson, l'uomo che ha plasmato il motore Frostbite di DICE. Con lui abbiamo parlato di Battlefield 4, Frostbite 3, console next-gen e AMD Mantle. È una lunga intervista, perciò bando ai preamboli e avanti con il botta e risposta!

Tom's Hardware: DICE usa un middleware per l'audio di Battlefield 4 o è una soluzione proprietaria? Avete intenzione di incorporare il supporto TrueAudio?

Johan: usiamo le nostre soluzioni audio, che essenzialmente sono realizzate internamente. Attualmente non abbiamo intenzione di usare TrueAudio. Questa soluzione è arrivata tardi ed eravamo soddisfatti di quello che avevamo. Probabilmente in futuro ci porremo maggiore attenzione. Non sto parlando di Battlefield 4 nello specifico, ma del Frostbite in generale. Non abbiamo avuto tempo di fare una valutazione completa e capire cosa comporti.

Johan Andersson

TH: qual è la caratteristica di Battlefield 4 che ti piace di più e volevi venisse realizzata con successo?

Johan: bella domanda, non ne sono sicuro al cento per cento e potrebbe sembrare che stia facendo pubblicità, ma ti dirò Levolution. Abbiamo aggiunto l'algoritmo dinamico radiosity nel nostro motore da diverso tempo e fatto sì che con il Frostbite 3 fosse in tutto più flessibile, e che permettesse agli artisti di usare il toolbox per modificare le varie sfumature di illuminazione, il meteo e gli effetti. Con il Paracel Storm, ad esempio, un intero livello cambia clima, l'acqua si fa più burrascosa e inizia a piovere. Il cielo cambia. La variazione di luminosità in quel livello è abbastanza netta e abbiamo anche aggiunto la simulazione del vento sugli alberi e sulla vegetazione. A tutto questo abbiamo applicato il nome Levolution. Penso che sia devvero bello e impatti sul gameplay, è questo è divertente.

TH: concordiamo. Levolution è uno degli aspetti che ci piacionno di più di Battlefield 4. Tecnicamente parlando di che cosa avete avuto bisogno per fare tutto ciò? Perché non ci sono molti titoli con terreno e ambiente distruttibile in circolazione?

Johan: è difficile dirlo. Tutti i giochi hanno dei vincoli, giusto? Se state realizzando una campagna single-player potrebbe non aver senso aggiungere questa caratteristica. Per Battlefield e la sua parte multiplayer, caratterizzata da livelli abbastanza grandi in cui si fanno tante cose differenti, avere maggiore dinamicità ci è sembrata la scelta giusta. Inoltre rappresenta un passo in avanti che si traduce nella creazione di un engine più maturo. Quando non si lavora solamente su sistemi a basso livello bisogna far conoscere il tutto a chi crea il contenuto. E poi gli artisti devono essere davvero abituati a lavorare con quel motore; aggiungere una cosa come questa a essere onesti richiede un sacco di flessibilità, anche all'interno del motore, in modo da controllare i sistemi e far sì che lavorino bene insieme. Inoltre può essere abbastanza pesante sotto il profilo prestazionale, anche solo simulare il vento e l'acqua. Tutto questo richiede enormi quantità di parallelismo e di calcolo, soprattutto quando si cerca di avere 60 FPS su console.

TH: hai ragione.

Johan: richiede molto impegno da parte di tutti. Non penso che molti altri studios o team abbiano a disposizione tutto questo per ottenere qualcosa del genere.

TH: Sicuramente. È vero che usate compute shader per il deferred shading tile-based dai tempi del Frostbite 2?

Johan: Sì.

TH: in che modo il Frostbite 3 è influenzato da quanto state facendo con DirectCompute?

Johan: abbiamo il supporto compute shader; questa è essenzialmente la cosa più importante per noi. Abbiamo ottimizzato molto il compute shader dell'illuminazione in BF3, applicando ulteriori miglioramenti. Abbiamo fatto anche del lavoro su post processing e sfuocatura. Inoltre la nostra profondità di campo basata su sprite usa un compute shader. Usiamo questo con le impostazioni Ultra su PC per ottenere una sorta di bokeh per la profondità di campo.

Il compute shader orchestra il tutto per far sì che si ottengano davvero buone prestazioni. Poi lo renderizziamo tramite la pipeline grafica. Abbiamo usato DirectCompute in diverse parti e andando avanti credo che sarà molto importante per noi di ottimizzare ulteriormente le prestazioni grazie a questa API.