|
Computerspiele
Design und Programmierung
Daniel Mühlbacher, Peter Dobrovka, Jörg Brauer
Reihe: Spieleprogrammierung
mitp-Verlag
EAN: 9783826609206 (ISBN: 3-8266-0920-4)
848 Seiten, hardcover, 17 x 24cm, 2003, mit CD-ROM
EUR 38,00 alle Angaben ohne Gewähr
|
|
Umschlagtext
Wer hat nicht schon davon geträumt, eigene Computerspiele zu programmieren? Mit diesem Buch erhältst du das komplette Wissen, das notwendig ist, um Computerspiele selbst zu entwerfen und zu entwickeln. Du erfährst, wie du mit Hilfe von so genannten Game-Engines Computerspiele programmieren kannst, aber auch, wie du mit DirectX und OpenGL eigene Spiele erstellst.
Das Buch lässt kein Thema aus: 2D-Grafikpgrogrammeriung, 3D-Spiele-Erstellung, Sound und Musik in Computerspielen, Team-Management, mathematische Grundlagen, Hardware-Voraussetzungen und jede Menge supertoller Programmier-Code. Alles wird in diesem Buch behandelt! "Computerspiele - Design und Programmierung" wendet sich sowohl an den Einsteiger, der erste Schritte in die Spieleprogrammierung wagen möchte, wie auch an den bereits erfahrenen Programmierer, der sich an die Computerspiel-Erstellung herantrauen möchte.
Mit diesem Buch lernst du Spiele zu erstellen, von denen du immer geträumt hast.
Verlagsinfo
Moderne 3D-Spieleentwicklung ist ein sehr komplexes Thema. Dieses Buch behandelt alle relevanten Bereiche, die man wissen um, um ein attraktives Grafikspiel zu entwickeln. Angefangen bei der Spielidee wird der Leser zu einer Konzeptentwicklung, einer Spielarchitektur und dem Spieldesign geführt. Dem künftigen Spieleprogrammierer wird das komplette Rüstzeug vermittelt: Algorithmen, DirectX, Autorensysteme, Multiplayer Modi, Kontrollelemente sowie Sound und Musik. Abgerundet wird das Buch durch ein Kapitel zur Teambildung und dem Teammanagement, Vermarktungsstrategien und ausführlichen Insider-Informationen über Entwicklerforen im WWW. Neu in dieser Auflage sind umfangreiche Darstellungen zur Spieleentwicklung mit DirectX 8 und OpenGL.
Inhaltsverzeichnis
Vorwort zur 2. Auflage 13
1 Design von Computerspielen 19
1.1 Was ist Design? (PD) 19
1.1.1 Eine Idee ohne Ausarbeitung ist wertlos 19
1.1.2 Die Aufgabe des Designers 20
1.1.3 Das Designdokument 23
1.1.4 Gutes und schlechtes Design 24
1.1.5 Was dich in diesem Kapitel noch erwartet 25
1.2 Die Genres (PD) 26
1.2.1 Actionspiele 27
1.2.2 Strategiespiele 42
1.2.3 Adventures 56
1.2.4 Rollenspiele (Role Playing Games, RPG) 60
1.2.5 Simulationen 69
1.2.6 Sportspiele 70
1.2.7 Brettspielumsetzungen 72
1.2.8 Abstrakte, veraltete & sonstige Spielekonzepte 73
1.2.9 Fortsetzungen, Add-Ons und Klone 79
1.2.10 Alternative Spielkonzepte 80
1.2.11 Ein paar Internet-Adressen 82
1.3 Allgemeines Gamedesign (PD) 83
1.3.1 Das Wesen von Computerspielen 83
1.3.2 Todsünden der Interaktion 87
1.3.3 Wodurch wird ein Spiel Sucht erzeugend? 96
1.3.4 Spielertypen 104
1.3.5 Realismus in Computerspielen 108
1.4 Die Grundelemente von Computerspielen (PD) 111
1.4.1 Grafik 111
1.4.2 Gameplay und Komplexität 122
1.4.3 Userinterface 127
1.4.4 Sound 143
1.4.5 Spielbalance 144
1.4.6 Story 146
1.4.7 Intro, Zwischensequenzen und Co 157
1.4.8 Cheating 159
1.5 Zwischen den Zeilen (PD) 163
1.5.1 Demographisches 163
1.5.2 Gewalt in Computerspielen 164
1.5.3 3D-Shooter und Gewalt 167
1.5.4 Rollenspiele und Gewalt 167
1.5.5 Strategiespiele und Gewalt 168
1.5.6 Sex 169
1.5.7 Kinder und Computerspiele 170
1.5.8 Frauen und Computerspiele 171
1.5.9 Humor in Computerspielen 172
1.6 Konzeption und Planung eines Spiels (PD) 173
1.6.1 Herangehensweise 173
1.6.2 Das Grobkonzept 174
1.6.3 Das Feinkonzept (Designdokument) 176
1.6.4 Das Produktionsdokument 179
1.7 Leveldesign 180
1.7.1 Einführung (MDE) 180
1.7.2 2D Level-Design (MDE) 183
1.7.3 3D-Level-Design (MWO) 212
1.7.4 Internet-Ressourcen 244
1.7.5 Danksagung (PD) 245
2 Autorensysteme 247
2.1 Einleitung (RN) 247
2.2 Die Click-Produkte (RN) 247
2.2.1 Wer braucht Klik&Play, Click&Create, The Games Factory
oder Multimedia Fusion? 248
2.2.2 Der Ereignis-Editor 248
2.2.3 Möglichkeiten - Was ist machbar, was nicht? 251
2.2.4 Informationen 253
2.3 Game Creation System for Windows (GCSW) (AF) 254
2.3.1 Für wen es geeignet ist 254
2.3.2 Der erste Level 255
2.3.3 Levelerweiterung für fortgeschrittene Benutzer 257
2.3.4 Waffen und das GCSW 259
2.3.5 Vermeiden von Grafikfehlern 260
2.3.6 Generelle Grafikfehler 262
2.3.7 Darstellungsprobleme bei Sprite-Gegnern 262
2.4 Allgemeines über das 3D GameStudio (RJ) 262
2.4.1 Die Geschichte 262
2.4.2 Was ist 3D GameStudio? 262
2.4.3 Für wen ist es geeignet? 263
2.4.4 Die Vor- und Nachteile des 3D GameStudio im Überblick 263
2.4.5 3D GameStudio-Tutorial 265
2.4.6 Interview mit Johann Christian Lotter von Conitec 291
3 Programmierung 293
3.1 Vorteile und Fallstricke (PD) 293
3.2 Grundlagen der Programmierung 294
3.2.1 Programmbegriff (PD) 294
3.2.2 Programmiersprachen, Dialekte und Compiler (PD) 296
3.2.3 Programmaufbau und -ablauf (PD) 300
3.2.4 Variablen (PD) 300
3.2.5 Einige der wichtigsten Programmiersprachen
(PD & HJM) 301
3.2.6 Fazit 312
3.3 Hard- und Softwarevoraussetzungen (PD) 313
3.3.1 Der Spieleprogrammierer-PC 313
3.3.2 Die passende Software 314
3.3.3 Konsolen-Hard- und -Software 316
3.4 Programmarchitektur (PD & HJM) 316
3.4.1 Einleitung 316
3.4.2 Algorithmisch orientiertes (prozedurales) Paradigma 317
3.4.3 Objektorientiertes Paradigma 323
3.4.4 Andere Paradigmen 327
3.4.5 Schnittstellen 328
3.4.6 Programmierung von Interaktivität 331
3.4.7 Die Framerate 335
3.4.8 Das eventbasierte Programm 337
3.4.9 Parallele Verarbeitung 341
3.4.10 Datenstrukturen (PD & HJM) 350
3.4.11 Bemerkungen zum Programmierstil (HJM & PD) 362
3.5 Debugging (PD & HJM) 367
3.5.1 Was ist Debugging? 367
3.5.2 Fehlerkategorien 368
3.5.3 Debugger 370
3.5.4 Instrumentierter Code 371
3.5.5 Einige typische Fehler und wie man sie (manchmal)
findet 374
3.6 Optimierung 385
3.6.1 Was ist Optimierung? (PD & HJM) 385
3.6.2 Nicht alles optimieren - Profiler einsetzen (CD & PD) 388
3.6.3 Gefahren der Optimierung (PD) 389
3.6.4 Den richtigen Algorithmus auswählen (CD) 389
3.6.5 Vermeiden von unnötigen Zugriffen und
Zuweisungen (CD) 395
3.6.6 Kleine rekursive Funktionen vermeiden (CD) 401
3.6.7 Assembler-Routinen (CD) 401
3.6.8 Nachschlagetabellen verwenden (CD) 402
3.6.9 Schiebebefehle verwenden (CD) 405
3.6.10 Mehrdimensionale Arrays (CD) 407
3.6.11 Initialisieren von Elementen eines Arrays (CD) 410
3.6.12 Initialisieren von Objekten (CD) 411
3.6.13 Parameterübergabe an Funktionen (CD) 413
3.6.14 Wie lege ich Performance-bestimmende Daten ab (CD) 416
3.6.15 Das Alignment (CD) 418
3.6.16 Wie man sein Programm profilen kann (CD) 420
3.6.17 Wenn es einfach nicht schneller geht (CD) 424
3.7 Multiplayer 428
3.7.1 Was heißt eigentlich Multiplayer? (MI) 428
3.7.2 Verbindungsmöglichkeiten (MI) 431
3.7.3 Wie man eine Verbindung erstellt (MI) 436
3.7.4 Verbindungsmodelle (PD £ HJM) 440
3.7.5 Synchronisation von Multiplayer-Spielen (PD) 441
3.8 KI - Künstliche Intelligenz 444
3.8.1 Grundlagen (MDE) 444
3.8.2 Vertiefungen (MDE) 453
3.8.3 Pathfinding (PD) 460
3.8.4 KI für Computergegner (PD) 465
3.9 Systemunabhängige Programmierung (HJM) 469
3.9.1 Portabilität 469
3.9.2 Häufige Plattformabhängigkeiten 470
3.9.3 Strategien zur Vermeidung von Abhängigkeiten 470
3.9.4 Minimierung des Portierungsaufwandes 471
3.9.5 Die Systemabstraktionsschicht 472
3.9.6 Datenkonvertierung 475
3.9.7 Prozedurale Systemabstraktion 475
3.9.8 Objektorientierte Systemabstraktion 478
3.9.9 Systemabstraktionsschicht - wiederverwenden oder neu
entwickeln? 482
3.10 Laden und Speichern eines Spielstandes (CD) 483
3.10.1 Eine mögliche Lösung 484
3.10.2 Wie organisiere ich, was gespeichert werden soll? 484
3.10.3 Wie speichere und lade ich denn nun eine Datei? 485
3.10.4 Wie baue ich Fehlerabfragen ein? 502
3.11 Eine eigene Versionsverwaltung 509
3.12 Virtual File Systems (JB) 512
3.12.1 Allgemeines 512
3.12.2 Das Konzept 513
3.12.3 Implementation 514
3.12.4 PAK-Files 518
3.12.5 Erweiterungen 518
4 Game-Art 519
4.1 2-D Grafik (TS) 520
4.1.1 Sprites 520
4.1.2 Texturen 522
4.1.3 Titelbild und Bedienelemente 537
4.1.4 Bildbearbeitungsprogramme 538
4.2 3D-Grafik 540
4.2.1 Allgemeines 540
4.2.2 Dateiformate 543
4.2.3 Videos für Intro, Extro, Zwischensequenzen 543
4.3 Soundeffekte selbst gemacht (DL) 544
4.3.1 Einleitung 544
4.3.2 Soundformate 544
4.3.3 Soundeffekte 545
4.3.4 MIDI 550
4.3.5 Sound und Musik im Spiel 554
4.3.6 Tipps & Tricks 556
4-4 Professioneller Sound und Musik (PVCF) 556
4.4.1 Bedeutung des Sounds in Computerspielen 556
4.4.2 Welche Musik für welche Spiele und Situationen? 558
4.4.3 Wie erzeugt man die richtige Stimmung durch Musik? 559
4.4.4 Die richtigen Soundeffekte zur richtigen Zeit 561
4.4.5 Die Synchronsprecher 563
4.4.6 Hall 564
4.4.7 Soundformate und ihre Verwendung im Programm 565
4.4.8 Fertige Soundengines 567
4.4.9 Computerspiele und GEMA 569
4.4.10 Wie Musik entsteht 569
4.4.11 Wie wird man Musiker für Computergames? 573
4.4.12 Software-Empfehlungen 575
4.5 Selbst erstellte Editoren und Tools (PD) 577
4.5.1 Was ist das, wozu braucht man das? 577
4.5.2 Editoren 577
4.5.3 Tools 579
4.5.4 Ein Beispiel 579
5 Management 581
5.1 Allgemeines (PD) 581
5.2 Das vorzeitige Projektende (PD) 581
5.2.1 Der Weg ist das Ziel 582
5.2.2 Kein Konzept 582
5.2.3 Selbstüberschätzung 584
5.2.4 Unterschätzen der Arbeit 585
5.2.5 Featuritis 586
5.3 Wie man ein Projekt organisiert (PD) 587
5.3.1 Mitstreiter finden und auswählen 588
5.3.2 Modularisierung des Projektes 592
5.3.3 Kommunikation 598
5.3.4 Wenn Teammitglieder das Team verlassen 601
5.3.5 Es kann nicht jeder den Ton angeben 603
5.3.6 Bei Geld hört die Freundschaft auf 604
5.4 Internet-Präsentation 606
5.4.1 Wozu? 606
5.4.2 Gestaltung der Website 606
5.4.3 Feedback 607
5.4.4 Vorsicht, Ideenklauer unterwegs 611
5.5 Das Spiel ist fertig - was nun? 612
5.5.1 Wird's denn fertig? 612
5.5.2 Freeware 612
5.5.3 Donationware 612
5.5.4 Shareware 613
5.5.5 Publisher 615
5.6 Professionelles Projektmanagement (CD) 616
5.6.1 Was ist eigentlich Projektmanagement? 616
5.6.2 Das Spiel konkretisieren 617
5.6.3 Die Milestones 619
5.6.4 Die Arbeitspakete 622
5.6.5 Die Zeitplanung 626
6 Hilfe aus dem Internet 629
6.1 Das Internet als Ressourcen- und Hilfsquelle (DM) 629
6.2 Web-Sites und Foren (DM) 629
6.2.1 Die Deutschen Untergrund Spiele 629
6.2.2 games-net 630
6.2.3 GameDev.net 631
6.2.4 Gamasutra 632
6.2.5 flipCode 633
6.2.6 Das Deutsche Spieleentwickler Board 634
6.2.7 Das Unterhaltungssoftwareforum 635
6.3 Weitere Informations- und Kommunikationsmöglichkeiten (DM) 636
6.3.1 ICQ 636
6.3.2 Mailinglists 637
6.3.3 Internet Relay Chats 637
6.3.4 Newsgroups 638
6.4 Ausblick (DM) 638
7 Grafik-Programmierung 639
7.1 2D-Grafikprogrammierung (PD) 639
7.1.1 Pixel 639
7.1.2 Sprites 641
7.1.3 Transparenz 643
7.1.4 Gekachelte Welten 643
7.2 3D Grafik-Programmierung 653
7.2.1 Einleitung (JB & PD) 653
7.2.2 Von der 3D-Koordinate zur Bildschirmausgabe
(JB&PD) 658
7.2.3 Lineare Algebra (JB & PD) 670
7.2.4 OpenGL (JB & PD) 688
7.2.5 Direct3D (JB) 725
7.2.6 Frustum Culling (JB & PD) 767
7.2.7 Ein allgemeines Partikel-System (JB) 772
7.2.8 Animationen und Character-Rendering 780
7.2.9 Volumetrische Schatten mit dem Stencil-Buffer
(JB & PD) 789
7.2.10 Landscape-Rendering (JB) 796
7.2.11 Interpolation, Kurven und gekrümmte Oberflächen
(JB & PD) 806
7.2.12 Triangulierung (JB) 813
7.2.13 Vertex Shader (JB) 814
Glossar 825
Stichwortverzeichnis 841
|
|
|