The Beginning
Ein Blog. Mein eigener Blog. Schon seit die ersten Vorläufer der Web 2.0 Bewegung entstanden, der Wunsch, sich der Welt mitzuteilen. Doch stets stellte sich die Frage: Worüber willst du schreiben? Nur ein weiterer Blog, der das alltägliche beschreibt? Ein weiterer Blog, um deine Meinung weiterzugeben? Die Geschehnisse der Nachrichten kommentieren?
Nein, das war es nicht, was ich wollte. Doch nun ist es soweit. Mein eigener Blog. Wovon soll er handeln, dieser Blog? Nun ja, kurz und knapp:
Die Entstehung einer 3D Engine
Schon vor einigen Jahren begann ich mich in die Grafikprogrammierung einzuarbeiten, zuerst DirectX, dann OpenGL. Damals, als ich noch nicht wirklich viel Erfahrung in C/C++ hatte, erschien mir dies allerdings viel zu schwer. So stellte ich meine Arbeiten ein und widmete mich anderen Dingen.
Einige Jahre später, mein Studium der Informationstechnik hatte begonnen, fasste ich den Entschluss, dieses Thema erneut anzupacken. Auslöser dieses Willens war damals Second Life, von dessen Idee, eine Welt im Spiel selbst zu gestalten, ich begeistert war. “Eine eigene 3D Engine schreiben, das wäre es”, dachte ich mir.
Die Gedanken sollten sich bald in Realität abbilden, also beschäftigte ich mich wieder mit diesem Thema. Doch im Gegensatz zu früher hatten sich meine Kenntnisse in C/C++ deutlich verbessert. Ohne ein genaues Ziel vor Augen, enstanden mehrere Versuche relativ primitive Szenen darzustellen.
Erste Projekte
Irgendwann, im Kontext einer Spielerei, wollte ich ein Spiel entwickeln, mit dem Namen “Checker - The Game”. Es sollte zunächst eine Isometrische Grafik verwenden und in Java geschrieben werden. Doch aufgrund vieler scheinbar unlösbarer Problem, wurde dieses Projekt eingestampft.
Im vierten Semester meine Studiums, sollte dann im Rahmen einer Studienarbeit ein Damespiel entwickelt werden, mit ansprechender Grafik und einer intelligenten KI. Das Projekt wurde DamePlus genannt, an dessen Planung und Realisierung drei Kommilitonen sowie ich beteiligt waren. Meine Aufgabe war die Implementierung der Grafischen 3D Oberfläche mitsamt den Models. Programmiert wurde dieses Spiel in Java, die Ausgabe wurde mittels OpenGL realisiert.![]()
Die Erfahrungen, die ich in diesem Projekt sammelte, brachten mich weiter und so begann ich eine erste Version der Engine in C++ zu schreiben. Diese enthielt einen Szenegraphen, der dynamisch optimiert und ausgegeben werden konnte. Verschiedene Arten von Texturen waren möglich, Shader konnten verwendet werden und sogar ein Exporter für Blender war vorhanden. Zudem kamen einige Versuche, eine Kollisionserkennung einzubauen sowie ein Primitives In-Game-Menu anzuzeigen.
Das ganze sollte vielmehr nur eine Machbarkeitsstudie darstellen und war niemals dafür gedacht vollendet zu werden (zumindest nicht im Ganzen). So wurde das Projekt nach einigen Monaten Entwicklungszeit eingestellt und die ersten Ideen für eine “richtige” Engine gesammelt. Dies war die Geburtsstunde von CTGame.
CTGame ist der Arbeitstitels des aktuellen Projektes. Die Abkürzung CT hat keine besondere Bedeutung, dient nur als Platzhalter für einen späteren Titel. Das Projekt beinhaltet zunächst die Entwicklung einer vollständigen 3D Engine, die anschließend - hoffentlich mit der Unterstützung begabter Künstler - in einem funktionsfähigen Spiel verwendet werden soll.
Ich halte nicht viel davon, übermäßig zu Planen, da sowieso alles immer anders kommt als geplant. Daher habe ich mir nur einige Anforderungen aufgeschrieben, die nach und nach umgesetzt werden.
Anforderungen an die Engine
- Vollständig Skriptierbar (mit einer Sprache, ähnlich Java), inkl Garbage Kollektor
- Erweiterbar, d.h. es muss einfach möglich sein, einzelne Teile der Engine zu ersetzen oder neue Teile hinzuzufügen
- Integrierter Editor
- Plattformunabhängig
- Sound
- Grafik
- Inputsystem
- Prozedurale Texturen / Meshes
- BSP-Trees
- OCT-Trees
- Programmiersprache: C++
- …
Dieser Blog soll also nach und nach über die Entwicklung von CTGame berichten und Einblicke in die darin verwendeten Techniken gewähren.
Vielen Dank für euer Interesse an diesem Thema. Scheut euch nicht Kommentare abzugeben oder Fragen zu stellen.
cheers.
Kein Kommentar
No comments yet
Leave a reply