Lo sviluppo di giochi in ambiente Android - La piattaforma Libgdx

 

Libgdx  è  un  framework  open-source  per  lo  sviluppo  cross-platform  di  giochi su  tecnologia  Java.  In  realtà,  oltre  a  Java,  il  framework  fa  uso  anche  del linguaggio  C  sia  per  compiere  quei  compiti  che  sono  critici  per  le performance,  sia  per  incorporare  librerie  C  di  terze  parti  che  forniscono  tool di supporto.

Una  delle  caratteristiche  principali  di  Libgdx  è  la  possibilità  di  esportare  il proprio  progetto  su  diverse  piattaforme.  Per  fare  ciò  fornisce  un’API  comune che  astrae  completamente  i  dettagli  implementativi  delle  varie  piattaforme supportate  che  attualmente  sono:  Windows,  Linux,  Mac  OS  X,  Android,  iOS e HTML5.

Libgdx  non  è  un  game  engine.  I  game  engine  sono  composti,  generalmente, da  una  insieme  di  tool  che  vincolano  lo  sviluppatore.  In questo modo Libgdx  lascia  allo  sviluppatore  una  totale  libertà  sugli  strumenti  da  utilizzare ed  offre  la  possibilità  di  utilizzare  operazioni  di  basso  livello  qualora  fosse necessario.

Quando  si  crea  un’applicazione  con  Libgdx  si  vanno  ad  implementare  N progetti  di  cui  un  progetto core  che  sfrutta  l’API  fornita  e  che  contiene  gran parte  del  codice, ed  N-1  progetti,  uno  per  ogni  piattaforma  utilizzata,  che contengono  la  restante  parte  di  codice  utile  all’avvio  dell’applicazione  sulle diverse piattaforme.

Con  Libgdx  è  possibile  eseguire  e  debuggare  il  codice  su  desktop  come  una normale applicazione Java. Ciò  ha un duplice vantaggio:

  • Consente l’utilizzo  di  tutti  gli  strumenti  e  delle  funzionalità  supportate dalla Java Virtual Machine
  • Riduce sensibilmente i tempi di sviluppo e di debug.

Per  fare  in  modo  che  si  possa  scrivere  un unico  codice  di  base,  però,  è  necessario  che  tutti  i  progetti  abbiano  libero accesso  alle  risorse  che  dovranno  essere  utilizzate.  Abbiamo  anche  detto  che la  maggior  parte  del  codice  di  un’applicazione  Libgdx  è  scritta  nel  progetto core  e,  quindi,  si  potrebbe  pensare  di  avere  una  directory  interna  a  questo progetto  contenente  suoni,  immagini  e  quant’altro  possa  essere  condiviso  fra le  varie  piattaforme.  Tuttavia  Android  ha  delle  regole  molto  ferree  per  quanto riguarda  l’utilizzo  delle  risorse  e  per  tale  motivo  si  utilizza  la  cartella  assets del progetto Android per  la condivisione dei dati.

I  legami  fra  i  diversi  progetti  sono  gestiti  tramite Gradle. Gradle  è  un  sistema di  creazione  (build)  e  gestione  (management)  delle  dipendenze.  La  gestione delle  dipendenze  avviene  tramite  un  file  che  specifica  i  nomi  e  le  versioni delle  librerie  che  uno  sviluppatore  ha  bisogno  di  avere  nella  propria applicazione.  L’aggiunta,  la  rimozione  o  la  modifica  della  versione  di  una libreria  può  essere  ottenuta  semplicemente  modificando  alcune  righe  di questo  file.  Il  sistema  di  build  aiuta  con  la  creazione  della  propria applicazione  e  non  è  legato  al  particolare  IDE  (Integrated  DevelopmentEnvironment)  utilizzato.

Prima  di  Gradle  era  necessario  configurare  libgdx ogni  volta  che  si  creava  un  nuovo  progetto.   Tale  configurazione  consisteva  di una  serie  di  passi,  per  caricare  le  librerie  e  per  creare  le  dipendenze  fra  i diversi  progetti,  che  potevano  costituire  un  procedimento  abbastanza complesso  e  spesso  fonte  di  errori.  Il  sistema  di  build  di  Gradle  automatizza questo  procedimento  e  permette  a  tutte  le  piattaforme  di  condividere  la cartella assets del progetto Android.

 

Ben tornato