header

Inhalt Programmierung

Programmierung
Tutorials
  • C++ Einsteigertutorial
  • 3D-Pickingsystem
Paper & Documents

Die Welt der Programmierung...

..oder besser: "Wie man Software zum Leben erweckt!"

In meiner freihen Zeit beschäftige ich mich die meiste Zeit mit der Programmierung an meiner eigenen SpieleEngine. Wieso sollte man in der heutigen Zeit selbst noch eine Spieleengine entwickeln? Der Grund für mich, eine eigene Engine zu entwickeln, war die Planung verschiedener Softwarekomponenten und die Integration und Kombination dieser.

Erst bei der Erstellung fällt die Komplexität auf, die sich hinter einem solchen Projekt verbirgt. So muss man sich selbst Methoden implementieren, um Bilder als Texturen zu laden - und das für jedes Dateiformat (bmp, tga, usw.) aufs neue. Gleiches muss natürlich auch für Soundformate (z.B. wav) und für Modelle (3ds, md2) durchgeführt werden. Alleine der Code um nur ein paar wenige dieser Dateiformate zu laden kann leicht mehrere hundert Zeilen Programmiercode überschreiten.

Wenn man erst einmal so weit ist, dass alle Objekte in einer 3D-Umgebung geladen und verwaltet sind, dann beginnt das Rendering. Mit Rendering bezeichnet man den Vorgang, indem die Grafikkarte die Levelgeometrie berechnet und auf dem Bildschirm ausgibt. Auch hier müssen selber Methoden implementiert werden um z.B. ein geladenes 3D-Modell auf dem Bildschirm darzustellen.

Bei der Verschiebung, Rotation und Skalierung der Objekte sind mathematische Kenntnisse im Bereich Matrizen unbedingt vorausgesetzt - günstiger jedoch ist sogar eine Umsetzung der Rotationen durch Quaternionen (komplexe Zahlen). Bei der Interaktion von Objekten und deren Kollision ist ein Grundverständnis der Newtonschen Physik von Vorteil - auch wenn diese Dinge erarbeitet werden können.

Insgesamt kann ich sagen, dass mich das Projekt trotz seiner Komplexität jedesmal aufs neue fesselt. Natürlich gibt es noch viel zu tun, auf dem langen Weg zur eigenen kompletten Spieleengine.

Wenn du mehrüber mein Projekt "Die eigene Spieleengine" erfahren magst, dann klicke bitte hier. Weiterhin möchte ich auf dieser Seite in Zukunft auch Tutorials anbieten, um den Einstieg in die C++ Programmierung zu vereinfachen und mögliche Lösungsansätze für "alltägliche" Probleme von Spieleprogrammmieren zu präsentieren.