
Ihr erfolgreicher Einstieg in die Spieleprogrammierung mit DirectX und C++: In 21 Tagen erarbeiten Sie sich die Grundkenntnisse der C/C++-Programmierung, erlernen die für die Spieleprogrammierung erforderlichen Grundlagen der Mathematik und Physik und machen sich mit dem Einsatz von DirectX 9 vertraut. Mit diesem Wissen wagen Sie sich sodann an die beiden anspruchsvolleren Themen Terrain- und Indoor-Rendering heran. In weiterführenden Übungen wird gezeigt, wie sich das neu erlernte Wissen praktisch einsetzen und mit dem bereits gelernten kombinieren läßt, um so kleinere Spiele zu programmieren. Auch die KI-Programmierung kommt nicht zu kurz. Sie werden erfahren, wie sich mit Zustandsautomaten und probabilistischen Systemen menschliches Verhalten simulieren läßt, wie man einer KI das Denken beibringt und wie man mit Hilfe von Patterns (Schablonen) Ufos zum Fliegen bewegt. Weiterhin werden Sie die in unserem Spiel zum Einsatz kommenden Flugsteuerungstechniken entwickeln, Sie werden den Einsatz von Manövertaktiken kennenlernen und erleben, wie der Computer seine Raumflotte mit Hilfe eines Wegpunkte-Systems über die Sternenkarte navigiert. Als Höhepunkt werden wir gemeinsam ein 3D-Spiel planen, entwerfen und programmieren. Neben der Entwicklung der grafischen Features legen wir insbesondere Wert auf das Game Design. Aus diesem Grund belassen wir es nicht bei der Programmierung einer einfachen Space Combat Simulation sondern erweitern das Spiel um zusätzliche Echtzeitstrategie-Elemente. Damit sind Sie – der Spieler – nicht nur der Kapitän auf der Brücke eines Raumschiffes sondern werden auch zum Oberkommandeur der imperialen Raumflotte.
Stundenplan
|
Woche 1 |
Tag 1 |
Tag 2 |
Tag 3 |
Tag 4 |
Tag 5 |
Tag 6 |
Tag 7 |
|
Alles halb so wild. Heute lernen Sie die Grundlagen der Windows-Programmierung kennen und erstellen mit diesem Wissen eine einfache Game-Shell für ihre Spiele. |
Sie beschäftigen sich mit Look-up-Tabellen, Zufallszahlen, verketteten Listen, dem Speichermanagement und der Dateiverwaltung. |
Sie werden lernen, wie sich die zweidimensionale Spielewelt am Computer darstellen und manipulieren lässt. |
Heute werden Sie die engen Fesseln der zweidimensionalen Welt sprengen und die Geheimnisse der dritten Dimension erkunden. |
Die Physik meldet sich zu Wort – Wind und Sturm, Geschossflugbahnen, Reibungseinflüsse sowie Gravitationsanomalien, Bewegungsmodelle für Raumschiffe und Lenkwaffenmodelle. |
Sie beschäftigen sich mit der Beschreibung von Kollisionsvorgängen sowie mit verschiedenen Verfahren zur Vermeidung unnötiger Kollisionstests. |
Zum Ende von Woche 1 befassen Sie sich dann intensiv mit den verschiedenen Methoden zur Kollisionserkennung. |
|
|
Woche 2 |
Tag 8 |
Tag 9 |
Tag 10 |
Tag 11 |
Tag 12 |
Tag 13 |
Tag 14 |
|
DirectX Graphics – der erste Kontakt: Textausgabe, Zeichnen von Punkten, Linien und Kreisen sowie die Grundlagen des Texture Mappings erlernen. |
Sorgen Sie mit DirectInput für Interaktion in ihren Projekten. |
Binden Sie Hintergrundmusik und 3D-Sound mit Hilfe von DirectX Audio in ihre Projekte mit ein. |
2D-Objekte in der 3D-Welt: Lernen Sie Transformationsfunktionen für die Darstellung von Billboardeffekten, sowie Funktionen für die Kameradrehungen im 3D-Raum kennen. |
Heute beschäftigen Sie sich mit Licht, Shading, Texturfilterung, Multitexturing, Alpha Blending, sowie mit der algorithmischen Erzeugung von 3D-Objekten. |
Heute entwickeln Sie einen einfachen Terrain-Renderer inkl. Wasseranimationen auf der Basis dreidimensionaler Tiles. |
Zum Abschluss von Woche 2 entwickeln Sie noch einen kleinen Indoor-Renderer unter Verwendung eines einfachen Portalsystems. |
|
|
Woche 3 |
Tag 15 |
Tag 16 |
Tag 17 |
Tag 18 |
Tag 19 |
Tag 20 |
Tag 21 |
|
Sie beginnen die letzte Woche mit der Ausarbeitung eines Konzeptpapiers für das Spieleprojekt "Sternenkriege". |
Im nächsten Schritt entwickeln Sie die Dateiformate, in denen alle spielrelevanten Daten abgespeichert werden. |
Game-Design: Sie entwickeln ein Tool für die einfache Erzeugung neuer Spielszenarien. |
Sie beginnen mit dem Programmentwurf: Benennung der Funktionsprototypen, Entwurf der Strukturen und Klassengerüste. |
Künstl. Intelligenz – Zustandsautomaten und probabilistische Systeme, lernen und Adaption, Patterns, Flugsteuerung, Wegpunkte-Systeme und strategische Flottenbewegung. |
Am heutigen Tag werden Sie die grafischen Features für unser Spieleprojekt entwickeln. |
Am letzten Tag beschäftigen Sie sich mit der Spielmechanik und sorgen dafür, dass Leben ins Spiel kommt. |
Auf der Buch-CD:
Das DirectX 9 SDK, eine Visual C++-Autorenversion, eine Vielzahl kleinerer Beispielprogramme sowie zwei Bonustage für die Einarbeitung in die C/C++-Programmierung, alle DirectX Programm- und Übungsbeispiele sowie das in der dritten Woche entwickelte 3D-Spiel.
Sie finden auf der Buch-CD folgende Ordner:
Vc6: Visual C++-Autorenversion
dx9sdk: DirectX 9 Software Development Kit
Sternenkriege: Das Spiel zum Buch (mit Anleitung)
C++-Tutorials: Grundlagen und fortgeschrittene Themen der C++-Programmierung sowie ein Bonuskapitel "Bäume", jeweils mit Programmbeispielen
Programmbeispiele: Die Beispiele und Übungen sind nach den Buchkapiteln geordnet.
Tag01
HelloWindows, GameShell1, GameShell2
Tag02
LookUp1, LookUp2, Zufallszahlen, ZufallszahlenKlasse, SimpleLinkedList, MemoryManager, Dateiverwaltung
Tag08
FirstContact, Punkte_Linien_Kreise, Texturen, Simulationen (Elastische Stoßprozesse zwischen Billardkugeln, perspektivische Bewegung der Erde um die Sonne, Gravitationseinflüsse)
Tag09
Spielsteuerung, BallerBumm
Tag10
Hintergrundmusik, 3DSound
Tag11
Billboards, Asteroidhunter
Tag12
MultiTexturing, Planet
Tag13
Terrain, Vulkan
Tag14
Indoor, Indoor2
Tag17
EmpireMapCreator
Tag19
AlienAttack
Die Tage 03 bis 07 beschäftigen sich mit den mathematischen und physikalischen Grundlagen, wie sie für Sie als Spieleentwickler unverzichtbar sind.
Ich möchte mich an dieser Stelle ausdrücklich bei Xtreme Games LLC
(http://www.xgames3d.com) bedanken – für die Asteroidentexturen, die in den Übungsprojekten "BallerBumm", "Asteroidhunter" und "AlienAttack" verwendet werden.