Making of J-Type: Tag 5

Allmählich entwickelt sich J-Type zu einem vollwertigen Spiel: Der Titelbildschirm steht und durch die eingebundenen Soundeffekte und Hintergrundmusik wirkt alles gleich viel lebendiger.

Einmal mehr haben sich die Vorteile ausgezahlt, dass ich mich für eine 3D Engine zur Verwirklichung meines Spiels entschieden habe: Ich brauchte einfach nur mit der Kamera an die 3D Modelle heranzuzoomen und sie in bestimmten Winkeln abzufotografieren. Die Screenshots importierte ich in Photoshop und habe den Titelbildschirm so quasi in Form einer Kollage zusammengebaut und das J-Type Logo darübergesetzt. Das Ergebnis:

Abbildung: Der fertige Titlescreen

Nächster Schritt waren die Soundeffekte und Musik: Die Schüsse und Explosionen liegen bereits im WAV-Format vor und benötigen keine weitere Behandlung, doch die Musik aus meinem längst vergangenen DOS-Spieleprojekt "Wargate" liegt im ScreamTracker-Format vor, welches ich mit XNA nicht verarbeiten kann. Sämtliche Hintergrundmusiken habe ich also zunächst mit dem ModPlug Player zu WAV-Dateien konvertieren müssen.

Das Einfügen von Musik und Sound in XNA ist relativ kompliziert: Während ich es von meinen Ausflügen in die Spieleprogrammierung mit C++ gewohnt war, Musik und Soundeffekte dynamisch im Quelltext zur Laufzeit laden zu können, müssen sämtliche Sounds mit dem "Microsoft Cross-Platform Audio Creation Tool" (kurz: XACT) in eine Kombination aus "Wave Banks" und "Sound Banks" sowie eine Projektdatei kompiliert werden. Sind diese erstellt, fügt man sie dem Visual Studio Projekt hinzu und dort werden sie von der XNA Content Pipeline erneut für die endgültige Zielplatform kompiliert, in meinem Fall also Windows. All dies kostet Geduld und Zeit, denn hat man im XACT Projekt eine kleine Option vergessen, wie z.B. dass die Musik sich permanent im Loop wiederholen soll, so müssen alle Dateien erneut kompiliert, in das Visual Studio Projekt eingefügt und schließlich auch dort wieder für die Zielplattform kompiliert werden.

Die Zeit wird nun langsam knapp und der Contest nähert sich bereits seinem Ende: Morgen folgen das Intro und die Credits und ich muss mich um die Fertigstellung des ersten (und vorerst aus Zeitgründen leider einzigen) Levels kümmern.

In diesem Sinne, bis bald! :-)


Making of J-Type: Tag 4

Der vierte Tag stand ganz im Zeichen der Kollisionsabfrage. Nachdem diese einfach nicht vernünftig funktionieren wollte, war ich quasi gezwungen diesen Tag zu opfern und das Spiel durch intensives Bugfixing in einen spielbaren Zustand zu bringen.

Das XNA Framework erzeugt für sämtliche geladene 3D Meshes automatisch sogenannte BoundingSpheres. Dies sind dreidimensionale Kugeln, die unsichtbar um jedes 3D Modell gelegt werden und mit deren Hilfe sich die Prüfung auf Kollision theoretisch relativ einfach gestalten sollte: Man muss lediglich den Abstand der Mittelpunkte zueinander sowie die jeweiligen Radien prüfen.

Doch die Verwaltung der BoundingSpheres nimmt XNA einem leider nicht ab, was bedeutet, dass ich dies in meiner Game Engine selber durchführen muss: Ändert sich die Position des 3D Modells, so muss jedesmal auch die Position der BoundingSphere durch sie aktualisiert werden. Weiterhin werden die BoundingSpheres nicht automatisch an die Modelgröße angepasst und ebenso wenig auf die Position des 3D Modells zentriert, so dass hier abermals "von Hand" nachgeholfen werden muss. Schlimmstenfalls befindet sich die Sphäre standardmäßig an einem völlig anderen Punkt im Level, so dass natürlich logischerweise sämtliche Schüsse durch das Modell hindurchgehen ohne, dass etwas passiert.

Um die gerade genannten Probleme aber überhaupt erst herausfinden zu können, fehlte mir schlicht und ergreifend schmerzlich eine vorgefertigte Funktion, die BoundingSpheres einfach mal auf dem Bildschirm darstellen zu können - denn diese wichtige Funktion ist nicht vorhanden. Glücklicherweise habe ich nach ausgiebigem Suchen eine entsprechende Methode gefunden, die dazu in der Lage ist, damit ich mir sparen konnte auch so etwas noch selber implementieren zu müssen. Selbstverständlich war aber auch hier ein Haken: Die Methode war für die ältere Version 1.0 des XNA Frameworks implementiert worden und musste von mir zunächst noch für die aktuelle Version 2.0 portiert werden.

Nun da ich endlich die BoundingSpheres also sehen konnte, ging das schließliche Lösen des Problems vergleichsweise schnell und J-Type ist endlich spielbar. :-)

Zusätzlich habe ich heute noch die Open Source 3D Software Blender sowie das kostenlos verfügbare Softimage XSI Mod Tool installiert, um zu versuchen ein paar 3D Modelle zu konvertieren, die ich nur in anderen, von XNA nicht lesbaren Formaten, gefunden habe. Dies erweist sich wiederum als schwierig, da gerade XSI schrecklich instabil läuft und beim Importieren von 3D Studio Dateien permanent abstürzt. Wenigstens jedoch habe ich ein ganz passables Asteroiden-Model für Blender gefunden, das ich erfreulicherweise schnell und problemlos als DirectX-Datei exportieren und in mein Spiel einbinden konnte.

Nachdem nun eine erste kleine Testversion für J-Type steht kümmere ich mich also morgen zunächst um das "Drumherum", d.h. ich werde den Startbildschirm in Photoshop anfertigen und die Hintergrundmusik und Soundeffekte einfügen.

Bis bald!


Seiten: << 1 2 ...7 8 9 10 11 ...102 103 >>
-->

Suchen

 

Google
Benutzerdefinierte Suche

Tagwolke