Matteo Basei

Una collezione di piccoli programmi realizzati a scopo didattico.

Browser Game alla conquista della galassia

"La Terra è la culla dell'umanità, ma chi può vivere per sempre in una culla?"

Konstantin Eduardovich Tsiolkovsky

Un browser game (a cui non ho mai trovato un nome decente) ispirato a OGame con una galassia generata proceduralmente da esplorare e conquistare.

Lo sviluppo di questo progetto mi ha permesso di far pratica con html, css e php (e ho usato un po' di javascript per alcune cose particolari del frontend, come la mappa della galassia zoomabile), ma devo dire che mi sono anche divertito, da grande appassionato di fantascienza, a inventare l'albero delle tecnologie, immancabile in un gioco 4X come questo (4X sta per "eXplore, eXpand, eXploit, eXterminate", cioè "esplora, espandi, sfrutta, stermina").

Nella schermata Galassia è possibile navigare tra centinaia di differenti sistemi stellari.
Nella schermata Galassia è possibile navigare tra centinaia di differenti sistemi stellari.

Ho replicato l'algoritmo di generazione procedurale di Amazing Skies per le caratteristiche e il numero di sistemi e pianeti, per i nomi, eccetera. A differenza di Amazing Skies, dove la generazione procedurale interessa anche l'aspetto dei pianeti, qui l'immagine di ogni pianeta è creata fondendo in vari modi diverse foto reali di pianeti e lune del sistema solare.

Nella schermata Sistema si tengono sotto controllo i pianeti e le navi in orbita del sistema stellare.
Nella schermata Sistema si tengono sotto controllo i pianeti e le navi in orbita del sistema stellare.

Il gioco è strutturato per essere multilingua, al momento è presente l'italiano e l'inglese. È possibile registrarsi scegliendo uno username e una password e indicando un indirizzo e-mail. Completata la registrazione viene creato l'utente e ad esso associato un pianeta con un insediamento in superficie e una popolazione di 2 individui.

Esplora ed espandi

Il menu di sinistra permette di accedere a tutte le sezioni del gioco. Le pagine Galassia, Sistema e Pianeta permettono di navigare l'universo (o per meglio dire la galassia) di gioco. È possibile ordinare alle proprie flotte (configurate nell'apposita pagina) di dirigersi verso l'orbita di una stella o di un pianeta. Dalla pagina Pianeta è inoltre possibile tenere sotto controllo, con un singolo colpo d'occhio, la situazione del pianeta con i suoi 4 indici principali: popolazione, punti produzione, punti ricerca e punti militari. C'è anche una pagina Archivio pianeti con la lista di tutti i pianeti che sono stati esplorati o in cui è stata inviata una sonda da parte del giocatore.

Nella pagina Pianeta sono riepilogate le caratteristiche e, se colonizzato, i punteggi del proprio pianeta.
Nella pagina Pianeta sono riepilogate le caratteristiche e, se colonizzato, i punteggi del proprio pianeta.

Le pagine Orbita e Superficie permettono invece, quando si è selezionato un pianeta sotto il proprio controllo, di gestire rispettivamente le stazioni in orbita e le costruzioni in superficie. Chiaramente se il pianeta in questione è un gigante gassoso la sezione Superficie sarà disabilitata, così come le uniche risorse disponibili saranno l'idrogeno, facilmente estraibile dall'atmosfera, e lo sfruttamente delle forti correnti dell'atmosfera stessa per generare energia, grazie ad apposite strutture orbitanti.

Sfrutta e stermina

Le pagine Risorse e Prodotti, anche qui solo se si è selezionato uno dei propri pianeti, permettono rispettivamente di tenere sotto controllo le risorse consumate e prodotte sul pianeta e gestire la produzione di mezzi e astronavi.

In questa pagina si possono gestire le strutture sulla superficie del proprio pianeta.
In questa pagina si possono gestire le strutture sulla superficie del proprio pianeta.

La pagina Tecnologie permette di gestire lo stato delle ricerche. Ogni tecnologia richiede un certo tempo per essere sviluppata, tempo che dipende dal numero di centri di ricerca (università, laboratori, stazioni orbitanti, eccetera) presenti nel pianeta in cui si intende iniziare a svilupparla. Pur venendo sviluppata in un singolo pianeta, senza poter utilizzare le risorse di altri pianeti, una volta ottenuta la tecnologia sarà disponibile in tutti i pianeti colonizzati dal giocatore. Ogni tecnologia può inoltre avere una o più tecnologie che da essa dipendono e una o più tecnologie come prerequisito. Infine una tecnologia può sbloccare la possibilità di costruire nuovi edifici, strutture in orbita e astronavi.

Nella pagina Flotte è possibile tenere sotto controllo e dare ordini alle proprie astronavi. La lista permette di avere una visione di insieme delle proprie astronavi sparse per la galassia. Da qui è inoltre possibile raggrupparle in flotte in modo da gestirle più comodamente.

Infine Comunicazioni permette di inviare messaggi ad altri giocatori, Opzioni permette di gestire il proprio account e Punteggi mostra la classifica dei giocatori. Il menu di destra permette invece di posizionarsi rapidamente sui pianeti sotto il proprio controllo.

La pagina Tecnologie permette di sviluppare tecnologie per far evolvere le proprie colonie.
La pagina Tecnologie permette di sviluppare tecnologie per far evolvere le proprie colonie.

Tutta la parte di gameplay è completamente configurabile agendo sulle tabelle del database (MySQL) in cui vi sono la lista delle strutture, dei mezzi e delle tecnologie con caratteristiche parametrizzate, come tempi, costi e dipendenze. Per come è configurato ora il gioco nelle prime fasi bisogna mediare tra la necessità di svilupparsi velocemente e la necessità di sviluppare nuove tecnologie per passare dalla produzione di energia a partire da idrocarburi ad altre fonti più efficienti, durature e meno inquinanti (l'inquinamento ha effetto sul morale della popolazione).