Rage vs Infinity Blade: lo sviluppo su iPhone e iPad
Abbiamo provato Rage Mutant Bash TV e Infinity Blade su iPad. Si è rivelata un'occasione per analizzare lo sviluppo tecnologico dei motori grafici, che adesso riguarda anche i nuovi dispositivi, sempre più videoludici, di Apple.
di Rosario Grasso pubblicato il 30 Dicembre 2010 nel canale VideogamesAppleiPhoneiPad
Tecnologia
John Carmack qualche giorno fa ha spiegato sul blog di Bethesda come è riuscito ad adattare id Tech 5 all'hardware dei dispositivi Apple. id Tech 5 è basata, nella versione per i dispositivi principali, sullo streaming di un'unica grande texture, che costituisce l'intero mondo di gioco. A causa della scarsa memoria di iPad e iPhone, tuttavia, questo sistema ha richiesto degli adeguamenti.
Come spiega sul blog, la principale difficoltà di Carmack ha riguardato la traposizione del sistema di virtual texturing, tipico di id Tech 5, sull'hardware di iPad/iPhone, basato su GPU PowerVR SGX535. Sebbene l'algoritmo che gestisce il procedimento sia compatibile con iPhone 3GS e con gli altri dispositivi di Apple, aggiornare l'enorme texture non è possibile con l'algoritmo di compressione delle texture della GPU di questi dispositivi, conosciuto con la sigla PVRTC.
L'approccio usato nella versione mobile di Rage prevede che lo streaming delle texture avvenga su isole di texture di dimensione variabile in cui il mondo di gioco viene suddiviso. Ciò rende l'elaborazione delle immagini molto più veloce, ma obbliga a creare delle suddivisioni geometriche di grandi superfici, e questa suddivisione deve essere predittiva. Le texture di personaggi, oggetti e interfaccia vengono calcolate, invece, nel modo tradizionale.
Ricordiamo che iPad monta un sistema PoP (Package on package) e SoC (System-on-a-chip) denominato Apple A4, lo stesso usato da iPhone 4 basato sull'architettura ARM e prodotto da Samsung. La CPU è Cortex-A8 con frequenza da 1 Ghz. La GPU è PowerVR SGX535@200Mhz, compatibile con Shader 4.1 e prodotta a 65nm. La memoria di sistema è costituita da 256MB DRAM (2 banchi da 128MB). iPhone 4, invece, ha 512 MB di RAM, il doppio rispetto all'iPhone 3GS e il quadruplo rispetto alle versioni 2G e 3G.
In modo da fare un paragone, bisogna considerare che XBox 360 dispone di 512 MB di RAM GDDR3 unificata tra sistema e video, e che PlayStation 3 ha 256MB di RAM XDR per il sistema principale e 256MB di RAM GDDR3 per la parte video. Sono memorie molto più veloci di quelle impiegate in iPad e iPhone. Ovviamente, poi, hanno CPU e GPU decisamente più performanti rispetto ai dispositivi portatili di Apple.
iOS non dispone di un file di swap, quindi se si usa troppa memoria dinamica il sistema dà un avvertimento o due e poi chiude automaticamente il processo. Questa è una sfida per ogni sviluppatore di applicazioni per iOS: non c'è un limite per la memoria utilizzabile, visto che dipende da quello che fanno le altre applicazioni in memoria come Safari, Mail, iPod. Per come è pensata la tecnologia di Rage, però, la maggior parte dei dati sono statici. Tutti i dati relativi alla megatexture che compone il mondo di gioco, infatti, sono conosciuti prima del momento in cui vengono effettivamente utilizzati. Gli unici dati che sono collocati nella memoria dinamica, quindi, sono quelli relativi all'audio e alle animazioni dei mostri, che possono essere riutilizzati diverse volte durante la sessione di gioco.
Problemi simili sono stati affrontati anche dai tecnici di Epic Games, che hanno allestito la tecnologia poi usata da Chair Entertainment in Infinity Blade. Le differenti dotazioni hardware di iPad e iPhone 4 hanno portato a delle scelte, con evidenti compromessi soprattutto nella versione per iPad. Ricordiamo che quest'ultimo renderizza le immagini alla risoluzione 1024x768, mentre iPhone 4 alla risoluzione 960x640.
iPad dunque deve renderizzare 786432 punti, mentre iPhone 4 614400 punti. iPad, dunque, deve renderizzare circa il 22% dei punti in più rispetto al più piccolo dispositivo di Apple. Il risultato è che la versione iPhone 4, sebbene giri a risoluzione inferiore e presenti un gameplay più ostico per via delle ridotte dimensioni dello schermo, ha una grafica migliore. C'è un'evidente differenza, infatti, nella risoluzione delle texture e soprattutto nel sistema di illuminazione, visto che su iPhone 4 è possibile vedere riflessi di luce più accurati sui modelli poligonali dei cavalieri.
Unreal Engine per iOS mantiene le caratteristiche principali di Unreal Engine 3 per console di nuova generazione e PC. Il nuovo kit di sviluppo rilasciato nei giorni scorsi consente, infatti, di creare livelli, costruire eventi pianificati per il gameplay e generare effetti visivi per le applicazioni mobile, così come l'Udk per i formati principali. Anche su iOS si possono usare i principali tool dell'Unreal Engine come Unreal Kismet, Unreal Cascade e Unreal Matinee.
Unreal Kismet è il tool per la creazione degli script grafici, mentre Unreal Cascade viene utilizzato per la gestione degli effetti particellari. Gli sviluppatori che vogliono inserire sequenze di narrazione cinematografiche, invece, usano Unreal Matinee.
Anche sui dispositivi mobile si ha, inoltre, il sistema di illuminazione globale Unreal Lightmass, con effetti di illuminazione globale avanzati, riproduzione realistica della penombra, rimbalzo della luce e sporcatura del colore e superfici traslucide. L'illuminazione globale viene potenziata grazie alla tecnologia di calcolo distribuito interna all'Unreal Engine e conosciuta con il nome di Unreal Swarm. Troviamo ancora UDK Remote, tool che consente di usare i dispositivi Apple come controller wireless per le applicazioni su PC.
La versione della tecnologia Unreal per i dispositivi portatili, inoltre, integra una serie di strumenti pensati per ottimizzare le prestazioni su iPad e iPhone. C'è un nuovo sistema di streaming dei livelli di gioco con caricamenti asincroni, oltre che shader programmati appositamente per sfruttare queste architetture hardware. Ovviamente c'è un nuovo sistema di gestione degli input che supporta il multi-touch, l'accelerometro e il giroscopio nel caso di iPhone 4.
La tecnologia alla base di Infinity Blade consente, inoltre, di avere: parallax mapping, per migliorare la qualità delle superfici delle rocce e dei muri con texture intricate; texture blending, migliora la qualità di strade e terreni, rendendoli ricchi e verosimili; Dynamic specular lighting, consente di creare superfici di marmo riflettente di grande impatto; real-time reflections and animation, riflettono in tempo reale sulle superfici che lo consentono le azioni del personaggio e gli ambienti che lo circondano.
Come su console e PC, inoltre, ci sono animazioni scheletrali, normal mapping, illuminazione per-pixel, traslucenza dei materiali, deformazione dei vertici nel caso di vegetazione e abiti, environment mapping, effetti sulle superifici di liquidi, e altro ancora.