Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung...

Preview:

Citation preview

3D-Spieleprogrammierung: Grundbegriffe (Scherfgen 1 -

40)

Universität zu Köln Historisch-Kulturwissenschaftliche InformationsverarbeitungSoftwaretechnologie II (Teil 1): Simulation und 3D ProgrammierungWS 2013/14 Dozent: Prof. Dr. Thallervon Mariantonietta Bellia

Inhaltverzeichnis:1. Einführung in die

Spielprogrammierung

2. DirectX und C++

3. Spiele-Engine

4. Zufallszahlen, Nachrichtschleife im TriBase-Engine und Hilfsmakros

5. Fazit

1. Einführung in die Spielprogrammierung

Was UNS erwartet:

Ein Blick auf die Grundsätze der Spielprogrammierung, sowie interessanten Techniken der 3D Grafik

Schritt für Schritt DirectX kennenlernen

Grafikeffekte und Algorithmen

spezifische Spieltypen

wie plant man einen Spiel (Planung)

und Spiele-Engine (Spiele programmieren durch Beispiele)

Was UNS nicht erwartet:

keine exakte Einleitung wie man einen Spielprogrammiert

lehrt nicht die C++ Programmiersprache

es ersetzt nicht die Microsoft „DirectX-Dokumentation“

Spiel vs. Büroanwendung

Unterschied zwischen „Büroanwendung“ und einem „Spiel“:

„Büroanwendung“ = Effektivität

„Spiel“= Spaß ist der Zweck

Vorraussetzung das es Spaß macht (gute Grafik und guten Sound/Musik)

Präfix (kleine Zeichenkombination)

die wichtigsten und häufigsten Typen, sollte man eigene Präfixe verwenden

alle vorhandene Quellcodes machen sich die „ungarische Notation“ zunutze

Eine kompakte Nachrichtschleife ?

Man sieht wie ein Spiel mit linearen Programmierung funktioniert.

Was wird ausgeführt?

Einige Spielfunktionen

Eingabe, Verarbeitung und Fortbewegung= auch „Move-Funktion“ genannt

Beispiel einer integrierten Render- und Move-Funktion

Diagnose: Wichtig die Zeit Verhältnisse im Spiel zu beachten

Ausgabe= demonstriert uns die aktuelle Lage

GameState“= Spielstatus der in Spielabschnitte aufgeteilt ist

2. DirectX und C++ DirectX Graphics: um anspruchsvolle und schnelle 3D

Grafik im Spiel zu implementieren

DirectX Audio: Soundeffekte (besteht aus DirectSound und DirectMusic)

DirectInput: Eingabe zuständig (Bespiel: Game-Pad)

DirectPlay: lässt Spieler vom Internet, Netzwerk, Kabelverbindung oder sogar per Telefonverbindung spielen lassen

DirectShow: gibt die Möglichkeit alle Multimedia-Dateien abzuspielen zu können (MP3 bis zu MPEG-Video)

Besitzt bereits einen DirectX-Header- und Bibliotheksdateien

Verwendung von COM= „Komponentenobjektmodell“

3. Spiele-Engine

Was ist Engine= Antrieb oder Motor für das Spiel

2 Arten von Anwendungsbereiche: 1. Spezialisierte Engines und 2. Universelle Engines

„Verpackung“ einer Engine:Man unterscheidet zwischen 1. Statischer Engine (wird zur einer LIB-Datei) und 2. Dynamische Engine (DLL-Dateien)

Planung eines Spieles

Namengebung (Funktionsname immer mit „tb“ beginnen)

Feature Implementieren (wie z.B. Initialisierung von DirectX-Schnittstellen durch optimierte Klassen für Vektoren

laden von Texturen, Darstellung von 3D-Objekte, Effekte Feuer etc.

Textausgabe

Zugriff auf Eingabegeräte

abspielen von 3D Sounds

HTML-Logbuchfunktion = Ereignisprotokolldatei (enthält das automatisch geführte Protokoll von automatischer ausgeführten Aktionen)

Speicherverwaltung (TriBase-Speichermanager): führt eine genaue Liste über jeden Größe, Gültigkeit, Änderung, Freigabe oder reservierten Speicherbereichs auch Virtuelle Dateien genannt

Zufallszahlen: kann man durch einen int- und float-Wert generieren (tbIntRandom und tbFloatRandom z. B. (0.0f, 150.0f)

Die Nachrichtschleife im TriBase-Engine arbeitet mit Funktionszeiger. Hier werden zwei Parameter selbst definiert (zum Bewegen und zum Rendern)

Hilfsmakros:- Sicherheitsmakros (automatisieren häufig auszuführende Aufgaben und sicheres Löschen) und - Fehlermakros (Ort wo Fehlers vermerkt werden)

Fazit: fundierte Kenntnis in

C++

modernen PC mit 3D-Karte

Geduld und logisches Denkvermögen (Mathematikkenntnis)

bei Problemen sich an: http://www.spieleprogrammierer.de wenden!

viel EXPERIMENTIEREN!!!

Wenn es so einfach wäre!!

Quellen:David, Scherfgen: 3D-

Spieleprogrammierung; Mit DirectX9 und C++. Carl Hanser Verlag, München Wien2006. (Seite1 - 40).

Recommended