Erste Demo der „Spherical Engine“

Seit nun mehr als 3 Jahren entwickeln David Kronenberger und ich in unserer Freizeit an einer Spiele-Engine, mit der wir unseren Traum von einem eigenen Spiel verwirklichen wollen.

Die Grundlage der Engine ist fertig gestellt und ermöglicht eine einfach Verwaltung von einer großen Anzahl an Objekten in einer 3D-Szene. Mit verschiedene Techniken werden detaillierte Objekte nur in der Nähe angezeigt wohingegen grobe und große Objekte noch in weiter ferne erkennbar sind. Darüber hinaus gibt es die Möglichkeit, ein Objekt in den Hintergrund zu setzen, wie hier in dem Screenshot der Nachthimmel.

Die Game-Engine ist in Java geschrieben und verwendet die LWJGL-API für das Rendern mittels OpenGL. Nach dem Start mit OpenGL 1.0 basiert die Engine heute auf OpenGL 3.1 und ist auch nicht mehr abwärtskompatibel. Diese Entscheidung beruhte darauf, dass heute (so gut wie) jeder Computer mindestens OpenGL 3.3 unterstützt und dass mit der Version 3.1 einige Funktionen „deprecated“ wurden, so zum Beispiel die Funktionen der Fixed-Pipeline. Entsprechend muss alles mit Shadern implementiert werden.

Diese erste Beispielszene verifiziert die Funktionsweise der Transformation der Objekte, sowie deren Abhängigkeiten und kann hier als *.jar runtergeladen werden. Die Objekte werden in Bäumen gespeichert und die Kindknoten bewegen sich mit ihren Elternknoten mit. Gleichzeitig sind die Koordinaten der Kindknoten abhängig vom globalen Koordinatensystem und nicht vom Koordinatensystem der Elternknoten.