Game Programming Gems 6


Bereits im März ist im Charles River Verlag der nunmehr sechste Teil der erfolgreichen Game Programming Gems Reihe erschienen, die dem Anspruch gerecht werden möchte, Spieleentwicklern nicht nur wertvolle Anregungen zu liefern, sondern fertige und topaktuelle Lösungen für die verschiedenen Teildisziplinen zur Verfügung zu stellen. Namentlich widmet sich die sechste Ausgabe diesmal den Themen General Programming, Mathematics and Physics, Artifical Intelligence, Scripting and Data-Driven Systems, Graphics, Audio, sowie Network and Multiplayer auf insgesamt 695 Seiten. Dazu nehmen sich Experten einzelnen Themen an und präsentieren Lösungen in Einzelartikeln, den sogenannten Gems, von denen es insgesamt 50 über die genannten Kapitel verteilt gibt. Die Gesamtredaktion hat diesmal Michael Dickheiser übernommen, der sich bei Red Storm Entertainment für die erfolgreiche Ghost Recon Spielereihe mitverantwortlich gezeichnet hat (aus der übrigens auch das Cover-Bild stammt) und auf zehn Jahre Erfahrung in der Spieleindustrie zurückblicken kann.
Nach dem obligatorischen Vorwort durch den Redakteur des ersten GPG Teils, Mark DeLoura, und der Autorenvorstellung, folgt wie bereits in den vorherigen Ausgaben zunächst das Kapitel, das sich allgemeinen Herausforderungen in der Programmierung widmet bzw. diejenigen Themen behandelt, die in keines der weiteren Kapiteln passen: General Programming. Hier finden sich diesmal z.B. Artikel zu Unittests in C++ oder Parallelismus. Beim zweiten Kapitel werden diejenigen Leser, die bereits einen Vorgänger gelesen haben, eine Veränderung feststellen. Kapitel zwei, das bisher ausschließlich der Mathematik vorbehalten war, wird diesmal mit der Physik gemischt, und heißt demnach Mathematics and Physics. Artificial Intelligence ist Thema des dritten Kapitels. Ein Kapitel weiter warten die nächsten Neuerungen im Vergleich zum Vorgänger auf: Zum ersten Mal beschäftigen sich Gems in einem eigenen Kapitel Scripting and Data-Driven Systems mit der Tatsache, dass Spiele keine geschlossenen Systeme mehr sind, sondern durch Unmengen von Daten getrieben sind, und dass längst nicht mehr der Programmierer das Spielgeschehen alleine steuert, sondern z.B. Level-Designer oder Grafiker ihre Arbeit in Form von Skripten selbst und ohne Abhängigkeit vom Programmierer integrieren. Dazu gehört bspw. ein Vergleich der gängigen, frei verfügbaren Skiptsprachen Python, Lua, AngelScript und GameMonkey, sowie Gems zu konkreten Anwendungen von Lua und Python. Mit Graphics, Audio und Network and Multiplayer folgen dann die drei letzten, auch schon aus den letzten Ausgaben bekannten Kapitel. Keine Überraschung sollte sein, dass Graphics mit zehn Gems wieder das umfangreichste der spezialisierten Kapitel ist.
Wie immer ist eine CD enthalten, die das Begleitmaterial zu den Kapiteln enthält. Der Großteil des C/C++ Quellcodes kommt mitsamt einer Visual Studio Solution und enthält vorcompilierte Executables, so dass Beispielprogramme direkt ausprobiert werden können. Darüber hinaus findet sich auf der CD das DirectX SDK (mit Stand Dezember 2005), alle Grafiken der in der Buchmitte enthaltenen Farbbildseiten im TIF Format, das GLUT Toolkit in der Version 3.7.6 sowie der GLEW Wrapper für Windows und Linux in der Version 1.3.3, sowie ein Inhaltsverzeichnis und Lizenzinformationen.
In meiner Rezension zum letzten Teil der GPG Serie habe ich mich darüber beklagt, dass der dort vorhandene Artikel “Building Lua into Games” aus dem General Programming Kapitel nur an der Oberfläche kratzt. Mit der aktuellen Ausgabe vor mir fällt mir auf, dass ich genau so gut hätte fragen können, “Warum gibt es eigentlich kein eigenes Kapitel zum Thema Scripting?”. Das jedenfalls war die einzig mögliche Konsequenz, um nicht länger an der Oberfläche kratzen zu müssen, und so gibt es im neusten Teil endlich ein eigenes Kapitel Scripting and Data-Driven Systems – das inhaltlich übrigens neben Artifical Intelligence zu meinen Favoriten in der aktuellen Ausgabe gehört. Auch wenn ich persönlich der Meinung bin, dass das überfällig war, zeigt es, wie sehr sich die Redaktion weiterhin darum bemüht, ein rundes Paket anzubieten. Im siebten Teil erwarte ich damit konsequenterweise einen Artikel über die Nutzung der gerade in Mode kommenden Physikprozessoren. Dass das Physik-Kapitel, dass in der vierten GPG Ausgabe eigens eingeführt wurde, offenbar zugunsten des neuen Themas weichen musste, um sich nun den Platz mit der Mathematik zu teilen, lässt sich als Leser verschmerzen.
Überraschend ist, dass das Kapitel Mathematics and Physics sich trotz dieser Zusammenlegung mit nur sechs Gems im Vergleich zu den übrigen Kapiteln und insbesondere zum Umfang in den vorherigen Ausgaben als relativ schlank präsentiert. Ein weiterer Wermutstropfen in der aktuellen Ausgabe ist das Fehlen jeglichen Begleitmaterials zum Artificial Intelligence Kapitel. Für keines der neun Gems gibt es Quellcode oder Beispielprogramme.
Nach sechs Teilen GPG liegt es nahe, einen Vergleich zu den vorherigen fünf Teilen zu ziehen, aber das fällt schwer. Schließlich bietet GPG ständig neue Artikel unterschiedlicher Autoren, deren Qualität aufgrund der verschiedenen Themen und der variierenden Schwierigkeit mitunter nur subjektiv bewertet werden kann. Grundsätzlich zeigt sich, dass die Redaktion ihre Fühler ausgestreckt hält und Anforderungen aus der Spieleentwicklung wenn nötig auch zum Anlass nimmt, neue Kapitel einzuführen. So macht sich die neuste Ausgabe um so interessanter…
…und breiter! Game Programming Gems 6 zeichnet sich durch Breite wie Tiefe gleichermaßen aus. Neben den obligatorischen Englischkenntnissen sind also nicht nur solide Programmierkenntnisse in C oder C++ nötig, sondern auch fortgeschrittene Kenntnisse des Fachgebiets. Wer neugierig auf Spieleentwicklung ist und den Einstieg sucht, ist daher mit anderen Titeln besser beraten. Wer jedoch Strategien zur Umsetzung eines konkreten Problems oder Hilfe bei deren Implementierung sucht, nach alternativen Ansätzen für ein Problem Ausschau hält, oder einfach auf der Höhe der Technik bleiben möchte, der ist mit Game Programming Gems 6 wieder gut beraten.
Für einen siebten Teil werden derzeit keine Einsendungen angenommen. Es bleibt zu hoffen, dass diese interessante Buchreihe der Leserschaft auch in Zukunft erhalten bleibt durch die Beteiligung von schreibwütigen Entwicklern Einblicke in letzten Errungenschaften der Spieletechnologie liefert.
Homepage zur Game Programming Gems Reihe, mit Errata: http://www.gameprogramminggems.com
Mike Dickheiser (Editor), “Game Programming Gems 6”;
Charles River Media 2006;
ISBN 1-58450-450-1
Matthias Gall, September 2006

Leave a Reply

Your email address will not be published. Required fields are marked *