OpenGL mit Java oder C++

Michael90

Grünschnabel
Hallo Leute,

ich möchte mich gerne der OpenGL-Programmierung annähern. Nach einigem Googlen haben ich erfahren, dass es generell zwei Möglichkeiten gibt (die für mich in Frage kommen).
OpenGL mit Java (JOGL)
OpenGL mit C++ (glut)

Meine Frage ist jetzt: Welchem der beiden Parteien sollte man sich eher anschließen? Ich bin ja mehr der Java-Typ, C++ ist nicht ganz so tiefgreifend bei mir. Was spricht gegen / für Java / C++.
Ich weiß, dass C++ eher der "Standard" ist.
Ich möchte jetzt hier wirklich nur Fakten haben und nicht nach dem Motto : C++ ist besser / Java ist besser. Ich bin mir darüber bewusst, was C++ und Java können und wo dort die Unterschiede liegen. Aber inwiefern werden verschiedene Sachen benötigt?

PS: Was ist eigentlich der generelle Unterschied zu DirectX ... Ist es vllt sinnvoll, das zu lernen im Hinblick auf Spieleentwicklung (natürlich im bescheidenen kleinen Rahmen)?

Für hilfreiche Kommentare bin ich immer offen.

Vielen Dank.

Gruß ;)
 
Zuletzt bearbeitet:

sheel

I love Asm
Hab nicht wirklich viel Infos, aber:
Einer der wichtigsten Gründe, warum C/++ die Stammsprache ist, ist sicher die Ausführgeschwindigkeit, die Java (trotz ständiger Verbesserungen) wohl nie erreichen wird.
Bei 3D-Spielen macht sich das immer bezahlt

Hmmm...mehr fällt mir zurzeit dazu nicht ein :D

Für OpenGL spricht seine Plattformunabhängigkeit, mit DX wärst du an Windows gebunden.
Während OpenGL sich nur auf die Grafik konzentriert, gibts bei DX aber auch gleich den Soundteil etc dazu, ohne weitere Bibliotheken verwenden zu müssen.
 

Michael90

Grünschnabel
Also würdest du eher auf C++ & OpenGL setzen****

Hat jemand noch andere Gründe / Argumente für oder gegen eine dieser Möglichkeiten?
 

ComFreek

Mod | @comfreek
Moderator
Hallo,

vielleicht einer, dass du nur sehr kompliziert mit Java auf den Speicher zugreifen kannst.
Ich weiß es nicht, aber ich denke mal, dass es außerdem auch mehr Bibliotheken für C/C++ gibt.

Aber ich denke, Java verwendet man hauptsächlich für GUI's oder irre ich mich?
Oder kennt jemand ein komplexeres 3D-Spiel, das mit Java umgesetzt ist?

C/C++ wird im Gegensatz auch viel für GUI's und Spiele verwendet.


Kannst du eigentlich die grundlegenden Dinge von C++?
Wenn nicht, würde ich erstmal die einigermaßen lernen. Sonst kopiert man nur die Dinge von Tutorials und weiß nicht, was die überhaupt machen.



Edit: Bei Google habe ich folgende Seite gefunden (in englisch): Java Vs C++ From Being A [Anfänger] To Writing A Full Out MMORPG
(Ich habe da Anfänger hingeschrieben, weil der Filter hier das Wort "n o o b" wegfiltert)

Falls du dich für C++ entscheidest, dann würde ich aber nicht mit der WinAPI die Programme schreiben. Da es sonst wieder nur auf Windows läuft. Stattdessen würde ich dir ein plattformübergreifendes GUI-Framework empfehlen, z.B. wxWidgets.
Da gibt es auch ein Interface für OpenGL. Das kannst du dir ja mal anschauen.
 
Zuletzt bearbeitet:

sheel

I love Asm
Kannst du eigentlich die grundlegenden Dinge von C++?
C++ ist nicht ganz so tiefgreifend bei mir
Die Grundlagen werden wohl da sein

Hallo,
Oder kennt jemand ein komplexeres 3D-Spiel, das mit Java umgesetzt ist?
Ich kenn überhaupt kein Java-3D-Spiel :D

Also würdest du eher auf C++ & OpenGL setzen
Auf jeden Fall; ist aber eine andere Situation bei mir.

In C/C++ kenn ich mich ca. zehnmal so gut aus als in Java
(bin in Java noch dazu ziemlich "eingerostet", und brauch zurzeit wahrscheinlich sogar zum Datei einlesen die Doku)

Über die Verwendung von DirectX kann ich so gut wie nichts sagen; hab mich bisher nur theoretisch damit beschäftigt.
Der Plattformunabhängigkeit zuliebe hab ich damit gar nicht erst angefangen, sondern gleich auf OpenGL gesetzt.

Für den Sound etc gibts genug andere, ebenso plattformunabhängige Bibliotheken, das sollte kein Problem sein
 

Michael90

Grünschnabel
Hey,

stimmt, da sind einige wahre Dinge bei.
Ja Grundlagen sind in C++ auf jeden Fall vorhanden. Das mit dem Speicherzugriff stimmt auch. Ich war mir nur nicht sicher, ob man das überhaupt direkt benötigt, da ja eh alles auf eine GUI baut, was mich eher Richtung Java verwies.
Aber vorallem des Supports / Hilfe wegen werde ich mich wohl doch eher Richtung C++ bewegen müssen. Na gut, kann ja nicht schlecht sein in fremden Gewässern zu fischen.

Jetzt die Frage:
Welche Entwicklungsumgebung verwendet ihr oder könnt ihr empfehlen?
 
Zuletzt bearbeitet: