»Jetzt lerne ich - Spieleprogrammierung mit DirectX und VisualC++«, dazu das für JLI - Bücher obligatorische »Start ohne Vorwissen« auf dem Titelblatt - das verspricht einiges. Sozusagen von 0 auf 100 in 450 Sekunden...äh...Seiten.
Da stelt sich die Frage, ob der Autor diesem hohen Anspruch, den er selbst gesetzt hat, auch gerecht werden kann. Um gleich eine Antwort zu geben: ihm ist zwar eine sehr schöne »Annäherungslösung« gelungen, aber an weiterer Literatur, insbesondere im DirectX-Bereich, wird den Anfänger kein Weg vorbeiführen.
Das Buch beginnt mit einer gründlichen Einführung in C++ und den Compiler Visual C++, der in einer Autorenversion auf der CD vorliegt. Hier werden alle wichtigen Elemente der Sprache fü Anfänger ausführlich behandelt, Fortgeschrittene sollten diesen Abschnitt als Nachschlagewerk nicht verachten. Nach Erläuterung der Grundlagen, also Variablen, Datentypen, Operatoren und Schleifen folgen Abschnitte zu Funktionen und Zeigern. Ein Einblick in die »Objektorientierte Programmierung« rundet den ersten Abschnitt ab.
Anschließand darf sich der Leser nicht sofort auf DirectX stürzen, sondern es folgen erst die Grundlagen der Programmierung unter Windows, ohne jedoch zu sehr ins Detail zu gehen. Es wird ien einfaches Fenster erstellt, in das durch das GDI einige geometrische Formen gezeichnet werden. Zusammenhängend damit wird auch das Thema Vererbung besprochen.
Nun bleiben noch 200 Seiten für DirectX. Nicht besonders viel, aber dem Autor gelingt es, alle wichtigen Bereiche anzusprechen und dabei auch einen sehr einfachen 2D-Shooter zu entwickeln. Der Hauptaspekt liegt klar auf dem 2D-Bereich, so wird DirectDraw relativ ausführlich besprochen, ebenso unverzichtbar sind die Erklärungen von Oberflächen und Sprites. Nach kurzen Abschnitten über DirectInput und DirectX Audio folgt dann das Spiel. Hier werden die bisher entwickelten DirectX-Klassen zusammengesetzt und teilweise leicht erweitert. Dann darf man vor einem Sternenhimmel andere Raumschiffe und Asteroiden abschießen. Der Spielspaß hält sich dabei klar in Grenzen, aber die Technik soll ja auch im Vordergrund stehen. In den letzten beiden Kapiteln wird der Leser in die Komplexität der 3D-Grafik eingeführt und erstellt einfache rotierende Würfel.
Wie bereits erwähnt, liegt dem Buch eine CD bei. Diese beinhaltet eine Autorenversion von VisualC++ 6.0, mit der man Anwendungen zwar erstellen kann, diese aber nicht kommerziell vermarkten darf. Eine Textbox weist den Benutzer bei jedem Start der erstellten Anwendungen darauf hin. Ebenfalls enthalten ist das DirectX 8 Software Development Kit. Zusätzlich gibt es Testversionen von diversen Programmen, u.a. 3D Exploration, Cagliari und PaintShopPro. Selbstverständlich dürfen alle Beispielprogramme nicht fehlen.
Leider hat das Buch besonders im DirectX-Teil einige Schwächen. So werden Variablennamen nicht immer beibehalten, so dass man bei der Benutzung eines Quelltextabschnittes aus dem vorigen Kapitel manchmal lange suchen muss, um die entsprechenden Fehlermeldungen auszumerzen. Bei dem Spiel handelt es sich leider eher um bewegte Bilder, die auf Spieleriengaben reagieren, in der Kürze des Buches ist aber nicht mehr möglich. Die Erklärungen zu DirectX könnten etwas ausführlicher ausfallen. Dennoch gibt es für Anfänger kein besseres Buch, um einen guten Einblick in die Spieleprogrammierung zu erhalten. Die C++-Einführung ist umfangreich genug, der DirectX-Teil macht Lust auf weiterführende Literatur.