Sviluppare un gioco per Android – Lezione 15: come configurare Libgdx

Creato il 18 aprile 2014 da Paolo Dolci @androidblogit

Sviluppare un gioco per Android – Lezione 15: come configurare Libgdx
Android Blog Italia.

Abbiamo fatto una breve panoramica, nelle precedenti lezioni, sui concetti base di OpenGL ES. Tuttavia, c’è un’altra libreria che chiunque si avvicini allo sviluppo di un gioco per Android deve conoscere: Libgdx. Molti si pongono la domanda: è possibile creare una grafica 2D con OpenGL senza sapere nulla su OpenGL? La risposta è si e la soluzione è libgdx, una libreria abbastanza completa e ricca di documentazione, con la quale è possibile sviluppare un gioco per PC Desktop e, nel contempo, distribuirlo su Android. Vediamo, in questa prima lezione, come configurare libgdx, poiché si tratta di un procedimento che, in alcuni casi, potrebbe risultare abbastanza ostico.

Prima di iniziare a vedere i concetti base per uno sviluppo vero e proprio con libgdx, come soprascritto, è necessario configurarlo. Per farlo, il passo iniziale consiste nel download della libreria, quindi visitate questo link e scaricate il file libgdx-nightly-latest.zip ed estraete il contenuto. Ora apriamo Eclipse e, per iniziare, creiamo un nuovo progetto che chiameremo star-assault.

Tralasciamo, questa volta, le fasi che precedono lo sviluppo vero e proprio di un videogioco. Il progetto ha, come scopo principale, quello di farvi apprendere i meccanismi basilari dello sviluppo con libgdx. Di conseguenza, non preoccupiamoci troppo di idee, mock-up, prototipi e quant’altro. Se avete creato il progetto star-assault, a questo punto, possiamo procedere oltre.

Come vedete, potete lasciare le impostazioni di default. Una volta creato il progetto, tuttavia, sarà necessario apportare una modifica: facciamo click con il tasto destro del mouse su star-assault e creiamo una nuova cartella (New –> Folder) che chiameremo libs. A questo punto, diamo un’occhiata ai file estratti dall’archivio libgdx in precedenza e copiamo, in libs, gdx.jar e gdx-sources.jar, quest’ultimo nella cartella sources dell’archivio. Potete trascinarli direttamente in Eclipse o copiarli direttamente nella vostra cartella workspace (in quest’ultimo caso ricordate di aggiornare Eclipse). Ecco come dovrebbe apparire, a questo punto, la struttura del progetto.

Giunti a questo punto, dovete aggiungere gdx.jar come dipendenza del vostro progetto. Potete farlo cliccando con il tasto destro sul progetto (come prima), ma questa volta cliccando su Properties e, successivamente, su Java Build Path. Infine, aprite la scheda Libraries e cliccate su Add JARs, navigate fino alla cartella libs che avete creato e selezionate gdx.jar.

Per avere accesso al codice sorgente gdx, tuttavia, è necessario compiere un’ulteriore operazione. Sempre nella stessa videata precedente, espandete gdx.jar e selezionate Source attachment, dopodiché cliccate Edit sulla destra e selezionate gdx-sources.jar dalla vostra workspace. Ecco come dovrebbe apparire la configurazione delle librerie a questo punto.

Un grosso consiglio che possiamo darvi è quello di seguire attentamente, leggere e studiare la documentazione ufficiale riguardante libgdx, che potete trovare qui. Infatti, come per OpenGL ES, noi vi daremo le basi, ma starà a voi approfondire l’argomento qualora lo riteneste necessario.

La configurazione di libgdx, tuttavia, non finisce qui. Infatti abbiamo bisogno di creare altri due progetti, uno per PC Desktop e l’altro per Android. Essi non conterranno nulla di particolare, tranne le dipendenze necessarie per eseguire il gioco sulle rispettive piattaforme. Infatti, potete pensare a questi due progetti come le classi che contengono il metodo main (classe entry point). In fin dei conti, una delle principali potenzialità di libgdx è proprio questa: sviluppare un unico progetto che, senza pesanti modifiche, funzioni sia su PC Desktop che su Android. 

La versione desktop

Il procedimento per creare e configurare il progetto desktop è relativamente semplice a questo punto. Infatti, vi basterà creare il nuovo progetto (con suffisso desktop), in questo caso star-assault-desktop, creare la cartella libs, e copiare all’interno altri tre archivi jar presenti tra quelli estratti in precedenza:

  • gdx-natives.jar;
  • gdx-backend-lwjgl.jar;
  • gdx-backend-lwjgl-natives.jar.

Come abbiamo fatto in precedenza, dovrete aggiungere anche questi tre archivi come dipendenze al nuovo progetto.  In questo caso, tuttavia, aggiungeremo anche un elemento in più, ossia il progetto creato in precedenza. Per farlo, aprite la Java Build Path del progetto desktop e, anziché selezionare la scheda Libraries, aprite Projects. Ora cliccate su Add e selezionate il progetto star-assault.

IMPORTANTE: Dobbiamo rendere il progetto star-assault una dipendenza transitiva, il ché significa che le dipendenze per questo progetto saranno dipendenze anche per i progetti che dipendono da questo (scusate il gioco di parole)! Per far si che questo accade, aprite la scheda Order and Export nella Java Build Path del progetto principale e spuntate gdx.jar, dopodiché potete procedere alla creazione del progetto Android.

La versione Android

Innanzitutto, anche se sembrerà scontato dirlo, assicuratevi di avere l’SDK installata. Dopodiché, come abbiamo fatto in precedenza, creiamo il progetto star-assault-android (progetto Android!) e creiamo la prima attività: StarAssaultActivity. Ancora una volta creiamo la cartella libs e, questa volta, copiamo all’interno gdx-backend-android.jar e le due cartelle armeabi e armeabi-v7a.

Nella scheda Libraries dovrete aggiungere solamente gdx-backend-android.jar e gdx.jar dal progetto principale. Inoltre, non dimenticate di selezionare, come abbiamo fatto prima, anche il progetto principale come dipendenza nella scheda Projects. Infine, un’altra piccola accortezza: per quanto riguarda le nuove versioni Android è necessario, dalla scheda Order and Export, spuntare sia il progetto principale che abbiamo aggiunto, sia i due archivi jar.

Se avete seguito tutti i passi, ecco come dovrebbe apparire la struttura dei tre progetti:

Condivisione dei dati (immagini, suoni, etc.)

Poiché libgdx offre la possibilità di creare un gioco che sia identico su due diverse piattaforme, l’ideale sarebbe avere una directory nella quale avere risorse condivise. Logicamente, questa potrebbe essere posizionata nel progetto principale, tuttavia Android ha delle regole abbastanza ferree sull’utilizzo delle risorse, di conseguenza utilizzeremo proprio il progetto Android per condividere tutti i dati.

Utilizzeremo, dunque, la cartella assets di Android e, per condividerla con il progetto desktop che abbiamo creato, apriamo per l’ultima volta il menù Java Build Path di quest’ultimo. Questa volta apriremo la scheda Source. A questo punto clicchiamo su Link Source e, successivamente, su Browse. Ora ci basterà trovare la cartella assets del nostro progetto Android. Infine, dovremo cliccare con il tasto destro sulla cartella e selezionare Build Path -> Use as Source Folder. Ora siamo pronti per iniziare il nostro lavoro con libgdx.

Per qualunque dubbio, come sempre, non esitate a commentare la guida.

Sviluppare un gioco per Android – Lezione 15: come configurare Libgdx
Android Blog Italia.