TU RACER


CG 2/3 Übungen, SS 2005



Abschnitt Nr. 2


Carnogursky, Martin, 935, e0025745, martinc@gmx.net
Idziorek, Michal, 935, e0026364, m.i@gmx.at
Zrnka, Susanne, 935, e0002392, Susanne.zrnka@gmx.at



Programmstart
Wie wird unser Programm zum Laufen gebracht?
Unser Spiel wird durch das Ausführen der Datei ./bin/TURacer.exe gestartet. Vor dem Start besteht die Möglichkeit, mit einem Texteditor Änderungen in der Datei ./bin/turacer.ini vorzunehmen. Es können dort verschiedene Dinge wie zum Beispiel Fullscreen und Splitscreen modus einschalten, Soundeffekte verwenden bzw. nicht verwenden, Hintergrundmusik ein- oder ausstellen u.v.m eingestellt werden. Die Datei enthält auch Kommentare, die die Funktionen der einzelnen Parameter erklären. Mit ./bin/level2.bat kann man auch ein alternatives .ini File laden, das ein anderes Level lädt.

Hintergrund-Story
Das Spiel spielt in naher Zukunft. Die Studiengebühren sind ins Unermessliche gestiegen. Die Studenten fahren nun waghalsige Straßenrennen, um sich damit ihre Weiterbildung zu finanzieren. Nur die schnellsten und besten werden sich auch das Studium leisten können...

Storyboard
(JPG)
Unser Storyboard besteht aus 5 Bildern, die die Hauptschlüsselszenen beschreiben. Das 1. Bild zeigt den Start des Rennens aus der Außenansicht. Das gerade am Rennen teilnehmende Auto steht auf der Startlinie, bereit sich in den Kampf zu stürzen. Das 2. Bild zeigt die Szene aus der Fahrerperspektive. Man sieht vom Fahrersitz aus den Straßenverlauf und hat einen Überblick über die Objekte und Kurven im Vorfeld. Die 3. Schlüsselszene zeigt die Einfahrt ins Ziel aus einer vordefinierten Kameraansicht. Danach kann man die Bestzeiten aller Einzelrennen auf einer Highscore Tabelle, die das 4. Bild zeigt, begutachten. Optional steht ein Replay-Modus zur Verfügung, mit dem man sich das gerade gefahrene Rennen noch mal ansehen kann. Eine Szene daraus sieht man in Abbildung 5. Während des Rennens begegnen einem Bäume und Gebäude. Straßenlaternen leuchten den Straßenverlauf aus. Einzig sich bewegendes Objekt wird das Fahrzeug sein, das man durch Drücken der Cursortasten steuert.

Kurzbeschreibung des Programms
Am Beginn des Spiels ist ein Auto zu sehen (in unserem aktuellen Spiel ein BMW), das am Start steht. Mittels der Tastatur (Tastenkombination siehe Steuerung) kann das Auto gesteuert werden. Ziel ist es, die vorgegene Strecke dem Straßenverlauf nach in möglichst kurzer Zeit abzufahren. Vorerst sieht man auf der Strecke nur bunte Objekte, an deren Stelle dann eine echte Umgebung der TU implementiert werden soll. In einer oberen Leiste wird die momentane Geschwindigkeit, die Umdrehungszahl, die Zeit und die Runden angezeigt. Standard ist der Fullscreen Modus für einen Spieler. Es gibt aber auch einen Splitscreen Modus, mit dem 2 spieler dann gegeneinander fahren können. Dieser wird - wie oben bereits erwähnt wurde - durch das Modifizieren der Datei ./bin/turacer.ini eingeschaltet.

Steuerung
Zur Steuerung des Autos werden verschiedene Tastenkombinationen verwendet, die in der folgenden Tabelle aufgelistet sind:

Player 1Player 2
Gasiw
Bremseks
Linksja
Rechtsld
Kameraoe --> Umschalten in die verschiedenen Ansichts-Modi
Rückgang uq
Exitxx

Kurzbeschreibung der Implementierung & Umsetzung

Datenstrukturen:
Die Klasse CModel kapselt mehrere CGeometry instanzen. Jede CGeometry instanz repräsentiert ein 'Objekt' mit einem Namen, textur_id, den einzelnen Eckpunkten, Normalkoordinaten, Texturkoordinaten,...
Die Klasse C3DLoader ladet die ASCII Files in CModel instanzen. Unser Export Script ./src/max/ascii_export.ms kann die ASCII Dateien aus 3ds max exportieren.

Kameramodell:
Es besteht die Möglichkeit zwischen mehreren Kameraperspektiven umzuschalten. Diese sind entweder mit gluLookAt oder mit glTransform & glRotate realisiert.

Texture mapping:
Das Texturieren aller Objekte ist möglich. Die Texturkoordinaten müssen dazu in 3dsmax definiert werden.

Beleuchtung/Materialien:
Wir haben nur eine Lichtquelle und haben die Materialien lediglich auf die Farbparameter reduziert. Allen Objekten sind Normalvektoren zugewiesen. Es sind sowohl vektoren für die Fläche als auch für gekrümmte Flächen vorhanden. Im Moment werden aber nur die ersten zugewiesen.

Beleuchtung und Texturierung der Objekte
Wir haben nur eine Lichtquelle verwendet und zwar eine Punktlichtquelle. Bei dieser Lichtquelle wird von einem lokalisierten Punkt aus das Licht ausgestrahlt . Die Materialien sind lediglich auf die Farbparameter reduziert. Allen Objekten sind Normalvektoren zugewiesen.
Das Texturieren aller Objekte ist möglich - dazu müssen nur die Texturkoordinaten in 3dsmax definiert werden.

Dateistruktur
./binWin 32 Binaries
./bin/audioAudiofiles
./bin/modelsASCII Models
./bin/texTexturen
./bin/logLog Ausgabe
./srcC/C++ Sources
./src/max3DS Max export script
./docDokus

Features

  • Loader für eigenes ASCII Format
  • Exportscript für 3ds Max
  • Fahrphysik (2D)
  • Splitscreen Modus
  • einfache Kollisionsabfrage
  • Skybox
  • Partikelsystem (Auspuff)
  • Soundausgabe

    Libraries

  • glut
  • fmod (http://www.fmod.com)

    Quellen

  • http://nehe.gamedev.net/
  • http://home.planet.nl/%7Emonstrous/tutcar.html
  • http://phors.locost7.info/contents.htm
  • http://little3d.free.fr/ressources/jgt%20Fast,%20Minumum%20Storage%20Ray-Triangle%20Intersection.htm