Tentare di prendere a calci l’abitudine ai 60fps è un lavoro duro.

È il Santo Graal dei PC da gioco attuali: 144fps. Hai speso una fortuna per un grande monitor da gioco, e l’hai accoppiato con la CPU più veloce e una delle migliori schede grafiche che il denaro possa comprare. È così fluido, così reattivo, e sei pronto a dominare i tuoi avversari con le tue abilità superiori – o almeno con la tua maggiore frequenza di aggiornamento. C’è solo un problema. Raggiungere 144fps (o più) in molti giochi è difficile, e a volte è semplicemente impossibile. Cosa succede?

Inizia con il design e le caratteristiche di base di un gioco. Non per gettare ombra sulle console (comunque, sto totalmente gettando ombra sulle console), ma quando molte delle piattaforme di gioco dell’attuale generazione non possono produrre più di 60Hz, è naturale che i giochi giocati su di esse non vadano oltre i 60fps – o anche 30fps in alcuni casi. Quando uno sviluppatore di giochi parte da questa prospettiva, può essere molto difficile da correggere in seguito. Abbiamo visto giochi come Fallout 4 legare la fisica, la velocità di movimento e altro al framerate, spesso con risultati indesiderati.

Non si tratta solo di puntare a 30 o 60fps, comunque. La complessità del gioco continua ad aumentare, e la complessità significa fare più calcoli. I giochi singleplayer sono tipicamente un’esperienza diversa dai giochi multiplayer. Questi ultimi sono intrinsecamente più competitivi, il che significa che fps più alti possono essere più vantaggiosi per i top player, e spesso omettono un sacco di cose che possono aumentare i frametimes.

I giochi multiplayer competitivi sono il terreno di gioco perfetto per i display a 144Hz.

Pensate a giochi come Counter-Strike, Overwatch, PUBG e Fortnite per esempio. C’è molto poco in termini di IA o di logica NPC che deve avvenire. La maggior parte del mondo è statica e ci sono solo i giocatori che corrono in giro, il che significa molto meno overhead e, in ultima analisi, il potenziale per framerate più elevati.

Primariamente i giochi singleplayer sono una questione diversa. Guardate gli ambienti di Assassin’s Creed Odyssey, Monster Hunter World e Hitman 2. Ci possono essere centinaia di creature, NPC e altre entità che devono essere elaborate, ciascuna con diverse animazioni, suoni e altri effetti. Questo può impantanare anche le CPU più veloci, dove avviene gran parte dell’elaborazione.

Sì, la CPU e non la GPU. Mentre la GPU è spesso considerata il collo di bottiglia per le prestazioni di gioco, si tratta soprattutto di selezionare la risoluzione appropriata e la qualità grafica. Abbassate abbastanza le impostazioni e/o la risoluzione e la CPU diventa il fattore limitante. E in giochi complessi, quel limite della CPU può facilmente scendere sotto i 144fps. Mentre una scheda grafica veloce è spesso necessaria per colpire 144fps, una CPU altrettanto veloce può anche essere richiesta.

Assassin’s Creed Odyssey può quasi raggiungere 144fps … con una RTX 2080 Ti.

Hitman 2 sbatte contro un collo di bottiglia della CPU di circa 122fps.

Monster Hunter World ha anche difficoltà a superare i 120fps.

Guarda i benchmark della CPU in Assassin’s Creed, Monster Hunter e Hitman. Correndo a 1080p e a qualità bassa o media, c’è un’eccellente scalatura in termini di prestazioni della CPU, ma 144fps è ancora un ostacolo difficile da superare. Ancora più importante, lo scaling deriva principalmente dalla velocità di clock, con il numero di core e thread che sono meno di un fattore, soprattutto andando oltre i processori a 6 core. Questo perché la maggior parte dei giochi sono ancora governati da un singolo thread che fa gran parte del lavoro.

Invertite le cose e pensate a ogni fotogramma in termini di millisecondi. Per un 60fps costante, ogni fotogramma ha al massimo 16,7ms di tempo di grafica ed elaborazione. Salta a 144fps e ogni fotogramma ha solo 6,9ms in cui completare tutto. Ma quanto tempo ci vuole effettivamente per ogni parte del rendering di un fotogramma corrente? La risposta è che varia, e questo porta ad una discussione sulla legge di Amdahl.

Il succo della legge di Amdahl è che ci sono sempre porzioni di codice che non possono essere parallelizzate. Immaginate un ipotetico gioco in cui un singolo core Intel da 4.0GHz impiega 50ms per gestire tutti i calcoli per ogni frame. Quel gioco sarebbe limitato a 20fps. Se il 75% del codice di gioco può essere suddiviso in sotto-attività che vengono eseguite simultaneamente, ma il 25% viene eseguito su un singolo thread, allora, indipendentemente da quanti core della CPU sono disponibili, le prestazioni nel migliore dei casi su una CPU Intel a 4.0GHz sarebbero ancora solo 80fps. Ho fatto un po’ di matematica veloce e sporca per illustrare:

Non un vero tovagliolo, perché la mia scrittura fa schifo.

Relaborare il codice di gioco in modo che solo il 12,5% venga eseguito su un singolo thread, forse anche il 5%, può aiutare. Allora 160fps o anche 400fps sono possibili, ma questo richiede tempo agli sviluppatori che potrebbe essere speso meglio altrove, e ovviamente le CPU non hanno un numero infinito di core e thread. Il punto è che c’è una quantità limitata di tempo in cui gestire tutta l’elaborazione dell’input dell’utente, lo stato del gioco, il codice di rete, la grafica, il suono, l’IA, ecc. e giochi più complessi richiedono intrinsecamente più tempo.

Anche con CPU a 4GHz e più veloci che lavorano in tandem con migliaia di core della GPU, 6,9ms passano velocemente, e se state guardando un display a 240Hz che esegue giochi a 240fps, ci sono solo 4,2ms per ogni frame. Se c’è un intoppo lungo la strada – ad esempio, il gioco ha bisogno di caricare alcuni oggetti o texture dallo storage, che potrebbe richiedere da pochi millisecondi su un veloce SSD a forse decine di ms su un disco rigido – il gioco balbetterà molto. Questo è il mondo in cui viviamo.

Lara non è contenta delle prestazioni sub-144fps.

Mettiamola in un altro modo. I PC moderni possono potenzialmente masticare miliardi di calcoli ogni secondo, ma ogni calcolo è estremamente semplice: A + B per esempio. Gestire un aggiornamento logico per una singola entità potrebbe richiedere migliaia o decine di migliaia di istruzioni, e tutti questi aggiornamenti dell’IA e delle entità sono ancora solo una piccola frazione di ciò che deve accadere ogni frame. Gli sviluppatori di giochi devono bilanciare tutto per raggiungere un livello accettabile di prestazioni, e sui PC questo può significare la capacità di funzionare su tutto, da un vecchio Core 2 Quad a 4 core o Athlon X4 fino a una moderna CPU Ryzen o 9th Gen Core, e GPU che vanno dalla grafica integrata Intel fino a GeForce RTX 2080 Ti.

È possibile creare giochi che possono funzionare a framerate estremamente elevati. Lo sappiamo perché esistono già. Ma questi giochi di solito non sono lo stato dell’arte in termini di grafica, IA e altri elementi. Sono fondamentalmente più semplici in modi a volte non così ovvi. Anche la riduzione della complessità del gioco e della grafica può arrivare solo fino a un certo punto. CS:GO di sette anni fa a 1080p con un Core i7-8700K overcloccato a 5GHz raggiunge circa 300 fps (3,3ms per fotogramma), con gli stutter che fanno scendere gli fps minimi a circa la metà. È possibile eseguire CS:GO a 270-300fps su qualsiasi cosa, da una GTX 1050 a una Titan RTX, perché la CPU è il principale fattore limitante.

In breve, raggiungere 144fps non è solo una questione di hardware. Si tratta di software e design di gioco, e a volte devi solo lasciar perdere. Se vi siete fissati con il gioco a 144fps, il miglior consiglio che posso dare è quello di ricordare che i framerate (o frametimes, se preferite) non sono tutto. Per il multiplayer competitivo, dove ogni possibile vantaggio di latenza può aiutare, abbassate le impostazioni al minimo e vedete come gira il gioco, e potenzialmente aumentate alcune impostazioni se c’è spazio di manovra.

Anche se non potete mantenere 144fps o più, i tassi di aggiornamento a 144Hz sono ancora impressionanti – posso sentire la differenza solo interagendo con il desktop di Windows. I display di qualità superiore a 144Hz supportano anche G-Sync e FreeSync, che possono aiutare ad evitare stutter e tearing evidenti quando si scende un po’ sotto i 144fps. Un framerate perfettamente fluido sarebbe bello, ma questo da solo non rende un gioco fantastico. Quindi rilassatevi e godetevi la corsa, indipendentemente dal vostro hardware o dal framerate.

Notizie recenti

{{ articleName }}

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.