Letztes Jahr habe ich mit der Programmierung eines Shooter begonnen. Es gibt auch einen Vorgänger. Der Vorgänger war in 2D und verwendete meine hauseigene DirectX7 Engine. Dieses Spiel sollte nur die Möglichkeiten der giDX² Engine aufzeigen. (Ich habe auch dieses Projekt hier vorgestellt). Heute will ich euch die 3D Versionen vorstellen. Das Ziel ist es diesmal ein fertiges Spiel zu entwickeln. Und Spass soll es machen.
Das Spielprinzip ist denkbar einfach. Der Spieler steuert einen Raumgleiter gegen eine Armee von Feinden. Am Ende eines jeden Abschnitts wartet ein Endgegner auf den Spieler. Der Spieler hat für das Vorhaben nur ein Leben, mehr nicht. Das klingt jetzt wenig, aber ist es nicht. Dafür hat der Raumgleiter einen Schutzschild. Dieser kann 3 mal aufgeladen werden. Danach ist man ohne Schutz den Geschossen der Gegner ausgeliefert.
Was wäre ein Shooter ohne PowerUps. Auch bei First Strike hat man PowerUps. Diese können die Standardwaffe verbessern oder zusätzliche Raketen spendieren oder aber das Schutzschild wieder aufladen. Nur gibt es in diesem Spiel ein PowerUp für alles. Die Eigenschaften der PowerUps ändern sich durch Beschuss. Der Spieler entscheidet welches PowerUp er haben will.
Die GameEngine
Ich macht mir schon oft Gedanken darüber wie man so einen Shooter programmiert. Wann und wie steuert man die Gegner.
Im Spiel gibt es zwei Dateien für die Steuerung der Gegner. Als erstes wird die Objekt-Datei geladen. In dieser Datei sind alle Objekte mit ihren Waffen und Bewegungen gespeichert. In der Datei für einen Level ruft man nur noch die Objekte mit ihren Namen auf und definiert einen Startpunkt und einen Startzeitpunkt. Die Gegner selber werden von einem Manager organisiert. Das bedeutet, aktivierte Objekte kommen in die Managerliste. Und nur die Objekte in der Managerliste werden auf Kollision geprüft.
Alle Objekte und auch die Level werden bei Programmstart in den Speicher geladen. Wenn das Spiel einmal läuft ist es nicht mehr nötig Dateien neu zu laden.
Grafik
Leider fehlen mir noch die 3D Objekte und auch die Texturen dafür. Nur der Spieler ist texturiert. Für die Explosionen ist eine Partikelengine verantwortlich. Die Leuchteffekte werden auch von einer eigenen Engine übernommen. Erst diese Extras machen das Spiel ansehnlicher.
Video
Ich hätte jetzt ein paar Bilder hier reistellen können, aber ich denke ein Video ist aussagefähiger. Ich hoffe das ich noch dieses Jahr, am besten im Sommer, eine erste Spielbare Demo hier vorstellen kann.
Auf dem zweiten Video sind die Lenkraketen und die Nuklearbombe im Einsatz zu sehen.