View Full Version : [CONSIGLIO] quali API per un gioco in JAVA ?
Io volevo iniziare a fare un VG in java, non avendone mai fatto uno ho iniziato a guardare qualche tutorial (tra l'altro sono ben accetti link a tutorial di fiducia :) ) ma a questo punto mi sono trovato di fronte ad un bivio ... per la grafica e l'audio quali API utilizzare ?
da un lato ci sono la API standard e dall'altro ci sono JOGL e JOAL che sono i binding alle librerie OpenGL e OpenAL...
a me di prima battuta verrebbe da scegliere JOGL e JOAL, più che altro perchè così mi baso su standard che ci sono da parecchio tempo e che sono adottati da molti... (vabbè forse non OpenAL, ma OpenGL sì)
non sò, ho bisogno di un cosiglio/spiegazione sul perchè una scelta potrebbe essere migliore dell'altra.
thanx
Jogl va più che bene, tra l'altro credo che l'implementazione del "binding" OpenGL fatta con Jogl sia molto simile a quella che ci riserverà il binding ufficiale, che verrà rilasciato quest'anno in Maggio.
Ciao.
non è che per caso hai un pò di tempo per spiegarmi un pò di storia ? :D
nel senso:
cosa intendi per binding ufficiale ? java si sposterà verso questa strada ?
La storia è questa: Sun esce con Java3D nel 98 (o giù di lì), un'API 3D in pura filosofia Java: non serve un'acceleratore grafico, ma se presente sul sistema -> le librerie usano l'accelerazione hardware. Indifferente il sistema operativo, sotto windows il programma 3D sfrutta il rendering software, directX o le OpenGL, sotto linux OpenGL o software. L'API viene portata avanti fino alla versione Java3D 1.3.2, compatibile con DirectX 7.1 / OpenGL 1.2.
Nel frattempo OpenGL e DirectX fanno un paio di grossi salti in avanti. L'avanzamento di Java3D soffre la crisi della new-economy, Sun "taglia" il reparto 3D, il progetto resta nel limbo (tuttora non si sa se Java3D 1.4 vedrà la luce, non ci sono comunicati ufficiali di Sun, solo "rumors"). Parallelamente avanzano i "bindings" Java-OpenGL.
Sono dei ponti tra Java e OpenGL che usano delle chiamate JNI per sfruttare le librerie native installate sul sistema. Jogl è quella "più avanzata" (supporto totale a OpenGL 1.4 con shaders CG ecc...). Il bello è che è come usare le OpenGL (salvo la finestra e la gestione degli eventi-utente che resta AWT-Swing), per cui puoi usare tutti i tutorial che trovi (nehe OpenGl per citarne uno meritevolmente noto). Hai due enormi interfacce (GL e GLU), attraverso le quali invochi dall'ambiente Java le istruzioni OpenGL native, se conosci OpenGL il feeling è immediato.
Il brutto è che...devi conoscere le OpenGL :D. Java3D è molto diverso, è più una versione "lego", carichi un file obj-wavefront, lo "attacchi" ad un oggetto "appearance", infili nel tuo "VirtualUniverse" due luci e il gioco è fatto. Partendo da OpenGL devi ricostruire il framework da 0.
Sun ha intenzione di rilasciare una sorta di Jogl "ufficiale", aggiornato alla versione 1.5 di OpenGL, che andrà ad infilarsi nel package javax.media del JDK.
Qui sotto c'è il codice del "mio" framework OpenGL-Jogl (diciamoci la verità, sotto sotto ogni programmatore ha la sua finestra OpenGL su cui paciuga lontano da sguardi indiscreti).
Sono 8 classi che non rappresentano nemmeno l'inizio di un framework, è un lavoro lungo...va preso come un hobby :D
Ciao.
grazie PGI, sei veramente scomodo :D
allora mi butto su jogl e joal, chissa ke ci salterà fuori....
Ciauz
Originariamente inviato da PGI
La storia è questa: Sun esce con Java3D nel 98 (o giù di lì),
...
di un framework, è un lavoro lungo...va preso come un hobby :D
Ciao.
Fico
:sbavvv:
hai fatto qualche cosa in Java3D ?
grazie
Milioni di anni fa avevo fatto un orrendo tool per l'animazione scheletrica in Java3D, ma tra un format e l'altro credo di aver perso tutto.
Mi è rimasto un "motore" per particelle che a suo tempo infilai in un applet (con annesso codice sorgente). Java3d 1.3.1 + Java plug-in 1.4 o sup.:
flare_sample (http://web.infinito.it/utenti/t/triboniano/flare.html)
E' lo stesso dei tutorial Nehe, ma sul sito mancava la "traduzione" in Java3D (c'è quella per jogl mi pare).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.