Forza Motorsport su Scorpio: la storia completa - articolo
Come il software di Turn 10 ha aiutato a plasmare la prossima Xbox.
Poco prima della visita del Digital Foundry al campus di Microsoft, il Senior Director del Console Marketing, Albert Penello, ci ha chiesto cosa avessimo bisogno di vedere quel giorno, quello che ritenevamo fondamentale per l'articolo. La risposta è stata ovvia ed immediata: al di là delle specifiche e degli aspetti più profondi della tecnologia, avevamo bisogno di vedere il software girare sull'hardware effettivo. Le promesse fatte riguardavano l'upscaling in 4K dei motori di Xbox One e per poterci convincere, al di là dei discorsi sulla tecnologia, soltanto una demo in tempo reale avrebbe potuto confermare le affermazioni fatte a proposito della macchina. Penello è rimasto disinvolto, ha annuito e sorridendo la conversazione è proseguita.
Meno di 24 ore dopo, stavamo parlando con Chris Tector, Studio Software Architect di Turn 10 Studios. Come ogni presentazione di Scorpio a cui abbiamo assistito quel giorno, nell'aria si sentiva un senso di eccitazione generale. Chris Tector era davvero entusiasta di condividere il ruolo dello studio nello sviluppo di Project Scorpio e ovviamente sapevamo che avremmo visto Forza girare in tempo reale sulla nuova console.
Tuttavia, la demo "ForzaTech" che saremmo andati a vedere non sarebbe stata di Forza Motorsport 7. Normalmente i nuovi software non vengono svelati nel corso di profonde analisi tecniche ma chiaramente Turn 10 e il team di Xbox sono fiduciosi che il software finale raggiungerà o addirittura supererà la qualità di quello che riportiamo qui.
"ForzaTech è davvero lo strumento che ci permette di mostrare le caratteristiche della piattaforma, come le Direct3D 12 su PC, e ci aiuta nello sviluppo di elementi interni che nessun altro può vedere", dice Tector. "Vogliamo essere sicuri che l'hardware sia in grado di fare quello che abbiamo in mente, di raggiungere la nostra visione".
Come abbiamo già rivelato, l'innovativa tecnica di Microsoft per definire, rifinire e personalizzare le componenti di silicio di Scorpio deriva dal portare i motori di gioco già esistenti per Xbox One all'interno dello strumento di ottimizzazione PIX (Performance Investigator for Xbox) e utilizzare quei dati per progettare il nuovo processore. Turn 10 è stato in grado di fare di più: modificare il motore di gioco come meglio credeva, consegnando vari dati di profilazione aggiuntivi al team al lavoro sull'hardware, per farlo girare sui loro emulatori, molto prima che un qualsiasi hardware reale fosse concepito.
"Abbiamo ottenuto una marea di dati con ForzaTech, con cui abbiamo effettivamente renderizzato diverse scene a risoluzioni diverse quali 720p, 1080p e 4K. Poi abbiamo messo sotto stress diversi aspetti del motore come il filtro anisotropico e il multi-sampling, spingendo pesantemente i livelli di dettaglio solo per avere un'idea di dove fossero i diversi colli di bottiglia", dice Tector.
"Una volta create queste scene, dopo averle renderizzate e divise in parti, siamo stati in grado di dimostrare che il modello è realmente in grado di scalare perché predice le prestazioni che si otterrebbero se una scena a 720p fosse scalata a 1080p con determinate opzioni. In questo modo possiamo fare un confronto con ciò che abbiamo effettivamente realizzato su Xbox One. Nel momento in cui sviluppiamo il modello previsionale, questo sistema ci dà la possibilità di farci un'idea dello scaling e soprattutto conferma a sua volta l'intero modello".
Questa profilazione è solo una parte dei dati con cui ha avuto a che fare il team dell'hardware Xbox. Ulteriori dati sono giunti da altri titoli e i risultati dello scaling in 4K sono sembrati coerenti. "Tutte le registrazioni, le analisi e le simulazioni che sono state fatte con PIX hanno confermato i dati di tutti, non solo di quelli che volevano puntare ai 60 fps in 4K a partire dai 1080p60, come Turn 10, ma anche di chi non è ancora arrivato a quel punto", ha continuato Tector. "Magari questi studi hanno altre esigenze, non puntano ad una risoluzione nativa e di conseguenza i loro motori devono sottostare ad altri compromessi con colli di bottiglia differenti rispetto ai nostri. Penso che sia fantastico che il modello abbia vagliato una così ampia gamma di differenti tipologie di rendering, ha davvero contribuito a confermarne l'efficacia".
Inoltre, lavorando direttamente insieme al team hardware di Xbox, Turn 10 è in grado di fornire preziosi consigli da sviluppatore. "La cosa più importante è che siamo in una fase molto prematura. Possiamo valutare il lavoro decisamente prima che gli altri studi lo facciano singolarmente o in gruppo", ha dichiarato entusiasta Tector. "Possiamo farlo come first party per contribuire alla solidità della piattaforma, perché non stiamo cercando di renderla migliore non solo per noi ma per tutti gli sviluppatori di videogiochi".
"Non posso sottolineare sufficientemente quanto sia importante per il team Xbox avere dei collaboratori come Turn 10, Chris e la sua squadra", ha dichiarato Kevin Gammill, Group Program Manager di Xbox Core Platform. "Non solo hanno contribuito a sviluppare il modello ma ci hanno anche aiutati a rimanere in contatto con la prospettiva degli sviluppatori, così come la prospettiva dei consumatori sta dando il meglio per i nostri clienti, quindi si tratta di una fantastica collaborazione".
"È davvero straordinario poter contare sul parere di uno sviluppatore. Sono sicuro che sia accaduto nel corso della storia ma è stato comunque un sollievo", ha aggiunto Tector. "Dice molto riguardo l'organizzazione di Xbox: tutto è stato messo nero su bianco, in modo da mettere alla prova il progetto e verificare se questo modello avrebbe avuto senso per uno sviluppatore".
Gammill sostiene che tutti i team first party di Microsoft sono stati coinvolti nel processo di creazione dell'hardware di Scorpio. "Turn 10 ci indirizza in un senso, 343 in un altro, Coalition in una direzione ancora diversa", dice. "Lo studio Rare ci ha spinto con forza verso la piattaforma Beam, suggerendoci alcune cose che avremmo potuto fare con questo servizio. È quindi tutto semplicemente fantastico perché abbiamo stretto una fortissima collaborazione con gli studi first party in generale e ciò ha portato grandi benefici per la piattaforma e di conseguenza per i consumatori".
I dati teorici e le proiezioni sono diventati molto più reali con l'arrivo del primo prototipo di Scorpio, all'inizio dell'anno. A metà gennaio, Matt Lee del team Xbox Direct3D è arrivato nello studio di Turn 10 con un sacco di nuovi componenti, ansioso di metterli su Project Scorpio per farci girare sopra un vero codice.
"Volevano ottenere al più presto un titolo nativo, che fosse realmente pensato per Scorpio", ricorda Tector. "Hanno fatto molti test di compatibilità coi precedenti titoli, ma ne volevano mettere alla prova uno che fosse costruito su misura per l'Xbox Development Kit, in modo da valutare le prestazioni della macchina facendoci girare sopra nativamente il software, senza passare per degli emulatori".
A questo punto dello sviluppo, il prototipo hardware di Scorpio non assomigliava a nulla che potesse sembrare una console.
"Aveva una scatola di cartone piena di parti e ha iniziato a tirarle fuori sulla scrivania ed era un putiferio di schede madri, niente s'incastrava correttamente, c'erano connettori di debug e mancava un vero e proprio sistema di raffreddamento, c'era solo una grossa ventola per PC, una delle più grosse, posizionata sulla scrivania in direzione dell'hardware", ha dichiarato divertito Tector. "Era comico perché nel momento in cui si metteva in funzione la ventola iniziava a vibrare e si spostava lentamente, al punto d'allontanarsi dalla memoria e da far spegnere l'intero sistema. Alla fine l'abbiamo fissata al tavolo. È stato davvero divertente, in modo geek".
Ci sono voluti appena due giorni per portare ForzaTech sull'improvvisato hardware di Project Scorpio e, secondo Chris Tector, il grosso del lavoro è stato adattare il codice da una prematura versione dell'XDK (un ambiente di sviluppo basato su un'architettura PC), che risaliva ad appena dopo la data di uscita di Forza Motorsport 6.
"Abbiamo avuto a che fare con un problema causato dall'allineamento della memoria, una volta risolto quello siamo stati pronti per far girare il software su Scorpio. È stato così facile e veloce. Siamo rimasti sconvolti", ha dichiarato. "Avevamo messo a disposizione di Matt una stanza speciale, era chiusa a chiave in modo che potesse restarci dentro a lungo. Erano passati due giorni e il terzo eravamo già lì a giocherellare con le opzioni, rifacendo tutti i nostri stress test, alzando di volta in volta tutte le varie impostazioni".
A quel punto abbiamo interrotto sul più bello Tector per chiedergli di chiarire qualcosa che sembrava incredibile da credere. Stava davvero dicendo che la demo ForzaTech ha iniziato a girare fin da subito al meglio su quello sgangherato ammasso di componenti?
"Dal primo giorno, sì. Eravamo sbalorditi. Voglio dire, altri lanci di nuove console non sono andati allo stesso modo, bisognava sempre lottare fino agli ultimi mesi. Invece, adesso, dal secondo giorno potevamo già domandarci cosa avremmo potuto fare con quella macchina".
Successivamente siamo stati portati di fronte ad un terminale con due schermi. Sulla sinistra girava il software di profilazione PIX, mentre sulla destra girava la demo ForzaTech, su un meraviglioso display da 55 pollici LG OLED B6.
"Questo è ForzaTech a 60 fps e in 4K", ha dichiarato orgoglioso Tector. "Stiamo ancora sfruttando le impostazioni che avremmo voluto usare in Forza 6. Dato che è un'Xbox, stiamo usando l'EQAA in 4:2. Questo è l'attuale utilizzo generale del processore, quindi stiamo sfruttando solo il 60% della potenza di elaborazione per ottenere questo risultato. So di aver detto che queste sono in pratica le impostazioni di Forza 6, ma la cosa più importante è che questa demo include anche contenuti in 4K, visto che possediamo asset autorizzati per i modelli, per le macchine, per i tracciati e per tutto il resto. Abbiamo messo tutto dentro e ci siamo assicurati che le texture girassero correttamente".
L'eccesso di larghezza di banda della memoria di Project Scorpio assicura che il carico addizionale di questi asset intacchi le prestazioni solo dell'uno percento. La demo, di per sé, consiste in un set completo di macchine, incolonnate su due file, che si muovono come un treno lungo il circuito del Nurburgring.
"Questa è una demo che mette particolarmente sotto sforzo l'hardware. Come ho detto, ci impegniamo tantissimo per mettere alla prova le prestazioni di tutti i nostri titoli", ha spiegato Tector. "In questo caso lasciamo semplicemente che le macchine procedano per il loro corso. L'intelligenza artificiale è completamente sbloccata, così come la fisica. Facciamo partire tutti i piloti, guidati dall'IA, dalla griglia di partenza, lasciandoli liberi di girare e in questo modo garantiamo che le risorse per il rendering vengano rispettate. Verifichiamo che ogni macchina e pista passino il test per verificare che rispettino quel budget prestazionale che abbiamo a disposizione. Questo è uno dei motivi per cui riusciamo a garantire un frame rate così fluido. Siamo molto rigidi nel mettere in atto questi passaggi".
Il motore di Forza, immancabilmente, genera un nuovo frame ogni sessantesimo di secondo. Secondo Chris, ogni singolo componente ha un tetto che non può superare ma ovviamente non è detto che venga sfruttato completamente, per esempio quando ci sono meno macchine a schermo. Il carico della GPU cambia nel corso della demo e apparentemente tocca un massimo di circa il 70%, ma per la maggior parte del tempo è attorno al 65%, qualche volta anche meno.
"È tutto variabile e in gran parte il motore scala in modo relativo", afferma Tector. "Qui siamo attorno al 50% di utilizzo perché parte della griglia di partenza non è visibile. Invece all'inizio, nei momenti più concitati, ci sono effettivamente più modelli in vista".
Ma il circuito di Nurburgring GP potrebbe non essere quello che richiede più risorse.
"Ogni tracciato rispetta i limiti di budget delle risorse", replica Tector, suggerendo che la scelta del circuito non impatterebbe diversamente sul risultato. "Impostiamo i nostri limiti di budget prestazionale ad un livello inferiore al frame. Non si raggiungono i 60 fps? L'ambiente resta comunque fedele al budget di millisecondi, quindi il tutto viene normalizzato, consentendoci di gestire la situazione come un processo complessivo con tutte le centinaia di macchine e tutte le piste che abbiamo. Diversamente non saremmo in grado di farlo".
La presentazione è chiara e nitida, il test kit di Scorpio è posizionato affianco alla TV e non c'è alcun tipo di dubbio che sia proprio l'hardware di Scorpio a far girare il Forza Engine in 4K a 60 fps fissi, con un ampio margine di risorse non sfruttate. L'utilizzo della GPU rimane costantemente all'interno di un intervallo fisso, mentre la serie di macchine sfila lungo il tracciato. Il risultato è impressionante ma senza vedere una Xbox One che fa girare la stessa demo, come punto di riferimento, ci chiediamo quanto sia evidente il passaggio tra 1080p e 4K.
"Visto che stiamo parlando di questa scena, è giusto che abbiate mosso questo appunto, perché non sono presenti alcuni dei componenti calcolati nel limite di risorse. Probabilmente ci sarebbe una differenza di 14 ms, ma con questo tipo di griglia potrebbe essere più vicino ai 15 ms", ha replicato Tector, suggerendo in questo modo che l'utilizzo della GPU attorno al 65% su Project Scorpio si tradurrebbe in un utilizzo tra l'84 e il 90% su Xbox One, con gli stessi contenuti ma a 1080p.
Tector si è poi mosso sul display sinistro del banco di prova, su cui girava PIX. È sceso a leggere i dati ottenuti dalla GPU, da cui emerge il flusso di lavoro. Lo strumento consente di mostrare quali shader sono in funzione, quali sono i colli di bottiglia e può anche scavare più in profondità, fino ad una singola elaborazione della GPU. Un livello di precisione simile è ottenibile anche dal lato CPU. Ciò consente una finissima ottimizzazione che semplicemente non sarebbe possibile su PC.
"Quando abbiamo creato Apex siamo passati per la prima volta al PC dallo sviluppo su Xbox e mentre in precedenza avevamo questi strumenti perfettamente calibrati, per sviluppare su PC è stato doloroso non poterli usare", ha ricordato Tector. "Per noi avere questi strumenti fin dal primo giorno è stato utilissimo, perché possiamo ottenere dati e statistiche istantaneamente e possiamo iniziare a fare la comparazione tra le tempistiche di rendering in microsecondi tra Xbox One e Scorpio".
Questo immediato livello d'informazioni riguardo una nuova console va assolutamente a beneficio degli sviluppatori. Microsoft dice che Project Scorpio fa parte della famiglia di prodotti Xbox One ed è chiaro che ciò si ripercuote sugli sviluppatori, ma i maturi strumenti usati per la console vecchia di tre anni funzionano altrettanto bene anche sulla sorella in arrivo, orientata al 4K.
"Dopo i primi due giorni, che ci sono voluti per portare Forza Tech su Scorpio, abbiamo realmente tagliato via un paio di millisecondi perché avevamo bisogno di più tempo per aggiungere nuove caratteristiche nel gioco e, cosa più importante, volevamo che fossero presenti in entrambe le versioni", ha rivelato Tector. Sarà interessante vedere cosa riusciranno a fare con questo tempo in più della GPU nel prossimo Forza. "Raggiungere quel livello di dettaglio ci ha permesso di ottenere un'ottimizzazione possibile solo per uno studio first party e solitamente solo per l'unica console su cui lavora. Ora con queste due console, estremamente simili e compatibili tra loro, possiamo applicare delle ottimizzazioni che porteranno beneficio anche a Xbox One. Possiamo effettivamente apportare queste caratteristiche ad entrambe le versioni e prima non avremmo potuto non farlo".
Chiaramente c'è ancora un grosso avanzo di potenza della GPU disponibile su Scorpio, quindi come può adattarsi il motore grafico? Turn 10 ci sta ancora lavorando ma le impostazioni grafiche disponibili in Forza Motorsport 6 Apex su PC potranno essere portate al massimo su Scorpio. Turn 10 le ha letteralmente aumentate al livello ultra e funziona tutto perfettamente, con il gioco che continua a mantenere i 60 fps in 4K. Per verificare le possibilità offerte dalla nuova console, possiamo fare un confronto con la GPU per PC necessaria a far girare il gioco con alcune impostazioni a livello ultra.
"La cosa assurda è che siamo anche andati oltre le impostazioni ultra per PC e siamo stati in grado di portare al massimo tutto ciò che impattava sulla GPU, arrivando a sfruttarla solo all'88%", ha dichiarato Tector indicando i dati mostrati in cima allo schermo. Subito sotto il contatore dell'utilizzo della GPU abbiamo visto che l'anti-aliasing era impostato su 4x, o piuttosto 8:4x utilizzando la tecnologia di AA hardware Radeon EQAA.
"È il massimo livello qualitativo per un modello che si possa osservare in gara, più basso solo rispetto a quello disponibile nella modalità Autovista. Successivamente bilanciamo i livelli di dettaglio nella scena. Praticamente è un terrificante abuso della potenza della GPU, no?".
Adottando quelle che sono le impostazioni ultra su PC, la qualità delle ombre e la corrispettiva risoluzione sono aumentate; anche le minime aree illuminate vengono migliorate, la densità del fogliame è aumentata e la qualità del motion blur è raddoppiata. Basandosi sugli screenshot di ForzaTech fornitici da Microsoft per i nostri articoli di copertura su Scorpio, si può notare che è stato usato, per la macchina più vicina alla camera, essenzialmente lo stesso livello di geometria della vettura più lontana. Portando l'immagine su Photoshop, la macchina più lontana dalla camera occupa all'incirca 1500 pixel su 8,3 milioni: un terribile abuso della potenza della GPU, per l'appunto.
"È tremendo ma possiamo farlo, e abbiamo ancora potenza che avanza", ha concluso Tector.
È decisamente opinabile quanto sia valida questa comparazione ma abbiamo cercato di replicare i contenuti di ForzaTech sul nostro PC di livello ultra per gli stress test. È impossibile tenere tutte le macchine al loro posto come nella demo di Scorpio, ma l'esperienza sembra suggerire che siamo intorno alle prestazioni di una GPU Nvidia GTX 1070 e, anche in questo, caso si può verificare una perdita di frame a dettagli ultra quando inizia a piovere. Le rigorose restrizioni di Turn 10 assicurano che ciò non accadrà mai nelle versioni per console. In queste fasi iniziali non è importante fare delle comparazioni tra piattaforme, piuttosto capire i piani di Turn 10 per usare quella potenza in avanzo, come migliorerà la grafica per i giocatori console senza aumentare semplicemente le impostazioni di qualità, che comportano una drastica diminuzione del ritorno visivo.
"La cosa meravigliosa dell'intera storia è che possiamo sfruttare tutto questo tempo per dirigerci verso il futuro", ha dichiarato Tector. "Invece di pensare a quanto dovremo lottare per ottenere le prestazioni desiderate, stiamo realmente ragionando sulla qualità che possiamo ottenere e stiamo spendendo il nostro tempo con lo scopo di ottenere una migliore qualità dell'immagine. Invece di stressarci per raggiungere una risoluzione o un frame rate, possiamo dedicarci completamente alla qualità".
Sfortunatamente il team di Microsoft non ci ha mostrato niente che girasse effettivamente sull'hardware definitivo per lo sviluppo. L'E3 sarà importante da questo punto di vista ma è stato sottolineto che anche se Turn 10 ha per le mani uno dei motori meglio ottimizzati sul mercato, anche altri studi stanno ottenendo risultati simili. Ci è stato anche riferito che i principali sviluppatori coinvolti hanno avuto accesso all'hardware presso il campus di Microsoft.
"L'esperienza di Chris non è diversa da quella che abbiamo osservato con gli altri nostri partner, con risultati variabili ma comunque tutti positivi. È stato fantastico", ha raccontato Kevin Gammill.
"Penso che si tratti della cosa più importante su cui puntare. Ciò a cui alludeva Chris avviene normalmente quando si è agli sgoccioli", ha aggiunto Albert Penello. "A breve faremo uscire delle macchine perfettamente funzionanti e stiamo osservando tempi eccezionalmente veloci con gli sviluppatori, quindi siamo piuttosto ottimisti. Mi piace la direzione che abbiamo intrapreso, spendendo molto tempo alla ricerca della qualità, mettendo a punto le prestazioni, i motori grafici e gli aspetti tecnici dello sviluppo".
Abbiamo iniziato questa visita al team Xbox per cercare, dietro alle specifiche, la possibilità che l'hardware di Scorpio possa mantenere la promessa per cui è stato creato. A prova di ciò il team Xbox ha scelto di mostrarci la potenza della nuova console attraverso una demo vecchia di tre mesi!
Come ha sottolineato Chris Tector, il motore grafico di Forza si è evoluto da quella demo, con ulteriori ottimizzazioni che consentono l'aggiunta di nuove caratteristiche per i futuri capitoli della serie. In particolare, Turn 10 ha ancora a disposizione una grossa fetta della GPU per migliorare ulteriormente la grafica su Scorpio. Sarà affascinante vedere come queste risorse saranno sfruttate nel gioco completo.
Si tratta, ovviamente, solo di un motore di gioco tra tanti, in particolare uno dei migliori in commercio, con tutte le possibilità su cui può contare uno studio first party. Per capire meglio come Scorpio gestirà i software nella loro totalità avremo bisogno di vedere più giochi, in particolare i titoli di terze parti. In questa fase iniziale dello sviluppo, abbiamo chiesto di poter vedere un'autentica dimostrazione in tempo reale che mostrasse le potenzialità dell'hardware di Scorpio e Microsoft non ha esitato. Ciò che abbiamo visto ha prodotto in noi delle aspettative estremamente elevate per l'E3. Le credenziali a livello hardware sono chiaramente impressionanti ma, come sempre in questi casi, saranno i giochi a contare.