Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung...
-
Upload
annelie-gesell -
Category
Documents
-
view
105 -
download
0
Transcript of Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung...
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).