Wieder einmal habe ich mich für die Spieleentwicklung unter Java interessiert und daher etwas zu den Möglichkeiten in Java recherchiert. Obwohl ich mich ursprünglich für ein 2D Spiel interessiert habe, dachte ich mir, schaust du dir die 3D Möglichkeiten unter Java mal an. Schließlich sollte es möglich sein ein 2D Spiel auch unter 3D zu entwickeln. Letzten endes nachher eine Frage der Perspektive. Auch schien mir die 2D API unter JDK 1.4 nicht sonderlich viel Nutzen aus Grafikbeschleunigern zu ziehen.
Vor einigen Jahren hatte ich einen Blick auf die Java3D API von Sun geworfen und musste aber feststellen, dass sich seit dem viel geändert hat. Die Java3D API wird nicht mehr supported und ist auf dem Stand von OpenGL 1.4 stehen geblieben. Dafür gibt es jetzt viel mehr Opensource APIs, die ein Binding von Java zu OpenGL anbieten.
Tatsächlich haben sich einige Leute sogar die Mühe gemacht, die Quake2 Engine auf JOGL zu portieren. Dies zeigt auch den aktuellen Stand: Während seit Quake2 die 3D Welt riesige Revolutionen hinter sich gebracht hat und HalfLife2 nicht mehr mit älteren Spielen zu vergleichen ist, hängt Java noch ein halbes Jahrzehnt hinterher.
Dennoch scheint mehr Bewegung in die Java 3D Welt gekommen zu sein. Neben JOGL gibt es da noch die API LWJGL (Lightweight Java Game Library), welche ebenfalls ein OpenGL Binding zur Verfügung stellt, zusätzlich aber auch eine Unterstützung für OpenAL (Open Audiolibrary) und damit für 3D Sound besitzt. Ein erstes kommerzielles Spiel wurde bereits damit entwickelt. Einer der Kandidaten, GL4Java API, ist bereits auf der Strecke geblieben: Ähnlich wie für die Java3D API wurde der Support bereits eingestellt. Ein weiterer Wrapper, welcher die darunter liegende OpenGL API kapselt ist die MonkeyEngine, welche JOGL, LWJGL und Java2D als darunter liegende Rendering Engine unterstützt. Alle APIs besitzen eindrucksvolle Demos auf ihren Homepages, jedoch schein ein Teil dieser Demos bei mir nicht zu laufen, obwohl ich eine GForce4 Grafikkarte am Rechner habe. Die Geschwindigkeit der Demos kann sich sehen lassen, aber nicht mit aktuellen Spielen mithalten. Auch für die Java2D API gibt es Hoffnung, denn unter 1.4 kann schon eine kleine Optimierung auf Basis von OpenGL gemacht werden: Mit der JVM Option “-Dsun.java2d.opengl=true” kann die OpenGL Pipeline aktiviert werden und ab 1.5 ist sogar eine neuere und noch schnellere OpenGL Pipeline eingebaut.

