Quante volte vi siete chiesti come mai gli sviluppatori su console puntino ai 30 frames al secondo invece che ai 60? Quante volte avete ottenuto come risposta che si tratti di un problema hardware, legato alle scarse performance delle attuali console? Eppure la realtà dei fatti è ben distante dal vociferare social degli utenti.
Per questo noi di Videogiochitalia abbiamo intervistato Angelo Pesce, attualmente “Director of engineering” per Roblox, ma che in passato ha rivestito il ruolo di Technical Director per Activision, oltre che per Relic ed Electronic Arts. Un curriculum di tutto rispetto che lo pone su di un gradino ben più alto in termini di attendibilità rispetto al presunto esperto che possiamo incrociare sui social. Ad Angelo abbiamo rivolto alcune delle domande più ricorrenti negli ultimi anni e abbiamo ottenuto risposte dettagliate e precise che siamo lieti di poter condividere con voi.
Indice
Intervista a Angelo Pesce
- Il frame-rate impatta sulla risposta ai comandi? Molti utenti affermano che giocare a 30fps non sia assolutamente accettabile e che i 60fps possano cambiare completamente il gameplay di un gioco. Sei d’accordo? Quanto è significativo il gap tra 30 e 60fps? Lo è a prescindere oppure la situazione cambia da gioco a gioco?
Di certo, a parità di gioco e piattaforma, 60fps creano meno lag di 30. Però credo anche che spesso ci leghiamo troppo ad aspetti numerici facili e su questi poi nascono guerre di religione che abbiamo visto mille volte, dai bit delle “bit wars” ai megapixel delle fotocamere e così via.
La verità è che noi siamo animali complessi e mille fattori contano per il feel globale di un gioco, alla fine resta ancora largamente un’arte, non ci sono studi tali da poter creare il feel giusto semplicemente misurando ed ottimizzando numeri.
Anche dal punto di vista strettamente tecnico, e, volendo guardare ad un semplice numero misurabile, quale il lag bottone-schermo, c’è una catena di processi che vanno dall’engine ai driver video, modello e driver dei dispositivi di input, impostazioni del televisore, numero di controller collegati, tipo di collegamento, animazioni, AI e cosi’ via. E’ possibilissimo, ad esempio, che una certa tastiera introduca più lag di quanto ne si riduca al passare da 30 a 60, ma è un lag invisibile che (quasi) nessuno misura, quindi tutta l’attenzione è verso gli fps.
- Sempre per il principio in cui il frame-rate impatta sulla risposta ai comandi, è preferibile, secondo te, un frame-rate ancorato ai 30fps oppure un frame-rate che cerca i 60 come target ma che si rivela poi instabile e con evidenti oscillazioni?
In generale ogni forma di varianza nei videogiochi è da evitare! Per il lag, è un principio abbastanza assodato che il giocatore riesca automaticamente ed istintivamente a compensare un lag constante, anche se grande, rispetto ad uno che è variabile, imprevedibile.
- Alcuni utenti affermano che le console non siano hardware all’altezza dei tempi che corrono per via dei giochi a 30fps che vanno per la maggiore. Sei d’accordo? I 30fps sono dimostrazione dei limiti tecnici delle attuali console oppure ci sono motivazioni nascoste più complesse, magari anche di natura commerciale?
Beh, la scelta sta sempre agli autori, ovviamente si possono far giochi oggi per console che vanno a qualsiasi refresh rate, basta spendere più tempo nell’ottimizzazione o mostrare meno cose… Creare un gioco è sempre un esercizio di compromessi, tecnologici, di tempo, di soldi.
Tempo e soldi sono quasi sempre il vincolo maggiore. Ci sono probabilmente giochi a 30 che potrebbero andare a 60 ma per i quali il team di sviluppo ha ritenuto non essere un obiettivo da perseguire. Magari hanno valutato che l’investimento necessario sarebbe stato sproporzionato, confrontato all’importanza dei 60 per quel titolo.
Riguardo la potenza delle console, anche lì è una questione di vincoli. Vincoli di prezzo, sicuramente, ma anche altri, di dissipazione del calore, di potenza assorbita. Non tutti vogliono consumare 500watt per un dispositivo che è acceso per ore, e ci sono anche normative al riguardo, fare un prodotto per tutti è diverso dal fare una workstation.
Piuttosto io rifletterei sul mito dei 60 a prescindere, anche su PC! Per molti versi ritengo questo un problema (anche se ben comprensibile), è ben poca cosa, a fronte di una GPU decine di volte più potente di una controparte console, ottenere solo più FPS e più risoluzione… Sarebbe bellissimo se ci fosse un mercato per un gioco ad esempio “alla Uncharted” che abbia come target 720p, a 30fps, su una RTX 2080Ti! Chissà che spettacolo potrebbe essere!
Purtroppo invece la realtà delle cose è che titoli esclusivi PC solitamente si concentrano sul girare su GPU molto poco potenti, scalare verso il basso, non andare verso l’alto, mentre i port da console non possono fare molto meglio che offrire appunto qualche settaggio diverso di alcuni effetti e girare più velocemente, senza davvero sfruttare al meglio tutta la potenza extra.
- Secondo molti utenti il motivo principale dietro ai 30fps su console sono le CPU di Ps4 e One che creano un insormontabile collo di bottiglia. Dall’altra parte sembra che la tecnologia sia sempre più “GPU-centrica” relegando alla CPU solo i compiti impossibili da demandare alla GPU. Secondo te è vero che su console allo stato attuale abbiamo un collo di bottiglia rappresentato dal processore?
Si e no. È vero che la CPU di questa generazione di console non è particolarmente potente, ma alla fine volere è potere. È sempre una questione di tempo, talento e volontà (priorità di alcuni obiettivi). Tecnicamente quasi tutto è possibile, certo, un hardware bilanciato peggio può essere più complicato da affrontare (se uno pensa ad esempio ai tempi della PS3 contro la 360), ma alla fine un modo si trova, certamente.
- In ottica di Mid-gen vale lo stesso? Xbox One X e Ps4 Pro sono effettivamente limitate dalle sorelle maggiori, Ps4 standard e Xbox One standard?
È un limite commerciale. Come non esiste un mercato per titoli PC che hanno come target configurazioni di nicchia, così non ha senso oggi fare un gioco che sia pensato principalmente per One X o Ps4 Pro, lasciando indietro le sorelle minori che hanno oggi una base di installato molto più grande!
Inoltre c’è anche una comprensibile volontà, di tutti, di non creare giocatori di serie A e di serie B.
- Tralasciamo ora il rendering nudo e crudo e parliamo di elementi come fisica, intelligenza artificiale e assets. Molti utenti si lamentano accusando gli sviluppatori di concentrarsi solo sugli orpelli estetici, dimenticandosi però di evolvere anche le IA e la fisica dei giochi. Molti sostengono che anche questo sia dovuto a questioni tecniche, limiti intrinseci delle attuali console che impediscono la corretta evoluzione di questi parametri. Tu cosa ne pensi? So non essere il tuo campo specifico quindi ci accontentiamo di una opinione generica a riguardo.
Di nuovo, la tecnologia conta poco, e la verità è che i vincoli maggiori restano di produzione e, in questo caso, di gameplay! Alle volte si pensa, erroneamente, che IA e fisica debbano evolvere verso sistemi realistici ed intelligenti, ma la verità è che spesso non lo si vuole per precisa scelta di game design. Un gioco è ottimizzato per essere divertente, non per essere realistico.
Ovviamente il realismo alle volte può essere lo strumento giusto per creare qualcosa di coinvolgente, ma è uno strumento, non di per sé un obiettivo, e spesso si preferisce avere magari nemici “stupidi” perchè quell’essere prevedibile magari è proprio parte del gioco! Ci sono anche giochi super complessi, se uno li vuol cercare, ma spesso restano prodotti di nicchia.
Infine, non direi neppure che non abbiamo avuto una forte evoluzione, è solo che questi aspetti di gameplay sono molto più difficili da valutare e da percepire rispetto a miglioramenti grafici. Un buon esperimento, che invito sempre a fare, è prendere un Fifa di oggi e misurarlo con magari lo stesso prodotto nel tempo. Per un franchise annuale le migliorie anno dopo anno possono sembrare molto iterative, ma se andiamo a vedere la differenza con magari quattro-cinque anni fa, noteremo moltissimi cambiamenti di animazione, fisica, IA e così via…
- Sempre riguardo questi elementi potenzialmente vincolanti… che ci dici sulle draw call? Se ne parla spesso da qualche anno. Pare che le CPU non siano più in grado di sostenere la velocità con cui evolvono le schede video e che allo stato attuale le draw call rappresentino un vero e proprio collo di bottiglia generico. Sei d’accordo? Se sì, esistono soluzioni?
Mi ripeterò, ma nulla di questo conta. Ovviamente ci sono cose che, certo, possono dare qualche fastidio, rendere la vita dei programmatori più o meno facile, ma alla fine è quasi sempre possibile trovare la quadra, e quasi sempre la tecnologia non fa una differenza enorme.
Si può vivere bene con poche draw call, aggirare il problema, ma ci sono anche API nuove (DX12, Vulkan, Metal) che risolvono il problema, se usate correttamente. Non esiste un problema sistemico di GPU contro CPU.
Certo, levar di mezzo quanti più ostacoli possibile significa rendere la vita migliore agli sviluppatori, permettere anche a sviluppatori con meno tempo o esperienza di sfruttare al meglio un certo hardware e così via. Questa relazione tra sviluppatori ed hardware è ben presente a chi l’hardware lo crea e quindi nel tempo si cerca sempre di creare tecnologia più accomodante.
- Pc e console. John Carmack ha scritto su Twitter che le console a parità di componenti possono raggiungere risultati doppi rispetto un PC. Sei d’accordo? Se sì, perché?
Sicuramente esistono delle penalità su PC, quanto costino dipende dal gioco e da quanto uno voglia aggirarle. Alcune penalità sono intrinseche al dover creare sistemi che funzionino su molti hardware diversi, invece di uno specifico, introdurre astrazioni che nascondono l’hardware significa impedire l’accesso diretto, con una certa perdita di prestazioni. Questo è inevitabile, per quanto ovviamente si cerchi di avere astrazioni sempre più leggere e magari raggiungere accordi tra diversi produttori di hardware in modo da non creare tecnologie troppo dissimili, che richiedano modi di lavorare opposti per essere sfruttate al meglio.
L’altra parte, probabilmente molto maggiore, è il fatto di non poter ottimizzare il codice per un hardware singolo. Avere un solo target significa poter capire esattamente quanto è usato, dove ci sono sprechi e tappare i buchi. Su PC questo non può esistere, perché un cambiamento che introduce un ottimizzazione su una certa GPU può benissimo risultare una penalità su un’altra.
Però anche qui, quanto conta tutto questo? Secondo me, ben poco. E’ verissimo che se prendiamo un gioco tecnicamente eccellente, su console, questo probabilmente sfrutterà l’hardware, in alcuni momenti, quasi al 100%, non lasciando nessuno spazio inutilizzato. E così è anche vero che spesso su PC non si sfrutta un certo hardware per nulla, pensiamo al banalissimo esempio di una CPU con 16 core che fa girare un gioco che usa solo 2 thread, situazioni simili esistono anche su GPU. Ma alla fine, conta davvero sapere quanta percentuale di transistor è attiva?
Posto poi che anche su console, largamente, si “sprecano” transistor per ragioni di tempo, talento, costi e così via, ma alla fine noi compriamo solo delle scatole, con un certo prezzo, che fanno girare o meno certi prodotti. Il come, cosa accade dentro, è molto poco rilevante per l’utente finale, penso sia molto più interessante sapere che con 300, 600 o 1000 euro si può avere accesso ad un certo servizio, a certi risultati. Da quel punto di vista non so, penso che possa fare molta più differenza per un utente il bottone “share” sul controller rispetto ad avere un core in più o in meno dentro la GPU.
Anche dal punto di vista tecnologico, è oggi molto più interessante investire in ingegneria per ridurre, non so, di mezz’ora al giorno il tempo speso da un artista in una certa attività, che ridurre di mezzo millisecondo il tempo di esecuzione di un dato effetto su una data GPU. La grafica, oggi, è molto, moooooolto più vincolata dai tempi di produzione che dai tempi di rendering!
- Si parla sempre di questa ottimizzazione console, eppure molti utenti affermano che sia andata a farsi benedire perché “le console sono ormai dei PC inscatolati”. Questa affermazione nasce dallo standard x86 adottato da Xbox One e Ps4, come se in passato i vari componenti console non fossero in ogni caso estrapolati dal contesto tecnologico (vedi PowerPC su X360, PowerVR su Dreamcast, Ati su Gamecube, ecc ecc). Sei d’accordo? Le console hanno perso la loro natura di console oppure l’ambiente di sviluppo ancora diverge?
Sì, è decisamente un errore. Come hai rilevato infatti non solo non si tratta di una novità, la 360 era un PowerPC con una GPU ATI, mentre PS3 era un PowerPC con un chip IBM (cell) nato originariamente per applicazioni scientifiche ed una GPU NVidia, tutte componenti esistenti e simili (almeno come GPU) a quelle usate nei PC, ma di certo non è il set di istruzioni che fa la differenza!
A nessuno importa se una CPU usa x64, Mips, PowerPC, Arm o quel che sia, è l’aspetto meno rilevante. Ed anche il fatto di avere componenti simili ad alcune acquistabili per un PC conta molto poco. Quel che conta, per poter ottimizzare, è la conoscenza specifica e l’accesso diretto, il fatto che posso sapere con certezza che un certo codice verrà eseguito in una certa maniera. Questo non è possibile su PC per via sia dei livelli di astrazione dall’hardware, sia ovviamente dal fatto che non esiste un singolo hardware.
- Tornando in ottica di Mid-gen. Queste “console di mezzo” hanno compromesso l’ottimizzazione su console proponendo diverse versioni hardware e scombinando dunque il principio della configurazione unica per tutto il ciclo vitale?
Ovviamente i produttori hardware sono estremamente attenti al loro ecosistema, quindi queste Mid-gen sono state create specificamente per non richiedere grandi investimenti per essere sfruttate al meglio, nessuno avrebbe avuto piacere a dover pagare il prezzo di dover ottimizzare per hardware diversi.
Sospetto poi che Sony e Microsoft siano anche molto attente sono solo a non scontentare i team di sviluppo con soluzioni che impongono costi extra, ma anche non scontentare l’utenza creando guerre tra chi vuol giocare a 4k e chi vuol giocare a 1080.
- Ultimissima domanda, questa è una sorta di extra. Alcuni influencer affermano che le console siano “la palla al piede dei videogiochi”. In pratica, secondo loro, a causa delle console l’evoluzione dei videogiochi va a rilento. Sei d’accordo?
Al tempo stesso ci si lamenta poi che tutto il progresso dei videogiochi è sul versante tecnologico e di grafica mentre i giochi stessi restano immutati… Sono, se posso, enormi fesserie.
Ora, ovviamente è vero, se avessimo in ogni casa un supercomputer, certo, potremmo fare giochi molto più facilmente, potremmo evitare di spendere tempo e risorse in ottimizzazioni, potremmo avere molti meno vincoli, essere più liberi nell’esercizio di pura creatività senza dover pensare alla macchina.
Questo è vero sempre, ad esempio è più facile oggi fare foto con un cellulare che alle origini della fotografia, ed aver abolito le barriere tecnologiche è stato liberatorio. Ma il punto resta “in ogni casa”. Fa più, per un media e per il suo sviluppo, l’enorme diffusione dello stesso, rispetto agli aspetti tecnici, di certo.
E quindi ben venga avere scatolette con costi relativamente contenuti, da mettere in ogni salotto e giocare, come va benissimo avere un’utenza che vuol spendere magari di più in hardware potenti, come va benissimo avere giocatori che hanno scoperto questo mondo tramite cellulari ed altri dispositivi. Questa varietà e diffusione fa bene al mondo dei videogiochi, non avere qualche gigabyte o megahertz in più o in meno.