: Danny Reinhold, Wolfgang Schmidt
: Einführung in die Programmierung von 2-D-Spielen
: entwickler.press
: 9783868025941
: 1
: CHF 2.70
:
: Informatik
: German
: 84
: Wasserzeichen
: PC/MAC/eReader/Tablet
: ePUB
Die meisten Menschen haben in ihrem Leben wohl schon einmal ein Computerspiel gespielt - und viele werden sich gefragt haben, wie diese eigentlich funktionieren. Dieser shortcut erläutert die Grundlagen der 2D-Spieleprogrammierung unabhängig von konkreten Frameworks, Technologien und Plattformen. Neben einer Einführung in die Geschichte und Theorie präsentieren die Autoren ein komplettes, spielbares 2D-Spiel im Stil der 80er und 90er Jahre zum Nachbauen. Zuletzt wird die Frage nach der Implementierbarkeit eines solchen Spiels im Browser mit JavaScript und HTML5 gestellt und anschaulich beantwortet.

Danny Reinhold bekam Anfang der 80er Jahre einen C16 geschenkt und lebt seither seine Leidenschaft als Softwareentwickler und Bastler aus. Er hat an der Universität Bremen Mathematik und Informatik studiert und ist seit 2002 als freiberuflicher Softwareentwickler mit unterschiedlichen Schwerpunkten tätig. Privat beschäftigt der begeisterte Marathon- und Ultramarathonläufer sich gerne mit ungewöhnlichen und teils auch veralteten Technologien und lernt immer gerne dazu. Wolfgang Schmidt programmiert seit 1985 Computer - angefangen mit einem Ti 99/4A und kurze Zeit später mit einem Atari 800 XL. Er studierte Informatik an der Universität Bremen und arbeitet seit fünfzehn Jahren als Softwareentwickler, hauptsächlich mit der Programmiersprache Python. In seiner Freizeit praktiziert er Zazen (Zen-Meditation) und spielt Gitarre.

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:

  1. Herunterladen des Tiny-C-Compilers [4]. Laden Sie die aktuelle Versiontcc-0.9.26-win64-bin.zip herunter. Falls Sie ein