header
Effizienz und Leidenschaft!

Der Traum von der eigenen kleinen Spiele-Engine
und wie er wahr werden kann.

Grosses Logo

PuzzleStudios Spiele-Engine

Alles hat mit einer einfachen Idee und dem Reiz etwas eigenes zu Entwickeln begonnen. Viele Stunden habe ich in meine Spieleengine investiert - mit recht großem Erfolg! Zuerst musste natürlich eine einfache 3D-Engine entwickelt werden - Überlegungen zur Struktur der 3D-Objekte wurde viele gemacht. Letztendlich hat sich ein sehr effizientes Weltsystem entwickelt, welches die Map verwaltet, lädt und speichert.

Eine komplette 3D-Welt per Code zu erzeugen ist fast unmöglich. Deswegen wurde simultan zur Engine ein Welteditor entwickelt. Er besitzt sein eigenes Levelformat, welches alle Arten von Ressourcen (Geometriedaten, Texturen, etc.) in einer einzigen Datei speichert.

Puzzle-Creator

Der Puzzle-Creator ist der Welteditor der Engine. Er erlaubt ein schnelles und einfaches Konstruieren der Welt aus Brushes.
Geplant ist ein Modelloader, welcher 3D-Character importieren kann und das plazieren dieser im Level ermöglicht. Weiterhin wird an einem Licht- und Schattensystem gearbeitet, welches die Szene noch besser ausschmückt. Hier gibt es mehr zum PuzzleCreator!

Welt-System

Ein wichtiger Hauptbestandteil der Engine ist das Welt-System. Das Welt-System kümmert sich um das Laden und Speichern der Map in einer einfach verketteten Liste. Elemente werden also nicht in einem längeren Array (ein Datenfeld), sondern in einer dynamischen Struktur gespeichert. Diese Art Daten zu speichern, ermöglicht (theoretisch) unendlich große Maps. Auch Texturen werden von dem Welt-System übernommen und dynamisch gespeichert.

Render-Engine

Das Rendersystem der Engine teilt sich in 2D und 3D Render auf. Mit dem 2D-Render können Primitiven auf den Bildschirm gezaubert werden, GUI-Elemente gerendert und einfache Arcadegames umgesetzt werden. Der 3D Render kann einzelne Modelle, Engine-3D-Objekte und sogar komplette Welten darstellen, welche zuvor mit dem PuzzleCreator gebaut worden sind.

Zurzeit wird die Engine noch um einen effizienteren Scenemanager sowie ein Shadersystem erweitert. Beide werden die Performance der Renderengine anheben und mehr Spezialeffekte ermöglichen.

Asset-Loader

In einem Computerspiel werden eine Vielzahl verschiedener Assets benötigt. So müssen Texturen, aus verschiedenen Grafikformaten wie BMP und TGA, 3D-Character und Sounds importiert werden. Die PuzzleStudios Spieleengine bietet einen großen Assets-Loader, welcher all diese Dinge in eigens dafür vorgesehene Strukturen lädt. Der Programmierer erstellt nur noch eine Instanz des Loader und schon wird ihm die meiste Arbeit abgenommen. Das ist effizient und spart unglaublich an Zeit.

Treffererkennung

Für die Implementierung des Treffererkennungs-Systems habe ich mir bewusst viel Zeit genommen. Ich wollte auf den Einsatz eines Box-Systems verzichtet, da es unter Umständen zu ungenau ist und fehlerhafte "Treffererkennung" ausgeben kann. Deswegen wurde ein "Color-Picking" System entwickelt. Es ist von der Performance her nicht langsamer als die herkömmliche Box-Methode, bietet jedoch Pixelgenaue Treffererkennung und Objektanwahl im dreidimensionalen Raum.