Unreal Engine su iPhone
Epic porta la sua tecnologia sui dispositivi mobili.
Nel corso della Game Developers Conference appena conclusasi, Josh Adams di Epic Games ha presentato la nuova edizione dell’Unreal Engine 3 per iPhone. Adams ha così mostrato alla folla un livello di Unreal Tournament perfettamente funzionante sul dispositivo Apple, con un frame-rate che oscillava dai 25 ai 30 frame al secondo.
L’intento di portare la propria tecnologia sul gioiellino di casa Apple è nata quasi come una sfida, e i risultati possono dirsi strabilianti. Il motore grafico, ovviamente ridimensionato, si basa sulle Open GL ES 2.0, il che significa che sarà compatibile unicamente con i prodotti più nuovi quali iPhone 3GS, iPad e la terza generazione di iPod Touch. I dispositivi precedenti restano tagliati fuori a causa del mancato supporto ai pixel shader programmabili richiesti dall’engine.
Adams ha inoltre mostrato la tecnologia proprietaria di Epic in funzione su piattaforme ufficialmente non supportate quali Linux, Mac e NVIDIA Tegra 2, quest’ultima presente all’interno di un eventuale Nintendo DS2, almeno stando agli ultimi rumor.
Convertire il middelware di Epic su iPhone non è stata impresa da poco. Il solo engine consta di due milioni di linee di codice in un eseguibile di appena 16MB. Il 90% del codice è indipendente dalla piattaforma di utilizzo, mentre il restante 10% è relativo al corretto funzionamento dell’hardware ospitante.
La buona notizia è che quasi tutte le funzionalità di base dell’engine rimangono immutate nel passaggio su tecnologia Apple, utilizzando grossomodo lo stesso gameplay, lo stesso sistema di collisioni e persino la stessa tipologia di formato dei file. Gli sviluppatori hanno pertanto usufruito dei medesimi strumenti adoperati in ambito Windows direttamente su iPhone. L’unico punto in cui Epic ha dovuto effettuare cambiamenti più significativi è stato l’interfaccia di rendering hardware (HRI).
Adams ha inoltre illustrato il funzionamento della gestione della luce. Il codice raccoglie le luci statiche e dinamiche decise dagli artisti e le trasforma in appena una o due luci, supportandone la direzione e l’impatto sugli elementi ambientali. Ciò consente un costo molto basso in termini di rendering e prestazioni sicuramente ottime per un iPhone.
Chiaramente questo nuovo codice è stato ottimizzato tenendo ben presente il particolare sistema di controllo adottato su iPhone. I buffer sono impostati per memorizzare gli input forniti via touch-screen, i quali vengono poi elaborati alla resa di ogni nuovo singolo frame. Anche le funzioni relative al magnetometro del 3GS erano state prese in considerazione, ma a quanto pare le esigenze in termini di CPU si sono rivelate altamente proibitive.
Le modifiche principali apportate all’engine sono sostanzialmente due. La prima riguarda l’utilizzo delle Open GL ES 2.0 (partendo dagli attuali driver Open GL), la seconda è invece inerente al fatto che i chipset in ambito mobile sono per forza di cose meno perfmoranti rispetto agli usuali hardware di riferimento.
Il supporto dell’Unreal Engine agli shader è stato totalmente rinnovato. Il motore lavora con migliaia di shader e il team ha persino fornito un tool di anteprima in modo che i futuri sviluppatori potranno già capire il tipo di resa visiva del loro software sullo schermo del dispositivo.
È chiaro che bisogna scendere a patti con una minore qualità di texture e un minore numero di poligoni, eppure i risultati conseguiti sembrano già indicare un’ottima dimestichezza con le risorse di iPhone.
Uno dei limiti, al momento, è che tramite le nuove librerie impiegate con le Open GL ES 2.0 non è possibile operare tramite “occlusione”, vale a dire non è possibile evitare di renderizzare quei poligoni non visibili dal giocatore. Ciò significa che ogni poligono viene elaborato indistintamente dalla CPU, rendendo di fatto imperativo il creare livelli più piccoli e facilmente gestibili dal sistema. Tale problema potrebbe comunque essere risolto con i futuri driver Open GL.
Oltre che per iPhone, Epic conta di sviluppare anche per il nuovo iPad, pur ammettendo di non aver ancora avuto modo di testare alcun prototipo del dispositivo. Tale hardware dovrebbe presentare una CPU ARM A8 Cortex a 1GHz, insieme al chip PowerVR SGX535, già presente su iPhone, ma con una frequenza di clock notevolmente superiore. Epic sostiene che i classici “colli di bottiglia” non dovrebbero rappresentare un grosso problema, poiché la loro tecnologia grava per lo più sulle CPU, senza sovraccaricare i processori grafici. Se le prestazioni su iPhone 3GS sono impressionanti, sul grande schermo dell’iPad potremmo davvero vederne delle belle.
Ci sono voluti quattro mesi di lavoro e un team di appena due persone per convertire il middleware di casa Epic su iPhone. Ciò significa che le potenzialità del nuovo engine su piattaforma mobile sono già a portata di mano e che i nuovi handheld avranno un futuro quanto mai roseo.