Kim Pallister hat mit der Game Programming Gems eine steile Karriere hingelegt. Während er im zweiten Teil noch als Autor einen Artikel beisteuert, ist er im dritten Teil bereits Redakteur für die Programmierungs-Sektion, und schließlich im aktuellen fünften Teil Chefredakteur der erfolgreichen Buchreihe zur Spieleprogrammierung. Hauptberuflich ist Pallister bei Intel im Bereich 3D Computergrafik-Technologien und Spieleentwicklung tätig, und konnte für die vorliegende Ausgabe wieder zahlreiche Industrieveteranen anderer namhafter Unternehmen als Autoren gewinnen, die insgesamt 62 Juwelen der Spieleprogrammierung beisteuern, die in die Kategorien „Allgemeine Programmierung“, „Mathematik“, „Künstliche Intelligenz“, „Grafik“, „Netzwerk und Multiplayer“, „Audio“, und seit der vierten Ausgabe auch „Physik“ eingeteilt sind und rund 750 Seiten füllen.
In bekannter Manier richtet sich zunächst Mark DeLoura, der Urheber der Game Programming Gems Serie, an die Leserschaft, und reflektiert die Entwicklung der Industrie seit der ersten Ausgabe. Die darauf folgenden Juwelen beginnen wie immer mit der allgemeinen Programmierung, zu der es diesmal 17 Artikel zu lesen gibt. Hier dreht es sich u.a. um die Verwendung von kontextsensitiven Head-Up-Displays (HUD) für Editoren, die Integration der Programmiersprache Lua in Spiele, oder in zwei Artikeln um State Machines. Die sechs Artikel in der Mathematik-Sektion behandeln diesmal u.a. Hermitekurven mit minimaler Beschleunigung oder schneller Quaternion Interpolation durch Näherung. Das Kapitel zum Thema Künstliche Intelligenz bringt es auf acht Artikel. Dass sich hier zwei Artikel dem A* Algorithmus widmen, ist keine Überraschung. Weiterhin wird bspw. das Finden von Deckungsmöglichkeiten mithilfe von Navigation Meshes oder ein Planungssystem zur Lösung von Aufgaben besprochen. Das Kapitel Physik, das zum zweiten Mal Bestandteil der GPG ist, widmet sich mit acht Gems diesmal u.a. der realistischen Darstellung und Animation von Natureffekten, Kleidung und Ragdolls. Auch in der Grafikabteilung wird die Natur wieder als Vorbild genommen um Wolken, Feuer oder Schnee realistisch auf den Bildschirm zu bringen. Insgesamt gibt es hier diesmal zehn Gems. Das Netzwerk und Multiplayer Kapitel steht im Zeichen der MMORPGs, wo z.B. nahtlose Welten, das Ausfiltern von Vulgärsprache und Sicherheit eine Rolle spielen. Das letzte Kapitel, Audio, beinhaltet diesmal unter fünf Artikeln ein Gem zur einfachen Spracherkennung. Als interessantes Detail am Rande sei erwähnt, dass das Buch im Anhang einen kumulativen Index über alle GPG Ausgaben enthält.
Die CD zum Buch enthält Material zu den einzelnen Kapiteln. Hierbei handelt es sich größtenteils um C++ Quellcode mitsamt Visual Studio Projektdateien. Teilweise muss der Leser sich aber auch vorcompilierten EXE Dateien ohne Quellcode oder mit Videos zufriedengeben. Schade ist, dass insbesondere für den KI Teil kaum Beispielcode vorhanden ist. Nur zwei der acht Gems werden hier abgedeckt. Weiterhin finden sich auf der CD das DirectX 9 SDK (mit Stand Dezember 2004), alle Grafiken aus dem Buch als TIF, das GLUT Toolkit in der Version 3.7.6, das Java Standard Edition SDK in der Version 1.4.2_06 für Windows und Linux, sowie ein Inhaltsverzeichnis, mit dem man leicht die einzelnen Beiträge auf der CD erreicht.
Die vorliegende Ausgabe der Game Programming Gems geht wieder einmal mit der Zeit. Immer leistungsfähigere Prozessoren, insbesondere auf der Grafikkarte, machen immer realistischere Simulationen möglich, neue Spiele versetzen den Betrachter durch fotorealistische Darstellungen in Echtzeit ins Staunen. Wer das Buch durchblättert, sollte einen Blick auf die Farbtafel in der Mitte werfen, wo die beeindruckenden Effekte zu sehen sind. Selbst für das Rendern von Edelsteinen präsentiert ein ATI Mitarbeiter einen Ansatz, womit deutlich wird, in welchem Detail heute auf die realistische Darstellung geachtet wird.
Ich hatte erwartet, nach Lesen von GPG5 meine Rezension mit Lobpreisungen beginnen zu wollen. Der subjektive Gesamteindruck ist aber diesmal leider nicht so gut wie erwartet. Zwar sollte sich jeder Leser unbedingt selbst das Inhaltsverzeichnis vornehmen und feststellen, ob für ihn interessante Themen dabei sind; ich selbst empfand die Artikel jedoch nicht alle so gut ausgewählt wie in den letzten Teilen. Besonders bei den Artikeln zur allgemeinen Programmierung hat mir der Aha-Effekt gefehlt, der die letzten Male aufgekommen ist. Ich hatte nicht mehr den Eindruck, hier einen neuen Trick gelernt zu haben. Viel versprochen hatte ich mir z.B. vom Artikel „Building Lua into Games“: während die meisten anderen Artikel sehr ins Detail gehen, musste ich jedoch feststellen, dass hier nur an der Oberfläche gekratzt wird. Ebenso passte mir der Artikel zur Implementierung eines Menüsystems nicht ganz ins Gesamtniveau der Serie, welche sich eigentlich an fortgeschrittene Entwickler richtet.
Einige Artikel haben mich diesmal aber auch wieder begeistern können: Scott Jacobs beschreibt in seinem Gem „Visual Design of State Machines“, wie ein Open-Source UML-Tool UMLPad zur grafischen Umsetzung von State Machines verwendet werden kann. Jacobs macht sich die Tatsache zunutze, dass das Dateiformat leicht zu parsen und in Code zu konvertieren ist. Eine Idee, die so einfach wie genial ist. Auch ein Artikel aus der KI-Sektion, „Implementing Practical Planning for Game AI“, war faszinierend zu lesen: aus einem initialen Zustand und einer Reihe von Definitionen und Regeln ermittelt die KI hier den richtigen Weg zum gewünschten Endzustand. Leider findet sich hierzu nicht mehr Anschauungsmaterial auf der CD.
Wie bereits erwähnt handelt es sich hierbei aber um einen subjektiven Eindruck, und die Anzahl verwertbarer Artikel ist sehr von den persönlichen Präferenzen und Fähigkeiten des Lesers abhängig. Selbstverständlich kann eine Game Programming Gems Ausgabe, die sich an Programmierer der verschiedenen Disziplinen richtet, einem einzelnen nie vollkommen gerecht werden. Das ist aber auch die Stärke dieser Reihe, die sich durch das breite Themenspektrum in der Bibliothek eines Entwicklerstudios oder im Regal des vielseitig interessierten Entwicklers unverzichtbar macht.
Homepage zur Game Programming Gems Reihe, mit Errata: http://www.gameprogramminggems.com/
Kim Palister (Editor), „Game Programming Gems 5“;
Charles River Media 2005;
ISBN 1-58450-352-1
Matthias Gall, September 2005