Civilization Beyond Earth, il seguito spirituale di Alpha Centauri

Civilization Beyond Earth, il seguito spirituale di Alpha Centauri

In questo articolo esaminiamo le caratteristiche di gioco e tecniche del nuovo capitolo di Civilization, che praticamente può essere considerato come il seguito spirituale di Alpha Centauri. Il gioco, infatti, si ambienta in un pianeta inesplorato lontano dalla Terra e affascina per il peculiare senso della scoperta che riesce a dare. Nel corso dell'articolo analizzeremo anche il supporto Mantle per le GPU Radeon.

di Rosario Grasso pubblicato il nel canale Videogames
RadeonCivilizationAMD
 

Mantle

AMD e Firaxis Games hanno lavorato per diversi mesi per rifinire il supporto a Mantle, ovvero il set di API di basso livello sviluppate da AMD come alternativa a DirectX e OpenGL, all'interno di Civilization Beyond Earth. Sgravando la CPU di parte del carico di lavoro necessario per il rendering, Mantle consente di avere un frame rate più alto con le schede video Radeon nei sistemi CPU-limited. Il risultato è che coloro che possiedono schede Radeon di fascia alta avranno un'esperienza ancora più fluida all'interno di un gioco, Civilization, che da sempre è stato CPU-limited.

Nei sistemi invece GPU-limited Mantle non consente di avere un miglioramento prestazionale con Beyond Earth, ma ci sono comunque dei vantaggi in termini di consumo energetico. Ciò può essere molto importante soprattutto se si gioca con un portatile o un altro tipo di dispositivo mobile. Ridurre il carico di lavoro della CPU, inoltre, permette alle altre applicazioni in background di funzionare meglio e di interferire meno con le prestazioni del gioco.

Mantle non solo riduce i "colli di bottiglia", ma allo stesso tempo amplia la parallelizzazione del processo di rendering del gioco. Beyond Earth non è un titolo particolarmente esoso in termini di capacità di elaborazione richiesta, ma questo vale solo per i primi turni. Dopo 40 ore di gioco la mappa risulterà fortemente personalizzata, dopo l'incessante processo di "terraforming" necessario, e vi saranno decine di unità su di essa. In questi frangenti, la parallelizzazione e il completo sfruttamento delle architetture Radeon resi possibili da Mantle vengono fortemente in soccorso del software.

Nel mondo della computer graphics, il command buffer è un tipo di memoria contenente le istruzioni (o i comandi) che la GPU deve processare per svolgere il suo lavoro di rendering. Fornire alla GPU un flusso continuo e ininterrotto di comandi è quindi essenziale per permettere alla GPU di lavorare al meglio del suo potenziale. Se il command buffer viene aggiornato a dovere dalla CPU, lo sviluppatore può decidere se utilizzare la potenza della GPU così alimentata per ottenere un frame rate più alto e stabile oppure per migliorare la qualità e la complessità delle immagini.

Grazie a Mantle, il command buffer è correttamente alimentato e questo viene sfruttato per garantire un ottimo frame rate anche quando gli imperi sono molto ampi e dettagliati dopo centinaia di turni di gioco. Mantle, infatti, distribuisce meglio le istruzioni tra i core della CPU e questo permette di ottimizzare il carico di lavoro inviato alla GPU. Secondo AMD, questo sistema, dal punto di vista degli utenti, rende più conveniente investire sulla GPU che sulla CPU.

A tal proposito, per Civilization Beyond Earth Firaxis ha progettato un sottosistema definito "split-frame rendering" (SFR). Quest'ultimo divide ogni frame in sezioni tra loro proporzionali, e distribuisce le varie sezioni tra le GPU presenti all'interno della configurazione CrossFire. La GPU "master" riceve il più velocemente possibile l'esito del lavoro di ciascuna GPU presente nel sistema e compone la scena finale che l'utente poi vede sul suo monitor.

Normalmente un gioco come Civilization Beyond Earth non fa affidamento soprattutto sulla GPU, visto che i calcoli vengono demandati principalmente alla CPU. Se la prima GPU viene scarsamente sfruttata, il problema risulta ulteriormente ampliato in caso di presenza di più di una GPU. E per questo che il sistema SFR viene in soccorso del processo di elaborazione, proprio perché riduce la latenza con la quale le informazioni sulle sezioni di un frame vengono inviate alle GPU.

SFR si contrappone al sistema tradizionale conosciuto come alternate-frame rendering (AFR). Questo invia i dati necessari all'ottenimento del primo frame alla GPU 1, e quello che serve per il secondo frame alla GPU 2. Infine, il carico di lavoro per il terzo frame viene rimandato alla GPU 1. Si tratta di un meccanismo efficiente se il timing con il quale vengono processati i vari frame dalla GPU rimane sincronizzato. Ma se questo timing varia, in funzione di ciò che accade sullo schermo e del tipo di interazione del giocatore, AFR non è più così efficace.

Se ad esempio la GPU ha bisogno di 60 millisecondi per processare un frame e AFR ha in coda due frame da processare, il giocatore dovrà aspettare 120 millisecondi tra il momento della sua interazione con la mappa e il riscontro su schermo della sua interazione. SFR invece dimezza la coda di elaborazione, riducendo la latenza dell'input a 60 millisecondi. Inoltre, visto che ci sono due GPU nel sistema, la coda è ulteriormente ridotta a 30 millisecondi.

Tramite i sistemi progettati da Firaxis e da AMD qui descritti, quindi, il carico di lavoro della CPU viene ridotto e la GPU sfruttata meglio. AMD, inoltre, sta cercando di ottimizzare il ritmo con il quale i frame vengono elaborati, cercando di mantenerlo il più stabile possibile, e quindi di ridurre il fastidioso effetto di micro-stuttering, nonostante l'imprevedibilità dell'interazione del giocatore.

Segnaliamo inoltre un fastidioso problema verificatosi durante i nostri test. Con il monitor G-Sync qui in redazione non è stato possibile modificare la risoluzione dell'immagine, mentre tutte quelle proposte non si sposavano con la risoluzione nativa di quel monitor. Non siamo riusciti a risolvere il problema se non passando a un tradizionale monitor a 60 Hz. Il problema della configurazione della risoluzione pare sia stratificato, e ancora non completamente risolto da Firaxis, coinvolgendo monitor con caratteristiche differenti, anche non G-Sync.

 
^