PDA

View Full Version : Quale libreria per gioco 3d multipiattaforma?


xwang
04-10-2008, 16:54
Ciao a tutti,
avrei una curiosità: volendo realizzare un gioco multi piattaforma (intendendo che lo stesso codice sorgente viene compilato per diverse piattaforme (linux e windows ed eventualmente mac os)) su quali librerie ci si potrebbe basare (le direct x no perchè sono solo per windows, vero)? Ce ne sono di open source? Una libreria gpl può essere usata per fare un gioco chiuso?
Infine ultima domanda che non c'entra nulla, come si fa a fare uno scheduler che chiami una funzione ogni diciamo tot millisecondi?
Grazie,
Xwang

cionci
04-10-2008, 17:07
OpenGL sicuramente, poi puoi usare vari wrapper che ti possono semplificare il lavoro a seconda del linguaggio di programmazione che scegli.
Per il linguaggio, imho Java o al limite C++. Ovviamente ti consiglieranno Python :ciapet:

xwang
04-10-2008, 17:14
Ok per la parte grafica, ma per il suono, la gestione di joystick, tastiere e il mouse e per il networking, c'è qualcosa?
Xwang

cionci
04-10-2008, 17:28
Ok per la parte grafica, ma per il suono, la gestione di joystick, tastiere e il mouse e per il networking, c'è qualcosa?
Xwang
Solitamente nei wrapper OpenGL trovi anche librerie per la gestione di tastiera, mouse e joystick, almeno per il C++. Per Java dovresti essere a posto con quello che ti offre il framework.
Sia per Java che per C++ la parte di networking è, quasi per il C++, standard.

I wrapper OpenGL te li devi provare, ce ne sono a decine.
Per Java puoi usare:
http://lwjgl.org/
Java3D (supportato ufficialmente, ma non è un wrapper OpenGL)

Per C++:
SDL
Irrlicht (questo è un vero e proprio motore 3D)

Per l'audio, se non è supportato dal motore grafico, puoi usare OpenAL.

xwang
04-10-2008, 17:31
Solitamente nei wrapper OpenGL trovi anche librerie per la gestione di tastiera, mouse e joystick, almeno per il C++. Per Java dovresti essere a posto con quello che ti offre il framework.
Sia per Java che per C++ la parte di networking è, quasi per il C++, standard.

I wrapper OpenGL te li devi provare, ce ne sono a decine.
Per Java puoi usare:
http://lwjgl.org/
Java3D (supportato ufficialmente, ma non è un wrapper OpenGL)

Per C++:
SDL
Irrlicht (questo è un vero e proprio motore 3D)

Per l'audio, se non è supportato dal motore grafico, puoi usare OpenAL.

Wow ma sono tutti multipiattaforma? Pensavo che openAl fosse solo per linux!!!
Xwang

cionci
04-10-2008, 17:44
Certo, è multipiattaforma.
Te ne ho indicata solo qualcuna, ma ce ne sono anche altre, devi solo metterti lì e provare ;)

banryu79
06-10-2008, 07:46
I wrapper OpenGL te li devi provare, ce ne sono a decine.
Per Java puoi usare:
http://lwjgl.org/
Java3D (supportato ufficialmente, ma non è un wrapper OpenGL)

Se non ricordo male Java3D "wrappa" anche OpenGL tramite JOGL.

insane74
06-10-2008, 07:53
OGRE 3D: http://www.ogre3d.org/
ci fai tutto. ;)

cionci
06-10-2008, 08:44
OGRE 3D: http://www.ogre3d.org/
ci fai tutto. ;)
Però se non sbaglio non è portabile su Linux.

insane74
06-10-2008, 09:35
Però se non sbaglio non è portabile su Linux.

in che senso?
ci sono un sacco di giochi linux che usano OGRE3D...

cionci
06-10-2008, 09:47
in che senso?
ci sono un sacco di giochi linux che usano OGRE3D...
Sì, in effetti è compatibile, avevo guardato male.

insane74
06-10-2008, 09:57
Sì, in effetti è compatibile, avevo guardato male.

anche i moderatori sbagliano! :D ;)

cmq è un "mondo" moooolto vasto.
basta dare un occhio alla documentazione e si capisce che c'è un sacco di roba da studiare prima di riuscire a combinare qualcosa di decente! :read:

variabilepippo
06-10-2008, 10:26
OGRE 3D: http://www.ogre3d.org/
ci fai tutto.


OGRE è un ottimo 3D engine, ma per "farci tutto" (nell'accezione di xwang: "Ok per la parte grafica, ma per il suono, la gestione di joystick, tastiere e il mouse e per il networking, c'è qualcosa?") bisogna integrarlo con diverse librerie esterne o scegliere uno dei GDK basati su OGRE. ;)