venerdì 20 settembre 2013

Fare un videogioco: videogiochi su Smartphone

Oggi voglio introdurre la programmazione su smartphone, dato che la facilità di accesso a tali mezzi in termini di sviluppo e l'enorme diffusione che hanno tali piattaforme, che con molta probabilità sostituiranno le console portatili.

Sebbene ci siano svariati sistemi operativi proprietari, gli smartphone attualmente più utilizzati sono fondamentalmente Iphone e cellulari Android.  E' quindi evidente che la scelta ricadrà quindi se piazzare il proprio gioco sui prodotti Apple o su un qualunque smarthpohne del sistema operativo di Google. E' dunque necessario fare un distinguo:

  • Iphone ha IOS come sistema operativo. Il numero relativamente limitato di modelli permette un minor lavoro di compatibilità tra diversi device. Su di esso di sviluppa principalmente con il linguaggio Objective C, linguaggio non semplicissimo per i neofiti.
  • Android invece è presente su un grande numero di disposivi, create da molteplici aziendi che spesso personalizzano il sistema in base alle proprie esigenze. Questo rende più problematica la questione della compatibilità, dato che è molto difficile rendere la propria applicazione universale. Tuttavia il linguaggio utilizzato su android è il Java, la cui semplicità di utilizzo è nota.
 Ovviamente, come per la programmazione di giochi per computer, ci sono determinate librerie, engine e programmi che permettono di semplificare la vita dello sviluppatore. Infatti programmi come Game Maker e Unity Engine permettono di sviluppare giochi multipiattaforma, quindi sia per IOS che per Android. Uniti all'estrema semplicità di utilizzo di questi due applicazioni, questo aspetto apre a tutti la possibilità di creare il proprio gioco per tablet o smartphone.

Per quanto riguarda invece le possibilità offerte dalla programmazione, si può dire che basta saper utilizzare OpenGl e si è già perfettamente in grado di sviluppare giochi. Gli ambienti di sviluppo principali sono, nel caso di Android, Eclipse con il plugin di Android SDK. Per quanto riguarda IOS invece l'IDE ufficiale è Xcode.

Detto ciò, è bene ricordare che la programmazione OpenGl è relativamente di "basso livello", e quindi è particolarmente complessa e di solito usata solo per costruire da zero l'engine del gioco. D'altra parte, se si hanno le giuste competenze, è possibile ottimizzare tutto l'ottimizzabile ed ottenere eccellenti prestazioni. Aggiungo che se ci si limita a giochi bidimensionali, su Android si può benissimo fare a meno di librerie grafiche, ma è comunque un approccio che sconsiglio: quando ho tentato di fare un port del mio gioco Arkolour direttamente su Android, non è stato proprio facile e in generale non lo considero un successo al 100%.

Ma per chi non mastica l'OpenGl, che rimane da fare? Utilizzare librerie ed engine, ovviamente! E c'è da dire che tante sono le scelte in questa categoria, che possono essere più o meno valide a seconda delle proprie necessità. Io personalmente consiglio LibGDX per lo sviluppo su Android. E' una libreria Java estremamente efficiente e semplice da usare, con un vantaggio da non sottovalutare: permette di sviluppare un singolo progetto che poi può essere compilato con pochissime righe di codice sia per PC, che per Android che per altre piattaforme! In parole povere permette di poter rilasciare un gioco sia per smartphone che per computer, o ancora di poter testare le proprie app direttamente sul pc SENZA usare l'emulatore!

Un'alternativa, sempre per sistemi Android, è Andengine. Tuttavia non lo consiglio calorosamente per via della sua natura "inusuale" e per l'assenza di documentazione. E' pesantemente basato su ereditarietà e programmazione ad oggetti, ed è notoriamente considerato poco efficiente. Ciononostante ha un discreto numero di sostenitori pronti ad aiutare i principianti sul forum.

Tra le altre possibilità segnalo Cocos2d-x, engine crossplatform che permette di sviluppare sia per Android che per IOS, ed ha una certa fama nell'ambiente, anche se, devo ammetterlo, non ho mai avuto modo di provarlo.

Detto ciò, non rimane altro che attaccare il proprio smartphone al computer, programmare un gioco, caricarlo.... e iniziare il debug! Spero che questa guida vi sia stata utile e ci vediamo al prossimo post!

Nessun commento:

Posta un commento