Programming Linux Games

Informationen zum Buch

Verlag: NoStarch Press
Seitenanzahl: 415
Sprache: Englisch
Programmiersprache: C, Tcl
Voraussetzungen: C-Kenntnisse, ein eingerichtetes Linux-Betriebssystem
Autor der Rezension: nufan

Rezension

„Programming Linux Games“ versucht dem Leser 2D-Spielentwicklung unter Linux-Betriebssystemen näher zubringen.
Das ganze erworbene Wissen wird verwendet um das Multiplayer-fähige 2D Spiel „Penguin Warrior“ zu entwickeln.
Es geht aber nicht um eine Programmiersprache oder Grafik-API, sondern um Spielprogrammierung. Kenntnis der Sprache C wird dabei vorausgesetzt.
Wie sieht das Grundgerüst eines Spiels überhaupt aus? Wie tausche ich meinen Code mit anderen Programmierern aus? Wie verbreite ich mein Programm in der Linux-Community? Welche APIs stehen mir unter Linux zu Verfügung? All diese Fragen und noch viele mehr werden ausführlich beantwortet.
Am Anfang ein eher theoretischer Teil über Programmierung. Nach einem kurzem Überblick über verschiedene Programmier-Tools wie z.B. Makefiles und gdb folgt ein CVS-Tutorial, das zeigt, wie man Module erstellt, verwaltet und updated.
Nach der kurzen Einführung geht es auch schon mit den SDL-Grundlagen los. Auch dieses Kapitel beschränkt sich eher auf die Grundlagen wie die Initialisierung von SDL und das Darstellen von Bildern und einfachen Animationen. Neben der SDL wird auch der Linux-Framebuffer als Grafik-Alternative angeboten. Da dieser aber aufwendiger ist und etwas mehr Geschick erfordert, befindet sich dieses Kapitel am Ende des Buches.
Zur Sound-Ausgabe werden ALSA, OSS und OpenAL verwendet. Alle drei werden einzeln behandelt und ihre Vor- und Nachteile durchbesprochen.
Für die Implementierung des Multiplayer-Modes werden spezielle Linux/Unix-Header benötigt.
Neben den C-Erweiterungen wird aber auch der Syntax der Skriptsprache Tcl erklärt. Aufgrund der Einfachheit der Sprache ist auch dieses Thema schnell erledigt. Aber vor allem die Einbettung von Tcl in C-Programme ist sehr nützlich.
Gegen Ende des Buches werden immer öfters Linux-spezifische Bibliotheken für z.B. Framebuffer und Netzwerk verwendet. Dadurch geht die Systemunabhängigkeit verloren. Doch es ist ja auch nicht Ziel des Buches systemunabhängige Spiele zu entwickeln.
Das Buch hält also was der Titel verspricht.

Pro / Kontra

+ Programmierung auf Linux wird von Grund auf überblicksmäßig erklärt (Kompiliervorgang, Makefiles, CVS, etc.)
+ es wird viel Hintergrundwissen vermittelt (z.B. Netzwerk)
+ man beschränkt sich nicht nur auf eine bestimmte API
- oft seitenlange Codebeispiele die schwer zu lesen sind
- die meisten Codes sind nur ein kleiner Teil von „Penguin Warrior“, wodurch ihr Sinn schwerer zu verstehen ist
- bei Erklärungen von Funktionen werden verwirrende Prototypen verwendet
- verwendete Strukturen werden oft nicht im Detail erklärt
- geht oft zu wenig ins Detail

Bewertung

7 / 10