Projektdokumentation
Programmierung grafischer Systeme
an der
Fachhochschule Schmalkalden
fhS
Fachbereich Informatik
Prof. Dr. Ralf Böse
Eingereicht von
Torsten Ehrhardt Andre´ Großenbach Stefan John
Matrikel-Nr.: 231258 Matriktel-Nr.: 230180 Matrikel-Nr.: 230252
ceenen@gmx.net andre@mess-regel.de s.john@stud.fh-sm.de
Schmalkalden, 08.03.2007
Dokumentation Programmierung grafischer Systeme
Vorstellung des Entwicklerteams
Aus dem großen Erfolg des Kinofilms „Fluch der Karibik“ entstand die Idee, diese Atmosphäre in einem Spiel zu bannen. Aus punktuellen Versuchen entwickelte sich im Fortgang des Projektes ein iterativer Entwicklungsprozess, in dessen Verlauf weitere Erkenntnisse gewonnen und Features programmiert wurden.
Muttels Multitexturingverfahren mit zwei sich gegeneinander verschiebenden Texturen, die durch Sinus- und Kosinuskurven einen Welleneffekt erzeugen, wird der Effekt von Wasser simuliert. In Verbindung mit der sich drehenden Kamera wirkt die Szene sehr lebendig und bewegt.
Das Schiff wird durch inverse Skalierung an der X-Z-Ebene unter Wasser noch einmal gezeichnet und erzeugt dadurch einen Spiegeleffekt. Auch die Kanonenkugel spiegelt sich auf diese Art und Weise im Wasser.
Das Schiff wird auf die X-Z-Ebene projiziert und der Stencil Buffer damit geschrieben. Dann wird ein schwarzes Rechteck darüber gezeichnet und nur an den Stellen, an denen der Buffer geschrieben wurde, wird das Rechteck sichtbar. Dies erzeugt einen Schatten.
Über ein eigenes auf Sockets basierendes Netzwerkprotokoll ist eine Vernetzung von multiplen Instanzen möglich, um so eine Interaktion zwischen mehreren Mitspielern zu erzeugen (Multiplayer). Dabei werden sowohl die Bewegungen, als auch Position von Schiff und Kanonenkugel übertragen und ermöglichen so, einen unerbittlichen Mehrspieler-Schiffskampf, bei dem die Schiffe auch versenkt werden können.
In Maya wurden einige Modelle (Insel, Bäume, Häuser) modelliert und über einen RTG-Loader in die Szene eingefügt.
Der Spieler steuert das Schiff über Tastatureingaben. Über die Pfeiltasten kann das Schiff bewegt werden. Es sind Vorwärts- und Rückwärtsfahrten, sowie eine Veränderung des Richtungsvektors möglich.
Über die Mausposition ist eine Drehung der Szene möglich. Das Mausrad ermöglicht ein stufenloses heran- und herauszoomen.
Abbildung 1: Tastaturschema
Um der Szene einen lebendigen Charakter zu verleihen, wurden die Bäume, die sich auf der Insel befinden durch Rotationsanimation zum Leben erweckt.
Das Schiff wiegt auf den Wellen. Jedes Schiff und jeder Baum hat seine eigene Bewegung, so dass sich nicht alle Objekte gleichmäßig bewegen.
Die Sturmkonstante steuert die Stärke der Wellen.
Bei Betätigung der Leertaste wird eine Kanonenkugel abgefeuert, die eine ballistische Flugparabel beschreibt. Erkennt die Kollisionsdetektion ein Auftreffen der Kugel auf der Wasseroberfläche, wird eine Wellenausbreitungssimulation initiiert. Grafisch wird dies durch ein animiertes, skalierendes Sprite dargestellt. Die Textur wurde in Paint erstellt und mit Photoshop grafisch aufgewertet.
Bei Einschlag der Kugel in das gegnerische Schiff, sinkt das getroffene Schiff. Durch Betätigung der Taste ‚Q’ kann das Schiff zurück auf die Wasseroberfläche gesetzt werden.
Beim Starten des Spieles wird eine Hintergrundmusik abgespielt.
Das Abfeuern der Kanonenkugel wird akustisch unterlegt.
Auch das Auftreffen der Kugel auf der Wasseroberfläche wird durch Soundeffekte bereichtet.
Die Immersion des Spiels wird damit enorm gesteigert.
Um eine Tiefenwirkung zu erzielen, wurde blauer Nebel eingesetzt, der eine atmosphärische Blaufärbung simuliert.
Auch Wolken durften im grafischen Ensemble der Effekte nicht fehlen.
André Großenbach Art Director,
Asset Manager, Base Engine Programmer,
Chief Information Officer CIO
Torsten Ehrhardt Lead Programmer, Network Programmer, Project Manager
Stefan John Technical Director, Lead Programmer, Chief Executive Officer CEO