Wednesday, May 14, 2014

Stato avanzamento lavori

Con pazienza e calma sta procedendo il porting di Tau Ceti sulla piattaforma jMonkey che, ora che sto iniziando a conoscerla, devo dire essere davvero strepitosa, e mi sento caldamente di consigliarla a chiunque abbia intenzione, per hobby o per altro, di addentrarsi nei meandri dello sviluppo di videogiochi.

Vi lascio con un breve video: tutto ciò che vedete è stato scritto in java, per ora sfrutta solo un core della cpu, e viaggia su una scheda ATI 7700 a circa 500 fps.


Friday, April 11, 2014

Galaxy Map on jMonkey

Procede l'implementazione della mappa galattica di cui l'altra volta vi ho mostrato alcuni screenshot.

Ho implementato il tutto finalmente usando le api di jMonkey e ho reso persistente l'universo. Le stelle vengono create dinamicamente, con un algoritmo pseudocasuale, ma comunque che permette di avere sempre la medesima galassia con le medesime stelle per tutti i giocatori del pianeta.

Un video:



E finalmente (spero) qualcosa che potete provare anche voi.

Scaricate questo zip, decomprimetelo dove vi pare (meglio in una cartella vuota) e lanciate il file "MyGame.jar"

Vi serve:


  • Un pc con Windows o Linux, oppure un Mac
  • Che abbiate installato Java versione 7
  • Che abbiate le OpenGL installate (con windows lo sono di default, credo anche con Mac e Linux, ma non ne son sicuro)


una volta lanciato il gioco dovrebbe apparirvi una finestra che vi fa scegliere la risoluzione: inserite le opzioni desiderate e dovrebbe apparirvi la galassia.

  • Con Q aumentate lo zoom
  • Con A diminuite lo zoom
  • Con i tasti cursore scrollate la galassia.


Non e' ottimizzato, non aspettatevi prestazioni elevate, in fondo e' una mappa e non richiede grande fluidita', ma se riesco cerchero' di migliorare magari usando le cpu extra che il vostro pc possiede.
Inoltre, scrollando troppo sicuramente il programma crasha. E' normale: non ho messo ancora i controlli.

Fatemi sapere!!!


Tuesday, March 25, 2014

Still alive!

E' passato molto dal mio ultimo post. E son cambiate tantissime cose nella mia vita e nel panorama informatico.
Ma non ho dimenticato il mio hobby.
La faccio breve: il lavoro che ho non mi da modo di dedicare il tempo che avevo prima al mio progetto. Bene da un lato, ovviamente un po' però mi spiaceva aver dovuto mettere in soffitta Tau Ceti. Sicuramente seguendo la strada di Ogre e del C++ non sarei andato da nessuna parte specie con la diminuzione del tempo libero a disposizione: ci vuol troppo impegno, troppe risorse, è già un miracolo quel che son riuscito a fare in passato.
Nel frattempo però la tecnologia è andata avanti, processori e schede video son divenuti più potenti e quindi perché doversi ostinare ad usare strumenti complessi da usare? Mi son guardato attorno e ho scoperto che esiste un motore 3D scritto in Java, completamente open source, e che ha capacità impressionanti. Si chiama jMonkeyEngine e lo trovate qui: Homepage jMonkeyEngine

Il vantaggio di usare Java rispetto a C++ è che rende estremamente più veloce lo sviluppo, non serve star li' a preoccuparsi di risorse da deallocare o cose del genere. Inoltre l'engine mette a disposizione un sacco di strumenti per importare mesh, creare interfacce utente, è persino gestita la fisica, insomma non c'è proprio paragone, con tutto rispetto del team Ogre che sta facendo comunque un ottimo lavoro.

Ad ogni modo: ho voluto ricominciare dall'aspetto procedurale dell'universo, cosa che ho sempre tralasciato troppo distratto com'ero dal 3D.
E son voluto partire dalla creazione della galassia.
Grazie a java è stata un'impresa abbastanza semplice ed ho qualcosa da farvi vedere subito.


Questa è la galassia, in tutto il suo splendore. Proviamo ad ingrandire del doppio


Raddoppiamo ancora lo zoom


La cosa interessante a sto punto è se ingrandisco ancora del doppio:


Notate?Iniziano a vedersi le singole stelle. Ancora un ingrandimento:


Morale: la galassia è formata da un numero immenso di stelle: agli ingrandimenti più bassi non è possibile distinguere le singole stelle, ma ingrandendo sempre di più siamo in grado di scorgerle.
Quante sono le stelle di questa galassia? Attualmente 508 milioni di stelle. Per l'esattezza: 508523328.
Se dovessi realmente salvare ogni singola posizione di quelle stelle mi occorrerebbero almeno 4 gigabytes. 
Invece, usando una tecnica procedurale son riuscito a fare tutto con soli  532 kilobytes. Ovvero 75 mila volte di meno di memoria occupata.
Non male.