2 Implementierung auf Basis von ANSI C und der Bibliothek SDL
Nachdem wir im ersten Kapitel bereits einiges über die Geschichte und die Theorie von 2-D-Computerspielen berichtet haben, steigen wir nun in die Praxis ein und präsentieren ein komplettes spielbares 2-D-Spiel für den PC (Windows, Linux) und andere Plattformen wie Raspberry Pi, Mac OS X, iOS und Android.
In diesem Kapitel springen wir direkt in die Praxis. In diesem shortcut geht es um 2-D-Spiele im Stil der 80er- und frühen 90er-Jahre. Diese Spiele sind meist relativ einfach aufgebaut, daher haben wir uns für den Einsatz relativ einfacher Technologien entschieden. Dennoch möchten wir, dass der Code portabel ist und auf fast jedem System übersetzt und ausgeführt werden kann.
Wir haben die Programmiersprache C gewählt, für die so ziemlich überall geeignete Compiler verfügbar sind. Und um nicht lange beschreiben zu müssen, wie geeignete Makefiles aufgebaut werden oder das Projekt in einem IDE zusammengestellt werden kann, verwenden wir den TinyC-Compiler [1]. Dieser Compiler wird zwar nicht mehr aktiv weiterentwickelt, ist aber für praktisch alle Systeme verfügbar, funktioniert sehr gut, erfordert keine umfangreiche Installation und reicht für unsere Zwecke völlig aus. Wenn Sie mit einem anderen Compiler oder einer komplexeren Entwicklungsumgebung als einem Texteditor arbeiten möchten, können Sie dies selbstverständlich tun.
Einige Hauptaufgaben bei Computerspielen sind die Darstellung von Grafiken, die Ausgabe von Geräuschen und Musik sowie die Abfrage von Tastatur-, Maus-, Joystick-, Controller- oder sonstigen Eingabegeräten. Das sind auch genau die Aufgaben, die am einfachsten mit portablen, genau auf diese Aufgaben spezialisierten Bibliotheken erledigt werden können. In diesem Kapitel verwenden wir die Bibliothek SDL [2], die für alle für unsere Zwecke relevanten Systeme verfügbar ist. Diese Bibliothek nimmt uns so viel Arbeit ab, dass wir uns im Code auf die wirklich wichtigen Dinge konzentrieren können: auf das Spiel!
Bomber – ein Klassiker
In diesem Kapitel entwickeln wir Schritt für Schritt den Quelltext für ein Spiel, das wir „Bomber“ nennen. Die Idee für das Spiel ist natürlich, wie sollte es bei einem shortcut über Retro-Games auch anders sein, abgekupfert. Das erste Spiel dieser Art hieß „Canyon Bomber“, stammte von Atari und wurde 1977 veröffentlicht. Von diesem Spiel gibt es unzählige Klone, so z. B. das bekannte „City Bomber“ von 1982, zu dem Sie weitere Details im Wikipedia-Artikel „City Bomber“ nachlesen können [3].
Die Spielidee ist denkbar simpel: Ein Flugzeug fliegt von links nach rechts über den Bildschirm. Im unteren Bereich ist die Skyline einer Stadt zu sehen. Durch Drücken der Space-Taste kann eine Bombe abgeworfen werden. Wenn die Bombe ein Haus trifft, wird es zerstört. Ziel ist es natürlich, alle Häuser der Skyline zu zerstören. Fliegt das Flugzeug rechts aus dem Bildschirm heraus, so erscheint es links wieder – allerdings etwas tiefer. Schritt für Schritt näher sich das Flugzeug also dem Boden. Falls es so tief kommt, dass es ein Haus berührt, ist das Spiel beendet.
Einrichten der minimalen Entwicklungsumgebung unter Windows
Die Einrichtung der „Entwicklungsumgebung“ unter Windows besteht aus einigen einfachen Schritten:
- Herunterladen des Tiny-C-Compilers [4]. Laden Sie die aktuelle Versiontcc-0.9.26-win64-bin.zip herunter. Falls Sie ein