Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al fotorealismo. Ma nonostante tutto il merito che l'hardware ottiene per i progressi nella tecnologia grafica, niente di ciò che abbiamo visto finora sarebbe stato possibile senza progressi software altrettanto innovativi. E forse il progresso software più significativo di questa generazione è il lancio del Vulkan 1.0 specifica.
Cos'è Vulkan?
"Vulkan è un'API di elaborazione e grafica di nuova generazione che fornisce un accesso multipiattaforma ad alta efficienza alle moderne GPU utilizzate in un'ampia varietà di dispositivi, da PC e console a telefoni cellulari e piattaforme integrate", descrive questa nuova API il suo principale sviluppatore, consorzio tecnologico senza scopo di lucro Khronos Group, sul suo sito ufficiale.
Il Khronos Group ha annunciato per la prima volta Vulkan alla Game Developers Conference nel 2015, ma la base tecnologica su cui poggia Vulkan risale al 2013, quando AMD ha originariamente sviluppato Mantle, un'API di rendering low-overhead destinata ai videogiochi 3D, in collaborazione con DICE e ha donato al Khronos Group per dare il via allo sviluppo di Vulkan.
Vulkan è spesso chiamato "un successore spirituale di OpenGL" anche se la sua filosofia è molto diversa. OpenGL e altre API grafiche precedenti sono state progettate quando il fotorealismo era ancora un sogno lontano e le CPU e le GPU single-core rappresentavano l'avanguardia della tecnologia. Con il miglioramento dell'hardware, OpenGL e i suoi equivalenti sono stati estesi numerose volte, consentendo loro di funzionare su hardware moderno e su hardware che ora è essenzialmente obsoleto.
"Il costo di questo approccio è stato che il comportamento delle GPU moderne è così astratto dall'API che è difficile per l'applicazione e il driver conoscere le reciproche esigenze. Il risultato sono prestazioni imprevedibili per l'applicazione e una notevole complessità del driver, poiché ogni fornitore applica diverse ottimizzazioni del driver nel tentativo di far funzionare rapidamente il software", spiega Samsung.
Secondo Robert Hallock, Head of Global Technical Marketing di AMD, l'azienda voleva portare OpenGL, un'interfaccia di programmazione di applicazioni multilingua e multipiattaforma di alto livello per il rendering di grafica 2D e 3D a un approccio a basso sovraccarico. Come "API esplicita", Vulkan elimina la necessità di driver complessi e sposta il controllo nelle mani degli sviluppatori di software e delle applicazioni e dei giochi che creano. Questo, a sua volta, significa una grafica migliore, giochi migliori e tempi di sviluppo più brevi.
Come funziona?
A differenza delle vecchie API come DirectX 11 e il già citato OpenGL, che automatizzano l'allocazione della memoria, la costruzione del buffer dei comandi 3D e altri processi sulla GPU, Vulkan avvicina gli sviluppatori di software all'hardware nudo, offrendo loro un maggiore controllo sulle prestazioni, l'efficienza, e le capacità dei loro prodotti software.
Hallock ha affermato che gli sviluppatori "volevano davvero avere il controllo" ed è esattamente ciò che offre Vulkan: controllo e precisione. Poiché Vulkan è destinato a supportare l'hardware grafico attuale, utilizza meglio le GPU multi-core e riduce i colli di bottiglia della CPU. E a differenza di DirectX 12, annunciato da Microsoft alla GDC nel 2014, Vulkan è indipendente dalla piattaforma, il che significa che può essere eseguito su qualsiasi cosa, dai personal computer alle console agli smartphone, indipendentemente dal sistema operativo.
Cosa significa per gli utenti Linux?
Fino all'arrivo di Vulkan, il numero di giochi che gli utenti Linux potevano godere era abbastanza limitato perché la maggior parte degli sviluppatori di giochi si affidava a DirectX, che non è disponibile su Linux. Grazie a Vulkan, il numero di giochi AAA disponibili su Linux sta crescendo rapidamente e i derivati di Linux come SteamOS di Valve, un sistema operativo Linux basato su Debian di Valve Corporation, sono diventati valide alternative alle console tradizionali come Xbox o PlayStation.
Per godere di Vulkan su Linux, è necessario possedere una scheda grafica che supporti questa nuova API, ed è anche necessario disporre di driver grafici aggiornati installati e configurati correttamente. In questo momento, Steam offre il modo di gran lunga più conveniente per provare i giochi basati su Vulkan, come The Talos Principle, Doom, Mad Max o Wolfenstein II: The New Colossus.
Secondo i test di Phoronix, Vulkan consente un utilizzo della CPU inferiore rispetto a OpenGL sui processori Intel Coffeelake dalla fascia bassa alla fascia alta e sui processori Ryzen di AMD. Il minor utilizzo della CPU e il supporto per Linux significano che i giocatori attenti al budget possono risparmiare una notevole quantità di denaro acquistando un processore meno costoso e non pagando una licenza di Windows.
Cosa significa Vulkan per l'ecosistema di gioco??
"Per gli sviluppatori di applicazioni premium, che dedicano più tempo all'ottimizzazione del software per la portabilità e le prestazioni rispetto alla creazione di contenuti di base, Vulkan dovrebbe ridurre il tempo di sviluppo complessivo e migliorare l'esperienza del cliente. Spostando un maggiore controllo sull'applicazione, Vulkan riduce la quantità totale di lavoro che la CPU deve svolgere e consente agli sviluppatori di applicazioni un controllo migliore su come avviene il lavoro", afferma Samsung.
Ultimamente si è detto molto sull'aumento dei costi di sviluppo del gioco e sui vari modi in cui gli editori cercano di compensarlo, ad esempio aggiungendo bonus di pre-ordine e microtransazioni. Anche se Vulkan da solo non è abbastanza per recuperare l'aumento dei costi di sviluppo, potrebbe consentire agli sviluppatori indipendenti di darci più esperienze AAA senza prezzi AAA, come l'acclamato film d'azione e avventura horror psicologico Hellblade: Senua's Sacrifice.
Il maggior grado di controllo che Vulkan offre agli sviluppatori sull'elaborazione grafica lo rende perfetto per la realtà virtuale, dove bassa latenza e frame rate elevati sono fondamentali per ottenere l'immersione senza sentirsi fisicamente male. Infatti, il Gruppo Khronos ha aggiunto Vulkan Multi-GPU e supporto per la realtà virtuale all'API Vulkan all'inizio di quest'anno, facendo un ulteriore passo avanti verso 16.000 x 16.000 pixel per occhio a 200 fotogrammi al secondo, che molti vedono come l'obiettivo finale della tecnologia realtà.
Conclusione
Vulcan è un enorme passo avanti per gli utenti Linux interessati ai giochi per computer, ed è anche un enorme passo avanti per l'intero ecosistema di gioco, consentendo agli sviluppatori di giochi di creare giochi ottimizzati in meno tempo. Soprattutto, puoi provare Vulcan in questo momento: tutto ciò di cui hai bisogno è Steam e una scheda grafica compatibile con Vulcan.