[mks_dropcap size="90" bg_color="#ffffff" txt_color="#e64946"]N[/mks_dropcap]

egli ultimi tempi numerosi motori di gioco stanno vedendo la luce o si stanno affermando sul mercato. I più popolari e prestanti sono Unreal Engine 4, CryENGINE e Unity 5. Unity è molto intuitivo, e ha fra le sue caratteristiche peculiari la leggerezza e un'ampia flessibilità che consente di sviluppare giochi per Android, iOS o WebGL, così come per PC e console. La versione 5 del motore promette di mantenere la stessa linea guida ma incrementando moltissimo la qualità della resa visiva.

Il CryENGINE, la quarta versione del motore di Crytek, ha aggiunto il supporto a Linux e alle console di nuova generazione. Oltre a risultare più potente e intuitivo dei suoi fratellini, privilegia una struttura più versatile e aggiornabile periodicamente (motivo per il quale è stato deciso di utilizzare ENGINE in maiuscolo, piuttosto che il numero 4 postfisso).

Ma il più famoso della compagine è certamente l'Unreal Engine 4. Ne abbiamo tanto sentito parlare e ne abbiamo apprezzato l'enorme valore con tech demo dal taglio foto-realistico. Adesso cerchiamo di scoprire qualche dettaglio aggiuntivo sulla potente quarta versione del noto motore grafico sviluppato da Epic Games.

Un po' di storia

La storia dell'Unreal Engine cominciò nel 1998, quando vide la luce il primo Unreal, ricordato per esser stato graficamente all'avanguardia, oltre che per l'intelligenza artificiale dei nemici migliore mai vista fino a quel momento.

Il cammino proseguì con l'Unreal Engine 2, aggiornato poi alla revisione 2.5 per adeguarsi all'hardware di Xbox 360 e Playstation 3. UE2 è stato il cuore di giochi indimenticabili come gli Sprinter Cell, Rainbow Six e Ghost Recon; o ancora dei primi due Bioshock e Deus Ex, Brothers in Arms, Killing Floor.

Nel 2007, l'avvento di Unreal Engine 3 scombussolò il mercato. Il primo gioco a utilizzarlo, Gears of War, diventò la prima vera Killer Application di Xbox 360 e viene ancora oggi considerato uno dei migliori TPS mai realizzati. Da quel momento oltre 400 giochi sono stati sviluppati utilizzando quel motore: le serie Mass Effect, Batman Arkham, Borderlands oltre a giochi come Mirror's Edge, Bulletstorm, Spec Ops: The Line, XCOM: Enemy Unknown, Bioshock Infinite. Sono solo alcuni esempi eccellenti, ma potremmo citarne tanti altri.

Unreal Engine 4

Il primo gioco a utilizzare Unreal Engine 4 è stato Daylight, uscito pochi mesi fa e da alcuni criticato per non essere riuscito a mostrare il vero potenziale dell'engine, che invece di potenza ne ha da vendere. Utilizzando il nuovo motore è possibile effettuare numerose operazioni sugli shader, effetti di luce e ombre su diversi tipi di materiali e superfici, illuminazione in tempo reale ed effetti di post-processing avanzati.

Andiamo a vedere alcune delle caratteristiche più importanti nel dettaglio:

Full Scene HDRI reflections

Una delle implementazioni più importanti è il rendering HDRI completo. Al momento solo UE4 è in grado di offrire questa particolarità, che permette a qualsiasi superficie di essere riflettente, non soltanto limitandosi a un piano o a un punto, ma all'intera scena del gioco. Questo risulta particolarmente utile quando la luce colpisce tipi di superfici diverse. Ad esempio quando la luce si infrange su una strada bagnata, la pozzanghera sarà illuminata a specchio, mentre il resto della strada avrà un tipo di riflesso lucido.

Per avere un esempio della capacità riflettente, basta dare un'occhiata alle pareti, alle pozzanghere e alle infiltrazioni d'acqua della demo Cave.

ue4-eflections

Physically Based Shading

Questa caratteristica consente alle ombre e alle luci di interagire "fisicamente" con i materiali. Ciò significa che a seconda della composizione del materiale: rugosità, uniformità, capacità riflettente, la superficie di un oggetto apparirà in maniera differente, restituendo un effetto quasi fotorealistico. E' possibile vedere questa particolarità osservando come reagiscono le superfici nelle demo ufficiali e non.

ue4-roughness

Effetti di Post-Processing

Temporal Anti-Aliasing

Oltre a utilizzare i classici MSAA e FXAA, merita una menzione particolare il sistema di Temporal Anti-Aliasing, una feature unica di UE4 che consente di eseguire il post-processing utilizzando una tecnica simile al TXAA di nVidia, permettendo sostanzialmente di eliminare il fastidioso difetto dello sfarfallio dei bordi.

Particle Systems

Gli effetti particellari dell'Unreal Engine 4 sono certamente una delle caratteristiche più spettacolari e accattivanti del motore. Grazie a un sistema modulare e flessibile di gestione delle particelle, viene consentito il controllo totale su posizione, colore, movimento e dimensione.

Le particelle di neve della demo Cave, il lampione difettoso della demo Subway e il fuoco della demo Elemental, sono esempi brillanti della loro spettacolarità.

Dynamic Global Illumination

ue4-RoomDay

I cambiamenti più visibili e sorprendenti riguardano l'illuminazione globale. La maggior parte dei giochi attuali si basano su una mistura fra fonti di luce dinamiche e illuminazione globale pre-calcolata. UE4 permette invece di gestire l'illuminazione globale in tempo reale.

Immaginate una stanza con una finestra dalla quale filtra una fonte di luce crepuscolare che viene proiettata sul sangue di un nemico in terra; questa luce rimbalza sul sangue ereditando un rosso bagliore che viene proiettato sugli oggetti circostanti. Immaginate un lampadario che oscilla e che ha una lampadina difettosa; a seconda dell'angolazione e dell'intensità della luce, i riflessi sugli oggetti e sulle pareti mutano in tempo reale tenendo conto dell'intensità delle varie fonti di luce; non solo: la luce viene calcolata adattandosi al tipo di superficie sulla quale viene proiettata: cemento, pietra, stoffa, legno, fornendo una risposta credibile e fotorealistica della propagazione della luce.

ue4-RoomNight

ue4-RoomNightNoLights

Pur essendo la caratteristica più sorprendente, è stata lasciata per ultima perché, al momento, l'implementazione di Sparse Voxel Octree (SVOGI), è tornata in fase sperimentale ed è stata eliminata dalle ultime revisioni di UE4, apparentemente per problemi prestazionali. Tim Sweeney, fondatore di Epic, ha spiegato che i benefici di questa caratteristica non compensano i costi in termini di potenza di calcolo richiesta.

Questa scelta ha lasciato perplessi molti sviluppatori che si sono visti privati di una delle funzioni più attese in assoluto. Tuttavia, nelle ultime versioni beta del motore, è comparsa la Light Propagation Volumes (LPVGI), che intende di fatto sostituire SVOGI utilizzando una tecnica per approssimare l'illuminazione globale in tempo reale, ma a un costo computazionale ridotto. A detta di molti osservatori e sviluppatori, però, i risultati sono molto più scadenti di quelli ottenibili con la vecchia SVOGI.

Per farsi più o meno un'idea dei vantaggi è disponibile un video-confronto fra la demo Elemental mostrata su PS4 un anno fa (con illuminazione globale disattivata) e la demo PC originale del 2012, che invece utilizza l'illuminazione globale in tempo reale (SVOGI).

Tutte le recenti demo mostrate da Epic (comprese quelle su console) non fanno uso dell'illuminazione globale dinamica. In ogni caso, nei video di seguito, possiamo dare un'occhiata ai sorprendenti risultati che è possibile ottenere utilizzando la versione sperimentale di LPVGI:

Anche la demo ufficiale Infintrator utilizza illuminazione globale pre-calcolata con risultati di tutto rispetto.

https://www.youtube.com/watch?v=8v3GA9jSasQ

Purtroppo bisogna fare i conti con la realtà: l'illuminazione dinamica globale richiede una potenza di elaborazione grafica troppo elevata che le console attuali non possono permettersi. Gli effetti di luce già implementati nel CryENGINE (Ryse: Son of Rome), ad esempio, comprendono l'illuminazione dinamica e i rimbalzi di luce, ma non a livello globale; l'unica fonte globale di illuminazione utilizzabile è il sole, inoltre il suo motore di propagazione è meno avanzato, mentre UE4 permetteva inizialmente di utilizzare fonti multiple di illuminazione dinamica.

Tech Demo ufficiali

Demo Cave

Demo Subway (Reflections)

Demo Elemental

Chi possiede una scheda video abbastanza performante può provare direttamente sul proprio computer le Tech Demo dell'Unreal Engine 4. Una volta scaricato il pacchetto basta estrarre tutti i file, installare le Visual C++ 2013 ("vcredist2013_x64.exe" e "vcredist2013_x86.exe", inclusi nel pacchetto) ed avviare le demo utilizzando i file "start*.bat" all'interno delle singole cartelle.

Avviando "edit settings.bat", è possibile cambiare alcune opzioni, fra le quali la risoluzione e la visualizzazione a schermo intero:

ResolutionSizeX=2560
ResolutionSizeY=1440
FullscreenMode=2 (1: schermo intero; 2: finestra)

Purtroppo queste demo leaked sono basate sugli assets mostrati su PS4, quindi a risoluzione più bassa di quella realmente disponibile su PC. L'impatto visivo resta comunque impressionante.

Download: Scarica le Tech Demo

Benchmarks

Sistema di prova: Core i7 4770k, Intel Z87, 8GB DDR3-2000, Windows 7 x64 SP1
Risoluzione e dettagli: 1920x1080, Antialiasing abilitato, HQ Anisotropic Filtering abilitato.

ue4-cave-demo

ue4-subway-demo

ue4-elemental-demo

Conclusioni

Se riusciamo a digerire la mancanza dell'illuminazione dinamica globale, Unreal Engine 4 si candida a pieno titolo come motore next-gen più potente, destinato ad essere utilizzato in massa per i prossimi anni, sia su console che su PC.

Dobbiamo tenere a mente che, pur essendo un motore pensato per il multithreading, questa caratteristica non verrà sfruttata al 100% finché non verranno rilasciate le DirectX 12, che permetteranno di usufruire appieno dei moderni processori multi-core. Non dimentichiamo poi che alcune delle caratteristiche mostrate non sono ancora del tutto mature.

Nonostante ciò, guardando i benchmark, possiamo affermare che i PC di fascia medio-alta sono già pronti per godere dei benefici del nuovissimo engine di Epic. Le schede nVidia presentano un certo vantaggio sulle schede AMD; in particolare notiamo qualche problemino per GPU meno recenti come la HD6970, che riesce comunque a reggere una media di 30fps @ 1080p.

Un destino similare dovrebbe toccare a Playstation 4 e Xbox One, che scendendo a qualche ovvio compromesso e considerando la maggiore ottimizzazione software della quale beneficeranno, riusciranno a utilizzare gran parte delle nuove caratteristiche messe a disposizione da Epic.