Videospielkultur.de » Artikel

Rezension: C++ für Spieleprogrammierer

01. 05. 2016 | Kategorie: Artikel | Autor: Mario Siewert

Wer sich mit der Programmierung von Computer- oder Videospielen beschäftigt, muss sich an irgendeinem Punkt für eine Programmiersprache entscheiden. C++ gilt aufgrund seiner plattformübergreifenden Kompatibilität, der Objektorientierung und der Geschwindigkeit als Favorit vieler Spieleentwickler, auch wenn die Programmiersprache den Ruf besitzt nicht gerade einfach zu sein. Anfänger, die erste Schritte in C++ unternehmen möchten und gleichzeitig auf der Suche nach Programmier-Beispielen aus der Spieleentwicklung sind, finden im Buch „C++ für Spieleprogrammierer“ ein umfassendes Einstiegswerk, das dem Erlernen der bekannten Programmiersprache seinen Schrecken nimmt.

Das von Heiko Kalista geschriebene Buch ist vor kurzem in der aktualisierten fünften Auflage erschienen und richtet sich an absolute Neulinge des Themengebiets. Grundkenntnisse aus anderen, möglicherweise nicht objektotientierten Programmiersprachen sind zwar hilfreich, werden aber beim Lesen nicht vorausgesetzt. Der Autor fängt ganz von vorne an und erläutert zunächst anhand zahlreicher Beispiele, die allesamt mit Quellcode hinterlegt sind die Grundlagen der Programmierung. Der obligatorische „Hallo Welt“-Text wird zwar durch durch einen anderen Satz ersetzt, dennoch beginnt auch „C++ für Spieleprogrammierer“ mit einem klassischen Beispiel-Programm, das lediglich einen vorgegebenen Text ausgibt. Anschließend wird detailliert auf die beiden Entwicklungsumgebungen Visual Studio und Xcode eingegangen. Neben Windows-Benutzern finden daher auch Anwender mit einem Mac entsprechende Hilfestellungen. Linux-Nutzer bleiben dagegen erst einmal außen vor bleiben.

Im weiteren Verlauf werden Schritt für Schritt die Grundlagen der Programmierung erklärt, wobei der Autor alle aufgeführten Programmier-Beispiele bis ins kleinste Detail erläutert und auf alle wichtigen Code-Zeilen eingeht. Als Nachschlagewerk eignet sich der Titel daher nur bedingt, wer jedoch ohne Vorkenntnisse das Programmieren lernen möchte findet sich daher umso besser zurecht.

Cover: C++ für SpieleprogrammiererBereits zur Erklärung von Programmier-Grundlagen wie der Verwendung von Variablen, Schleifen, Funktionen oder Arrays werden jeweils spielebezogene Beispiele herangezogen. Auch wenn die Beispiele in den meisten Fällen von einem einigermaßen spielbaren Spiel noch weit entfernt sind, kann dieses Konzept als gelungen bezeichnet werden: Irgendeines Beispieles hätte es ohnehin bedurft und bei den verwendeten Beispielen, bei denen es beispielsweise um die Definition von Spielernamen oder das Berechnen von Highscores geht, sorgt die Thematik nicht nur für Extra-Motivation bei spielebegeisterten Lesern, sondern gibt auch zudem einen ersten Eindruck darüber, an welchen Stellen die gelernten Methoden in der Praxis angewendet werden können. Die Beispiele werden dabei extrem detailreich durchgearbeitet, so dass man diese im Normalfall auch als Programmier-Neuling verstehen kann, ohne sich anderer Quellen zu bedienen, sofern man das Buch wirklich von Anfang an durcharbeitet.

Nachdem die Grundlagen der Programmierung gelegt wurden, werden dem Leser weiterführende Methoden wie die Verwendung von Zeigern oder die für objektorientierte Programmierung unumgänglichen Klassen beigebracht. Anschließend folgen weitere Kapitel, in denen für das Programmieren mehr oder weniger notwendige oder nützliche Methoden und Vorgehensweisen beschrieben werden, bevor den Leser schließlich endlich das Kapitel erwartet, in dem die Programmierung eines eigenständigen Spiels auf Basis der Simple DirectMedia Layer Library (SDL) erläutert wird. Auch wenn es sich aus spielerischer Sicht um einen relativ simplen 2D-Shooter mit wenigen Funktionen handelt, ist das dahinter liegende Quelltext-Beispiel so umfangreich, dass ein komplexeres Beispiel-Spiel den Rahmen des Buches ziemlich sicher gesprengt hätte. Bereits in dem im Buch hinterlegten Beispiel muss man sich durch mehr als 50 Seiten arbeiten, um endlich das Ziel zu erreichen ein komplettes Spiel programmiert zu haben.

Nachdem von den Grundlagen über erweiterte Programmiertechniken alle Themen behandelt wurden und gezeigt wurde, wie sich das Erlernte in einem Spiel in der Praxis anwenden lässt, könnte „C++ für Spieleprogrammierer“ eigentlich zu Ende sein. Stattdessen aber wird in einem abschließenden Kapitel noch einmal im Detail auf die Spieleentwickler-Szene eingegangen. Neben Ratschlägen zur Vorgehensweise bei der Entwicklung eigener Projekte wird auch erläutert, welche Möglichkeiten es gibt sich mit anderen Spieleentwicklern auszutauschen und sich weiteres Wissen anzueignen. Gerade der letzte Punkt ist von besonderer Bedeutung, da trotz des Umfangs von knapp 500 Seiten natürlich bei weitem nicht alle Themen, die für die Spieleprogrammierung von Bedeutung sind innerhalb des Buches behandelt werden können.

In der fünften Auflage von „C++ für Spieleprogrammierer“ wurden erwartungsgemäß einige Abschnitte aktualisiert und dem Stand der Zeit angepasst. Beispielsweise orientiert sich das Kapitel zur SDL nun an der SDL 2 und auch die Abschnitte zu den Entwicklungsumgebungen beziehen sich auf die aktuellen Versionen der Programm-Pakete. Im Vergleich zur vierten Auflage finden sich zudem auch einige neue Themengebiete im Buch wieder. Dennoch dürfte ein Kauf für Besitzer vorheriger Auflagen in vielen Fällen eher nicht empfehlenswert sein.

Da sich „C++ für Spieleprogrammierer“ vor allen Dingen mit den Grundlagen der C++-Programmiersprache beschäftigt, sind viele der behandelten Themen zwar nicht zeitlos, haben sich im Laufe des letzten Jahrzehnts aber nicht wesentlich geändert. Dass die erste Auflage des Buches mittlerweile fast 12 Jahre auf dem Buckel hat fällt daher beim Lesen nur selten auf, nicht zuletzt dank des lockeren Schreibstils von Heiko Kalista und aufgrund der Tatsache, dass die entscheidenden Punkte wie bereits erwähnt eben doch aktualisiert wurden. Die Stellen, an denen man dem Buch sein ursprüngliches Alter doch anmerkt sorgen dann zudem eher für ein Schmunzeln, beispielsweise wenn im Rahmen einer Aufzählung alternativer Programmiersprachen die objektorientierte Sprache Delphi erwähnt wird, deren Bedeutung heute eher gering ist.

Fazit

Wer sich für die Entwicklung von Computerspielen programmiert, bisher aber noch keine oder kaum Programmierkenntnisse besitzt, für den führt kein Weg an „C++ für Spieleprogrammierer“ von Heiko Kalista vorbei. Alle elementaren Programmier-Methoden werden penibel mittels zahlreicher Code-Beispiele vorgestellt, die zudem allesamt in den Kontext typischer Situationen aus Computerspielen eingebettet sind. Der lockerer Schreibstil des Autors ist sicher nicht jedermanns Sache, dürfte aber gerade bei der Zielgruppe der Computerspieler gut ankommen. Dass Linux-Nutzer bei den vorgestellten Entwicklungsumgebungen außen vorbleibt stört nur bedingt. Aufgrund des Aufbaus als mehr oder weniger unterhaltsames Lehrbuch eignet sich das Buch dagegen eher nicht als Nachschlagewerk.

Kommentar verfassen:

Dein Name:   

Sicherheitscode:  



 

Bisherige Kommentare:

Es gibt bisher noch keine Kommentare.