15
3D-Spieleprogrammierung: Grundbegriffe (Scherfgen 1 - 40) Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14 Dozent: Prof. Dr. Thaller von Mariantonietta Bellia

Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

Embed Size (px)

Citation preview

Page 1: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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

Page 2: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

Inhaltverzeichnis:1. Einführung in die

Spielprogrammierung

2. DirectX und C++

3. Spiele-Engine

4. Zufallszahlen, Nachrichtschleife im TriBase-Engine und Hilfsmakros

5. Fazit

Page 3: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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)

Page 4: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

Was UNS nicht erwartet:

keine exakte Einleitung wie man einen Spielprogrammiert

lehrt nicht die C++ Programmiersprache

es ersetzt nicht die Microsoft „DirectX-Dokumentation“

Page 5: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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)

Page 6: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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

Page 7: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

Eine kompakte Nachrichtschleife ?

Man sieht wie ein Spiel mit linearen Programmierung funktioniert.

Was wird ausgeführt?

Page 8: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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

Page 9: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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“

Page 10: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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)

Page 11: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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

Page 12: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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

Page 13: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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)

Page 14: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

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!!

Page 15: Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14

Quellen:David, Scherfgen: 3D-

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