Freiknecht Spiele entwickeln mit Gamestudio
1. Auflage 2012
ISBN: 978-3-446-43267-3
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Virtuelle 3D-Welten mit Gamestudio A8 und Lite-C
E-Book, Deutsch, 481 Seiten
ISBN: 978-3-446-43267-3
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Dieses Buch bietet Ihnen einen profunden Einstieg in die Spieleentwicklung mit Gamestudio A8. Sie lernen, wie Sie ein Spiel planen, es mit modernsten Techniken wie Shadern oder Physik ausstatten und schließlich wirklichkeitsnah gestalten und mit Leben füllen. Um das Spiel performant und speicherschonend zu erstellen, wird der volle Funktionsumfang von lite-C genutzt. Neulinge werden dabei von Grund auf in die Sprache eingeführt, Fortgeschrittenen wird mittels eigener Textblöcke tiefer gehendes Wissen vermittelt.
Zum Schluss wird ein komplettes Rollenspiel entwickelt, in dem alle beschriebenen Techniken zum Einsatz kommen.
Teil I des Buches führt in die Features von Gamestudio und in die Theorie der Spieleentwicklung ein. In Teil II werden alle wichtigen Techniken vermittelt wie Coding, 3D-Modellierung, Sounds & Musik, Physik usw. Teil III behandelt fortgeschrittenere Themen, u.a. Stereo-3D-Grafik, Schreiben eigener Plugins, Erstellen eines Projektplans für die Spieleentwicklung im Team.
Auf der beiliegenden DVD finden Sie das komplette Spiel, die einzelnen Code-Bausteine, Videotutorials für bestimmte Themen wie z.B. Bildbearbeitung sowie hilfreiche Zusatzprogramme.
Über den Autor:
Jonas Freiknecht, Bachelor of Science in Informatik, arbeitet bei IBM Deutschland als IT-Berater im Bereich "Verteilte Systeme" und "Mobile Architekturen". Seit seinem 14. Lebensjahr beschäftigt er sich mit der Konzeption und der Entwicklung von Computerspielen
Autoren/Hrsg.
Weitere Infos & Material
1;Inhalt;8
2;Vorwort;14
3;1 Das Gamestudio-Autorensystem;20
3.1;1.1?Die Acknex-Engine A8;20
3.2;1.2?Die verschiedenen Editionen;21
3.3;1.3?Die Komponenten des Gamestudios;23
3.3.1;1.3.1?Der Scripteditor (SED);23
3.3.2;1.3.2?Der Worldeditor (WED);26
3.3.3;1.3.3?Der Modelleditor (MED);27
3.3.4;1.3.4?Der Ingame-Editor (GED);27
3.4;1.4?Templates?– Zwei Wege führen zum Ziel;28
3.4.1;1.4.1?Arbeiten mit Templates;28
3.4.2;1.4.2?Spiele ohne Templates;30
3.5;1.5?Die Geschichte der Acknex-Engine;30
3.6;1.6?Was Sie sonst noch benötigen;31
4;2 Theorie der Spieleentwicklung;34
4.1;2.1?Unterschied zwischen Spielen und Desktopanwendungen;34
4.2;2.2?Ausgleichende Gerechtigkeit;35
4.3;2.3?Die Ungarische Notation als Namenskonvention;36
4.4;2.4?Namenskonventionen für Dateien;38
4.5;2.5?Buildautomatisierung;38
5;3 Mathematik in Computerspielen;40
5.1;3.1?Das Kartesische Koordinatensystem;40
5.2;3.2?Vektoren;42
5.2.1;3.2.1?Vektorlänge;43
5.2.2;3.2.2?Normalisieren eines Vektors;44
5.2.3;3.2.3?Das Skalarprodukt;45
5.2.4;3.2.4?Das Kreuzprodukt;45
5.2.5;3.2.5?Vektorprojektion;46
5.2.6;3.2.6?Differenz zweier Vektoren;47
5.3;3.3?Winkel;47
5.3.1;3.3.1?Drehen eines Vektors;48
5.3.2;3.3.2?Drehen eines Winkels um einen anderen Winkel;49
5.3.3;3.3.3?Berechnen des Eulerwinkels aus einem Vektor;49
5.4;3.4?RGB(A)-Farben;50
5.5;3.5?Das Schichtenmodell;51
6;4 Grundlagen der Lite-C-Programmierung;52
6.1;4.1?Installieren der Entwicklungsumgebung;52
6.2;4.2?Struktur eines neuen Projekts;54
6.3;4.3?Das eingestaubte „Hello World“;55
6.4;4.4?Die Grundlagen der Programmierung im Schnelldurchlauf;56
6.4.1;4.4.1?Variablen;57
6.4.2;4.4.2?Datentypen;58
6.4.3;4.4.3?Arrays;62
6.4.4;4.4.4?Mehrdimensionale Arrays;62
6.4.5;4.4.5?Rechenbefehle;63
6.4.6;4.4.6?If-Bedingung;64
6.4.7;4.4.7?Switch;67
6.4.8;4.4.8?Schleifen;68
6.4.9;4.4.9?Funktionen;70
6.4.10;4.4.10?Pointer;72
6.4.11;4.4.11?Compiler-Direktiven;76
6.4.12;4.4.12?Structs;79
6.5;4.5?Zusammenfassung;87
7;5 Spieleprogrammierung mit Lite-C;88
7.1;5.1? Ein „Hello World“ nach unserem Geschmack;88
7.2;5.2?Die erste Bewegung;91
7.2.1;5.2.1?Die Funktion wait;93
7.3;5.3?Eingaben über die Tastatur;94
7.3.1;5.3.1?Was war noch mal time_step?;96
7.4;5.4?Eine eigene Aktion für unsere Weltkugel;97
7.4.1;5.4.1?Exkurs: Zwei Wege, ein Objekt zu erstellen;100
7.5;5.5?Bewegen der Kamera;100
7.5.1;5.5.1?Bewegen der Kamera mit Maus und Tastatur;104
8;6 Bewegung mit Kollisionserkennung;108
8.1;6.1?Exkurs: set, reset, toggle und is;113
9;7 Verschiedene Kameratypen;116
9.1;7.1?First-Person-Camera oder Egoperspektive;116
9.2;7.2?Sidescroller;117
9.2.1;7.2.1?Exkurs: Skills und Flags;123
9.2.2;7.2.2?Exkurs: Kollision;124
9.3;7.3?Third-Person-Camera;126
9.3.1;7.3.1?Exkurs: Animieren von Entities;30
9.4;7.4?Resident-Evil-Camera;134
9.5;7.5?Mehrere Kameras durch mehrere Views;138
10;8 Input mit Maus und Tastatur;140
10.1;8.1?Eingaben mit der Maus;140
10.1.1;8.1.1?Der Mauszeiger;144
10.2;8.2?Eingaben über die Tastatur;144
11;9 GUI-Elemente;148
11.1;9.1?Das Element BMAP;148
11.1.1;9.1.1?Manipulieren von Bitmaps;150
11.2;9.2?Das Element TEXT;154
11.2.1;9.2.1?Strings;157
11.2.2;9.2.2?Schriftarten definieren über FONT;159
11.3;9.3?Das Element PANEL;161
11.3.1;9.3.1?Steuerelemente auf dem Panel;163
11.4;9.4?Grafikeinstellungen ändern;172
12;10 Interaktion über Events;176
13;11 Sounds, Musik und Videos;180
13.1;11.1?Dateitypen für Musik und Videos;180
13.2;11.2?Geräusche in unserer Spielwelt;181
13.3;11.3?Streams;184
13.3.1;11.3.1?Dynamische Arrays;188
14;12 Physik;192
14.1;12.1?Was ist eine Physik-Engine?;192
14.2;12.2?Einige Physik-Engines im Vergleich;193
14.3;12.3?Aktivieren der Physik-Engine;194
14.4;12.4?Dosenwerfen;197
14.4.1;12.4.1?Exkurs: Ein realistischer Himmel;201
14.5;12.5?Gelenke;203
14.5.1;12.5.1?Drehgelenke mit PH_HINGE;204
14.5.2;12.5.2?Kugelgelenk mit PH_BALL;206
14.5.3;12.5.3?Drehschubgelenk mit PH_SLIDER;208
14.5.4;12.5.4?Räder mit PH_WHEEL;210
14.5.5;12.5.5?Seile mit PH_ROPE;213
14.5.6;12.5.6?Ein beliebig konfigurierbares Gelenk mit PH_6DJOINT;214
14.6;12.6?Physikalische Spielersteuerung;216
14.7;12.7?Ragdolls;220
14.8;12.8?PhysX Community Edition1;227
15;13 Effekte;228
15.1;13.1?Partikeleffekte;228
15.1.1;13.1.1?Was sind Partikel?;228
15.1.2;13.1.2?Wie erstelle ich einen Partikeleffekt?;229
15.2;13.2?Licht und Schatten;235
15.2.1;13.2.1?Statische und dynamische Lichtquellen;235
15.2.2;13.2.2?Sonne;235
15.2.3;13.2.3?Schatten;236
15.3;13.3?Nebel;241
15.4;13.4?Wetter;242
15.5;13.5?Decals;249
16;14 Shader;256
16.1;14.1?Verschiedene Arten von Shadern;256
16.2;14.2?Programmiersprachen für Shader;257
16.3;14.3?Anforderungen an Engine, Grafikkarte und Programmierer;257
16.4;14.4?Vor- und Nachteile des Einsatzes von Shadern;258
16.5;14.5?Die Direct3D-Pipeline;258
16.6;14.6?Ein erster Pixel-Shader für eine Entity;262
16.7;14.7?Postprocessing-Shader für eine View;267
16.7.1;14.7.1?Stages und die Rendering-Kette;267
16.7.2;14.7.2?Ein einfacher Wasserfall ohne Shader;276
16.8;14.8?Ein Vertex-Shader für Vegetation;279
16.9;14.9?Hilfe bei Problemen und weiterführendes Material;288
17;15 Performance messen und optimieren;290
17.1;15.1?Performance-Messung;290
17.2;15.2?Performance-Optimierung;298
18;16 Debugging;304
18.1;16.1?Der Luxus der Compiler-Fehler;304
18.2;16.2?Variablen im SED beobachten;305
18.3;16.3?Break-Points;308
18.4;16.4?Die Konsole;309
18.5;16.5?Logging;310
18.5.1;16.5.1?Exkurs: In Dateien schreiben;316
18.6;16.6?Debugging für Ungeduldige;317
18.7;16.7?Hilfe bei der Fehlersuche;318
19;17 Künstliche Intelligenz;320
19.1;17.1?Der NPC?– Ein endlicher Automat;321
19.2;17.2?Pfade;330
19.3;17.3?Pathfinding?– Abseits des Weges;334
19.3.1;17.3.1?Die doppelt verkettete Liste;336
19.4;17.4?Dialoge;344
19.4.1;17.4.1?Das XML-Format der Dialoge;345
20;18 Multiplayer;350
20.1;18.1?Mehrere Spieler, eine View;350
20.2;18.2?Mehrere Spieler, mehrere Views;354
20.3;18.3?Netzwerkspiel;358
20.3.1;18.3.1?Nur eine Anwendung für Client und Server?;358
20.3.2;18.3.2?Server und Client;359
20.3.3;18.3.3?Performance in Netzwerkspielen;366
21;19 Spielablauf;368
21.1;19.1?Laden und Speichern;368
21.2;19.2?Ladebildschirme;372
22;20 Ein Spiel publizieren;378
22.1;20.1?Einbinden aller nötigen Ressourcen;378
22.2;20.2?Credits und Lizenzen;379
22.3;20.3?Kompilieren und Packetieren von Ressourcen;380
22.4;20.4?Erstellen eines Installationspaketes;380
22.5;20.5?Exkurs: Ein Startup-Fenster;381
23;21 Level-Design;384
23.1;21.1?Übersicht über den WED;385
23.2;21.2?Das erste Level;386
23.2.1;21.2.1?Bewegen eines Objekts;386
23.2.2;21.2.2?Skalieren eines Objekts;387
23.2.3;21.2.3?Verformen einer Box;388
23.2.4;21.2.4?Ändern der Blickrichtung;389
23.2.5;21.2.5?Das Projektfenster;390
23.2.6;21.2.6?Das Objektfenster;391
23.2.7;21.2.7?Snapping;391
23.2.8;21.2.8?Kompilieren und Testen;392
23.2.9;21.2.9?Hinzufügen von Texturen;394
23.2.10;21.2.10?Erstellen eigener Texturen;398
23.3;21.3?Das Erstellen mehrerer Räume;402
23.3.1;21.3.1?Aushöhlen eines Primitives;402
23.3.2;21.3.2?Erstellen und Auflösen von Gruppen;403
23.4;21.4?Ausstanzen von Löchern in Objekten;404
23.5;21.5?Hinzufügen weiterer Objekte;406
23.5.1;21.5.1?Lichtquellen;407
23.5.2;21.5.2?Level-Bausteine über Prefabs und Primitives;409
23.5.3;21.5.3?Terrains, Modelle, Sprites und Sounds;411
23.5.4;21.5.4?Zuweisen von Aktionen;417
23.5.5;21.5.5?Pfade und Regionen;423
23.6;21.6?Der letzte Schliff;429
24;22 Modell-Design;438
24.1;22.1?Modellierung eines Schalters;439
24.2;22.2?Animieren über Bones;451
24.2.1;22.2.1?Bone-Animationen importieren;454
24.3;22.3?Terrains erstellen;456
24.4;22.4?Terrains erstellen mit Earth Sculptor;459
24.5;22.5?Importieren von Modellen anderen Formats;464
25;23 Planen eines Spiels;466
25.1;23.1?Aufgabenverteilung;467
25.2;23.2?Entwickeln einer Idee;467
25.3;23.3?Inhaltliche Planung;469
25.3.1;23.3.1?Charaktere eines Spiels;470
25.3.2;23.3.2?Levels;470
25.3.3;23.3.3?Quests;472
25.3.4;23.3.4?Gegenstände und Inventar;473
25.3.5;23.3.5?Waffen und Magie;474
25.3.6;23.3.6?Weitere technische Features;475
25.4;23.4?Projektplanung;475
25.5;23.5?Kommen wir zum Schluss;476
26;Index;478