Con la diffusione dei dispositivi mobile, e l’affermazione di sistemi come Google Play ed App Store su Android ed iOS, si è affermata sempre di più la figura dello sviluppatore di videogames indipendente (o indie game developer). Si tratta, sostanzialmente, di uno sviluppatore (o di un piccolo gruppo) economicamente indipendente, che sviluppa un gioco e lo distribuisce tramite i canali sopra citati, riuscendo (talvolta) a raggiungere un pubblico più o meno vasto.
In questa guida vedremo come diventare sviluppatori indipendenti di videogame per Android, partendo dalla progettazione del gioco, per arrivare a pubblicare la propria app su Google Play. In particolare, lo sviluppo del gioco sarà effettuato tramite le API Java per Android. Durante la guida realizzeremo, a titolo di esempio, un shooter 2D del genere space arcade, semplice, divertente ma soprattutto molto utile per i nostri scopi.
Creare un videogame mobile: mille domande
Quando iniziamo a pensare alla realizzazione di un gioco in ambiente mobile, ci scontriamo con alcune problematiche tipiche dello sviluppo di un videogame, nonchè dovute alle limitate risorse dei sistemi mobile. Come trovare una storia di successo? Dove posso trovare la grafica? La musica e l’audio? Che strumento utilizzare? Costruisco un mio engine oppure ne uso uno già esistente? Queste sono solo alcune delle domande con cui chiunque, prima ancora di iniziare a sviluppare una game application, deve confrontarsi.
Il primo step può essere quello di decidere su quale piattaforma basare il proprio lavoro. In questa guida la scelta è quella di realizzare un proprio engine, e tale decisione (sebbene apparentemente più complessa) ci consentirà di comprendere aspetti tecnici che altrimenti verrebbero nascosti.
Un secondo problema riguarda la grafica della nostra app. Possiamo affrontare questa questione in diversi modi:
contattare un grafico attraverso internet e commissionare il lavoro, il che richiederà un certo budget, nonchè del tempo per discutere i dettagli del lavoro;
acquistare dei pacchetti di grafica. Il costo è contenuto ma la stessa grafica potrà essere usata da altri game developer. Un sito che fornisce servizi di questo tipo è Graphic River;
utilizzare soltanto grafica gratuita e liberamente utilizzabile. Possiamo attingere dalla miniera di Open Game Art con la consapevolezza di dover eventualmente inventare qualcosa con il materiale a disposizione. Se vogliamo seguire questo é un approccio, l’idea migliore è forse quella di partire dalla grafica disponibile e sulla base di essa inventare una storia;
realizzare la grafica per conto proprio. Ciò non è semplice, ma esistono tutorial che consentono di acquisire conoscenze di base sulla grafica vettoriale sufficienti per la realizzazione di semplici videogame. Si veda, ad esempio, la guida ad Inkscape, disponibile su HTML.it.
Un discorso analogo è quello relativo a musiche ed effetti sonori. In funzione del nostro budget, possiamo decidere ancora una volta di acquistare file multimediali (ad esempio su Imphenzia), o tentare ancora con Open Game Art (sezione audio).
L’ultimo (ma non per importanza) problema da affrontare è forse il più difficile: definire quella che viene chiamata storyboard, e che può fare la differenza tra un gioco comune ed uno di successo. Partendo da una storia semplice che definisce l’ambiente di gioco e la sua dinamica, dovremo pensare alla giocabilità, alla viarietà di situazioni ed aspetti che possano tenere incollato al gioco il giocatore. Dovremo anche definire personaggi, livelli ed interazioni.
La libreria grafica: OpenGL ES
Oltre ai problemi appena descritti, analizziamo brevemente in questa introduzione anche un aspetto di carattere più tecnico, riguardante la scelta della libreria grafica che adopereremo per realizzare il nostro engine: OpenGL ES. Non utilizzeremo l’ultima versione disponibile, ma la 1.0, perché desideriamo poter eseguire il gioco su un numero più vasto possibile di dispositivi. Le API OpenGL forniscono tutto ciò che serve per la computer grafica 2D e 3D.
Un aspetto particolarmente delicato quando progettiamo videogame per dispositivi mobile, riguarda la necessità di tenere conto della frammentazione dei dispositivi, e conseguente della varietà di risoluzioni con le quali la nostra app dovrà essere compatibile. Per gestire questo problema, OpenGL consente di realizzare il gioco ragionando su una singola risoluzione target, ed immaginando che tutti i dispositivi abbiano questa risoluzione. Sará infatti OpenGL ad effettuare il ridimensionamento automatico di tutta la scena, sulla base della risoluzione del dispositivo su cui viene eseguito il gioco. Per lo sviluppo destinato agli smartphone, ad esempio, potremmo pensare di utilizzare una risoluzione target di 800×480 pixel, che OpenGL ridimensionerebbe in tutti quei casi in cui la nostra app venisse eseguita su un tablet. L’unico problema starà nel fatto che le immagini potrebbero essere ridimensionate verso risoluzioni maggiori di quella che avevamo in mente, perdendo inevitabilmente di qualità. Se il nostro target sono anche i tablet, è chiaro che 800×480 non può essere una scelta ottimale, e dovremo pensare ad una risoluzione intermedia alternativa che ci soddisfi, ad esempio 900×540 o superiore.
La guida: requisiti preliminari
La guida che segue parte dal presupposto che il lettore abbia già una conoscenza di base della programmazione Android. Per coloro che non soddisfano questo requisito, rimandiamo alla guida allo sviluppo di app Android, disponibile qui su HTML.it. Non ci soffermeremo, quindi, su aspetti come la configurazione dell’ambiente di sviluppo, limitandoci a specificare che lavoraremo su Eclipse, dotato del plugin ADT. Gli esempi che seguiranno saranno sviluppati su Microsoft Windows, ma possono facilmente essere adattati a Linux o MacOS
Maggiori info e fonte: clicca qui