Alessandro Del Rosso

Su Android presto giochi iPhone-like?

Grazie all'introduzione del supporto allo standard grafico OpenGL ES 2.0, il nuovo Native Development Kit potrebbe consentire agli sviluppatori Android di creare giochi 3D sullo stesso livello di quelli disponibili per iPhone 3GS

Roma - Presto gli utenti di Android potrebbero non avere più motivi per invidiare la qualità dei giochi 3D disponibili sull'App Store di iPhone. L'ultima versione dell'Android Native Development Kit (NDK), la r3, introduce infatti il supporto alla API grafica OpenGL ES 2.0, la stessa supportata da iPhone 3GS e Palm Pre.

Va subito detto che OpenGL ES 2.0 va a braccetto soltanto con l'ultima major release di Android, la 2.x, che fra le altre cose può contare su una rinnovata architettura grafica concepita per migliorare l'accelerazione in hardware.

Rilasciato lo scorso giugno, l'NDK permette agli sviluppatori di superare i confini della macchina virtuale Dalvik, all'interno della quale girano tutte le applicazioni scritte per Android, e accedere direttamente all'hardware sottostante per mezzo di linguaggi di programmazione nativi come C e C++.
OpenGL ES 2.0 fa ora parte delle librerie scritte in codice nativo messe a disposizione dall'NDK, e fornisce agli sviluppatori la capacità di gestire il rendering grafico per mezzo di vertex e fragment shader scritti in linguaggio GLSL.

OpenGL ES è una API libera da royalty per la programmazione di applicazioni e giochi con grafica 2D e 3D progettati per girare sui dispositivi più piccoli, come telefoni cellulari, PDA, computer di bordo, media player e console portatili. Questa specifica consiste in un sottoinsieme delle funzionalità alla base dello standard grafico OpenGL, ed include profili ottimizzati per i device più semplici e per quelli più sofisticati, dotati di una o più unità di calcolo in virgola mobile. Il pieno supporto all'hardware 3D programmabile fornito da OpenGL ES rende teoricamente possibile, per gli sviluppatori, la creazione di giochi per smartphone con grafica non dissimile da quella delle console dedicate.

Naturalmente la qualità grafica dei giochi 3D dipende anche e soprattutto dalla potenza dell'hardware: iPhone 3GS, ad esempio, è in grado di far girare titoli di un certo effetto grazie ai cavalli del suo chip grafico PowerVR SGX. Ragion per cui i giochi per Android che sfrutteranno a fondo OpenGL ES 2.0 richiederanno anche GPU adeguate.

Insieme all'NDK r3 viene fornito un programma d'esempio, chiamato hello-gl2, che mostra come effettuare il rendering di un semplice triangolo utilizzando gli shader.

Ma i giochi non saranno la sola categoria di software a potersi avvantaggiare delle nuove librerie grafiche: Mozilla, ad esempio, le sfrutterà per ottimizzare le performance di Fennec per Android. Il supporto a OpenGL ES potrebbe inoltre aprire la strada all'implementazione su Android della API WebGL, standard nascente per la grafica accelerata su Web.

Tra le altre novità dell'NDK r3, scaricabile da qui, c'è l'inclusione di una versione più aggiornata del compilatore GCC, la 4.4.0, accreditata di generare "codice macchina leggermente più compatto ed efficiente" rispetto alla precedente versione 4.2.1.

Alessandro Del Rosso
Notizie collegate
  • TecnologiaAndroid: dopo l'SDK, l'NDKIl nuovo Native Development Kit per Android permette agli sviluppatori di bypassare la macchina virtuale del sistema operativo e di scrivere i propri programmi in codice nativo, spremendo ogni goccia di potenza della CPU
32 Commenti alla Notizia Su Android presto giochi iPhone-like?
Ordina
  • ogni volta che si parla di prestazioni giava viene messo da parte?Indiavolato
    non+autenticato
  • Ma hai letto l'articolo?
    Non è stato messo da parte java, è stata data la possibilità di accedere all'hardware direttamente (senza una virtual machine di mezzo).
    Non è un problema di prestazioni, ma di esigenze.
    Devo spiegare meglio, o riesci a comprendere da te la differenza tra un compilato per una VM e un compilato per una macchina reale?
    Attento che non sta nelle prestazioni la differenza...
    non+autenticato
  • > Ma hai letto l'articolo?

    si, i giochi richiedono prestazioni quindi giava si butta via, semplice no?
    non+autenticato
  • stesso motivo per cui i giochi non si scrivono in .net

    non è java ad essere lento, sono i compilatori jit in generale ad avere penalità nelle performance

    poi con java puoi forse accedere al registro X dell'unità grafica? no, quindi ti serve per forza l'accesso diretto al sistema operativo e quindi all'hardware
    non+autenticato
  • - Scritto da: collione

    > stesso motivo per cui i giochi non si scrivono in
    > .net

    Ehm... ci sono SDK per sviluppare videogame che usano mono, quindi il C# come linguaggio di scripting:

    http://unity3d.com/

    Unity può essere usato per OS X e iPhone.

    Dato che un gioco può essere realizzato a partire da una o più librerie le cui funzionalità vengono sfruttate tramite degli "script", linguaggi come Java, C#, Lua, JavaScript sono più che adeguati per realizzare il gioco.
    FDG
    10990
  • > Dato che un gioco può essere realizzato a partire
    > da una o più librerie le cui funzionalità vengono
    > sfruttate tramite degli "script", linguaggi come
    > Java, C#, Lua, JavaScript sono più che adeguati
    > per realizzare il
    > gioco.
    Certo certo ciccio, quando vedrò un MOTORE di videogioco scritto in qualche linguaggio interpretato ti darò ragione...A bocca aperta
    Ma per ora Carmack rulez!Occhiolino
    non+autenticato
  • > http://www.jmonkeyengine.com/movies_demos.php

    Quale parte di motore non ti è chiara?
    Il lavoro pesante lo fa opengl che è NATIVA, compilata e quasi sicuramente scritta in c++ Innamorato
    riprovaA bocca aperta
    non+autenticato
  • A voler fare i pignoli nemmeno le OpenGL sono un motore ma una libreriaA bocca aperta
    Comunque ok, è ovvio che più si va a basso livello a scrivere codice e più questo risulti performante (se è scritto e ottimizzato con criterio)

    comunque sono scritte in C; c'erano in progetto le OpenGL++, ovvero un layer sopra le OpenGL per dare funzionalità tipiche del C++ ma sono state abbandonate.

    Poi di MOTORI ce ne sono una vagonata, in tutte le salse. E poi videogioco non vuol dire necessariamente miliardi di fps..
    non+autenticato
  • > A voler fare i pignoli nemmeno le OpenGL sono un
    > motore ma una libreria
    >A bocca aperta

    Se no che programmatori siamoOcchiolino

    > Comunque ok, è ovvio che più si va a basso
    > livello a scrivere codice e più questo risulti
    > performante (se è scritto e ottimizzato con
    > criterio)

    Era solo questo il punto: su un processore ridotto, come può essere quello di un cellulare, ogni ciclo macchina conta!

    > Poi di MOTORI ce ne sono una vagonata, in tutte
    > le salse. E poi videogioco non vuol dire
    > necessariamente miliardi di
    > fps..
    D'accordissimoOcchiolino
    non+autenticato
  • > non è java ad essere lento, sono i compilatori
    > jit in generale ad avere penalità nelle
    > performance
    Falso.

    > poi con java puoi forse accedere al registro X
    > dell'unità grafica? no, quindi ti serve per forza
    > l'accesso diretto al sistema operativo e quindi
    > all'hardware
    Vero.

    E' più performante usare una GPU per i calcoli grafici che il processore.
    La JVM non prevede GPU, ergo via Java non puoi accedere alle GPU (se non accedendo a librerie native compilate).
    Tra l'altro esiste Java3D (che si basa su openGL se non erro), ma non penso sia molto usato.

    Nel calcolo puro Java non è più lento del C/C++ e la hotspot mostra prestazioni superiori a diversi compilatori C/C++.
    Per la memoria invece la faccenda cambia, ma è una storia lunga.

    Ah i link: questo è interessante... molto, leggetelo!
    http://www.idiom.com/~zilla/Computer/javaCbenchmar...
    non+autenticato
  • ... spianerà la strada ad Android!
    LG e Samsung vedrete come si fionderanno su Android e come rilasceranno smartphone sotto i 200 euro...
  • - Scritto da: Enjoy with Us
    > ... spianerà la strada ad Android!
    > LG e Samsung vedrete come si fionderanno su
    > Android e come rilasceranno smartphone sotto i
    > 200 euro...

    quanto volte l'ho già sentita questa?
  • - Scritto da: Enjoy with Us
    > ... spianerà la strada ad Android!
    > LG e Samsung vedrete come si fionderanno su
    > Android e come rilasceranno smartphone sotto i
    > 200
    > euro...

    Ma certo, soprattutto ora che HTC è stata denunciata da Apple per la violazione di 19 brevetti relativi ad Android.
    ruppolo
    33147
  • prima di cantare vittoria non dovresti aspettare l'esito della causa, ruppolo? Anche Apple è stata denunciata per lo stesso motivo...
  • - Scritto da: Charlie Parker
    > prima di cantare vittoria non dovresti aspettare
    > l'esito della causa, ruppolo? Anche Apple è stata
    > denunciata per lo stesso motivo...

    non proprio per lo stesso...
  • apple e' in litigation con nokia per cose un pochetto piu' nebulose... in un campo dove nokia ha gia' perso battaglie contro qualcomm e guarda caso apple ha come partner qualcomm

    quello tra nokia e apple e' un incubo giuridico
    bibop
    3451
  • - Scritto da: bibop

    > apple e' in litigation con nokia per cose un
    > pochetto piu' nebulose...

    Quelle di Apple invece sono chiare. Come tutti i brevetti su tecnologie usate dall'Amiga nel 89-90 e copiate e brevettate da Apple nel 96 (quelle riguardanti gli oggetti nel S.O.).
    O il brevetto di movimenti della mano.

    La mia previsione: Google si schiererà a fianco di HTC come parte lesa (visto che si critica il Nexus 1, distribuito da Google e con S.O. di Google), e lo spauracchio convincerà la Apple a ritirare la denuncia, o a rischiare di ricevere una controdenuncia da Google stessa che potrebbe impedire a Apple di vendere in USA.

    Bye.
    Shu
    1232
  • - Scritto da: Charlie Parker
    > prima di cantare vittoria non dovresti aspettare
    > l'esito della causa, ruppolo? Anche Apple è stata
    > denunciata per lo stesso
    > motivo...
    Guarda che il mio commento vale a prescindere dall'esito!
    ruppolo
    33147
  • - Scritto da: ruppolo
    > - Scritto da: Enjoy with Us
    > > ... spianerà la strada ad Android!
    > > LG e Samsung vedrete come si fionderanno su
    > > Android e come rilasceranno smartphone sotto i
    > > 200
    > > euro...
    >
    > Ma certo, soprattutto ora che HTC è stata
    > denunciata da Apple per la violazione di 19
    > brevetti relativi ad Android.

    Ci aggiungerei pure questa:
    http://www.iphoneitalia.com/gli-htc-magic-di-vodaf...
  • conficker che gira su linux? mi sono perso qualcosa?A bocca aperta

    l'ultima volta che ho guardato era un malware per windows
    non+autenticato
  • - Scritto da: ruppolo
    > - Scritto da: Enjoy with Us
    > > ... spianerà la strada ad Android!
    > > LG e Samsung vedrete come si fionderanno su
    > > Android e come rilasceranno smartphone sotto i
    > > 200
    > > euro...
    >
    > Ma certo, soprattutto ora che HTC è stata
    > denunciata da Apple per la violazione di 19
    > brevetti relativi ad
    > Android.

    che poi erano 20....
    se ne ha già perso uno per strada basta aspettare un altro po di giorni
    non+autenticato
  • - Scritto da: Palmipedone

    > La parola agli sviluppatori..
    >
    > http://blog.wolfire.com/2010/01/Why-you-should-use
    >
    > http://en.wikipedia.org/wiki/Wolfire_Games

    Articolo interessante. Hanno fatto bene a citare pure WebGL. Bisognerebbe spingere gli sviluppatori di giochi web ad usarlo.
    FDG
    10990