Einführung in die Programmierung von 2-D-Spielen
Von Danny Reinhold und Wolfgang Schmidt
()
Über dieses E-Book
Ähnlich wie Einführung in die Programmierung von 2-D-Spielen
Titel in dieser Serie (29)
F#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenUX Design - Definition und Grundlagen: Definition und Grundlagen Bewertung: 4 von 5 Sternen4/5Testing mit Visual Studio 2012: Testing mit Visual Studio 2012 Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenPaaS - Die wichtigsten Java Clouds auf einen Blick: Die wichtigsten Java Clouds auf einen Blick Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 TFS 2012 Team Build - Architektur und Installation: Architektur und Installation Bewertung: 0 von 5 Sternen0 BewertungenErfolgreich bewerben in der IT - die besten Praxistipps von A wie (Anschreiben) bis Z (wie Zeugnis) Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Bewertung: 0 von 5 Sternen0 BewertungenMigration von ZF1 nach ZF2 - ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenBarrierefreiheit - Handwerkszeug und technisches Verständnis: Handwerkszeug und technisches Verständnis Bewertung: 0 von 5 Sternen0 BewertungenPIC-Mikrocontroller: Grundlagen und Praxisworkshop Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL in Space Bewertung: 0 von 5 Sternen0 BewertungenEinführung in die Programmierung von 2-D-Spielen Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenBessere Softwareentwicklung mit DevOps Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform: Entwicklung und Anwendung Bewertung: 0 von 5 Sternen0 BewertungenSoft Skills in der IT Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Teil 2 Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenDas Vulkan-API: Teil 3: Umgang mit 3-D-Daten Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenEinstieg ins Machine Learning: Grundlagen, Prinzipien, erste Schritte Bewertung: 0 von 5 Sternen0 BewertungenDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Bewertung: 1 von 5 Sternen1/5
Ähnliche E-Books
Spiele entwickeln für iOS und Android mit Cocos2D: Programmieren für die großen Smartphone-Plattformen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: Minecraft-Welten erschaffen Bewertung: 0 von 5 Sternen0 BewertungenGaming: Wissenswertes Rund um das Phänomen Videospiele Bewertung: 0 von 5 Sternen0 BewertungenGames | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL in Space Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
JavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Python kurz & gut: Für Python 3.x und 2.7 Bewertung: 4 von 5 Sternen4/5Das große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Powerprojekte mit Arduino und C: Schluss mit dem frustrierenden Ausprobieren von Code-Schnipseln! Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Python | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenSQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenMehr als Clean Code: Gedanken zur Softwareentwicklung Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenGitHub – Eine praktische Einführung: Von den ersten Schritten bis zu eigenen GitHub Actions Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenMobile Web-Apps mit JavaScript: Leitfaden für die professionelle Entwicklung Bewertung: 0 von 5 Sternen0 BewertungenKontinuierliche Verbesserung mit Agile Retrospektiven: Methoden und Werkzeuge für nachhaltigen Teamerfolg Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Einführung in die Programmierung von 2-D-Spielen
0 Bewertungen0 Rezensionen
Buchvorschau
Einführung in die Programmierung von 2-D-Spielen - Danny Reinhold
1 Einführung in die Programmierung von 2-D-Spielen
Die meisten Softwareentwickler haben in ihrem Leben wohl mindestens einmal ein Computerspiel gespielt – und viele werden sich gefragt haben, wie das eigentlich funktioniert. Bei Recherchen trifft die/der Interessierte dann schnell auf Frameworks und Tools, die sehr mächtig und leistungsfähig sind. Diese verlangen aber auch eine gewisse Einarbeitungszeit, außerdem sind sie fast immer an bestimmte Technologien/Plattformen gebunden. Das führt dann oft dazu, dass man sich dann doch nicht weiter mit diesem eigentlich interessanten Thema beschäftigt. Das ist bedauerlich, denn einerseits kann man anhand der Programmierung von Spielen viel lernen, und andererseits macht das Entwickeln eigener Spiele auch sehr viel Spaß.
In diesem shortcut wollen wir deshalb – zunächst unabhängig von konkreten Frameworks, Technologien und Plattformen – die Grundlagen der Spieleprogrammierung in 2-D beleuchten und anschließend demonstrieren, wie diese Grundlagen mit verschiedenen Technologien konkret umgesetzt werden können. Dabei wird jeweils ein vollständig spielbares Spiel implementiert. Auf dieser Basis sollte der Leser dann in der Lage sein, eigene Ideen mit der Technologie seiner Wahl umzusetzen.
Computerspiele sind allgegenwärtig. Es gibt sie auf dedizierter Hardware (Nintendo, Microsoft, Sony), als hochgezüchtete Spiele für ebenso hochgezüchtete High-End-Gamer-PCs, als Java-Game für das „Dumbphone", als Android-/iPhone-App für Smartphones und als Browserspiel im Internet. Die zugrunde liegenden Technologien sind vielfältig. Nichtsdestotrotz gibt es grundlegende Techniken, die weitgehend unabhängig von der jeweils eingesetzten Technologie sind. Das Verständnis dieser Techniken bildet die Basis, auf der dann eigene Spiele unter Verwendung beliebiger geeigneter Technologien umgesetzt werden können.
Spieleprogrammierung ist ein sehr komplexes und anspruchsvolles Thema, das in einem kurzen E-Book unmöglich erschöpfend behandelt werden kann. Aus diesem Grund wollen wir uns in diesem shortcut auf die Umsetzung einfacher 2-D-Spiele beschränken, um dem Leser den Einstieg zu erleichtern und erste eigene Schritte in der Spieleprogrammierung zu ermöglichen.
Ein Blick zurück – Computerspiele von den Anfängen bis heute
Computerspiele können auf eine lange Geschichte zurückblicken. Die ersten Spiele wurden schon zu einer Zeit implementiert, als ein Computer für eine Privatperson unerschwinglich war. Eines der ersten Spiele war etwa Spacewar!, das im Jahr 1962 fertiggestellt wurde und auf einem PDP-1 lief [1].
Sehr früh wurden die Möglichkeiten einer kommerziellen Verwertung von Computerspielen entdeckt. Zunächst begann man mit Spielautomaten (Arcade-Games), bei denen ein entsprechendes Gerät in einer geeigneten Lokalität (Kneipe, Disco, Spielhalle) aufgestellt wurde und sich durch die eingeworfenen Münzen schnell amortisierte.
Wenig später entwickelten sich die Telespiele, spezialisierte Spielhardware, die an den heimischen Fernseher angeschlossen werden konnte. Die grafischen Fähigkeiten waren anfangs eher bescheiden (verglichen mit den Arcade-Maschinen). Nichtsdestotrotz erlaubten die Telespiele endloses Spielen zu (verglichen mit ihren professionellen Pendants in den Spielhallen) sehr überschaubaren Kosten. Die Telespiele entwickelten sich zu modularen Systemen mit einer Basiskomponente, die die grundlegende Funktionalität bereitstellte, und Steckmodulen, die die konkrete Implementierung eines Spiels darstellten.
Anfang der Achtzigerjahre erlangten die Heimcomputer eine größere Verbreitung. Entscheidend war, dass es sich hier erstmals um erschwingliche Computer handelte, die komplett zusammengebaut waren. Ihr Betrieb setzte weder Kenntnisse der Digitaltechnik noch Versiertheit im Umgang mit dem Lötkolben voraus. In der ersten Generation bestand die Hardware typischerweise aus einem 8-Bit-Prozessor mit einer Taktung von 1 bis 4 MHz, 1 bis 64 KB Hauptspeicher sowie einem rudimentären Betriebssystem mit eingebautem BASIC im ROM.
Die grafischen Möglichkeiten waren aus heutiger Sicht wenig beeindruckend, die Auflösung betrug meist 192 x 256 oder 300 x 200 Pixel, wobei die Anzahl von darstellbaren Farben (wenn überhaupt vorhanden) stark begrenzt war. Ähnlich eingeschränkt war die Möglichkeit der Klangerzeugung. Als Leitfossil dieser Generation ist der C64 von Commodore zu nennen, der insbesondere aufgrund seiner Grafik- und Soundmöglichkeiten weiteste Verbreitung fand. Letztere wurden durch fest eingebaute Spezialkomponenten (Grafik- und Soundchips) ermöglicht, die diese Aufgaben anstelle der CPU übernahmen – insofern können sie als Vorgänger der heutigen Grafik- und Soundkarten angesehen werden.
Mit der Weiterentwicklung der Heimcomputer zu 16- und 32-Bit-Maschinen mit verbesserten Grafik- und Soundkarten wurden auch die Spiele anspruchsvoller. Relativ spät erhielten dann auch die bis dahin stark eingeschränkten IBM-PCs und ihre Nachfolger leistungsfähigere Grafik- und Soundhardware. In den Neunzigerjahren starben die Heimcomputer dann nach und nach aus – die PCs übernahmen ihre Nachfolge und wurden zu den wichtigsten „Spielmaschinen" in diesem Marktsegment.
Mit der Einführung immer kleinerer portabler Computer (Personal Digital Assistants, PDAs) und den ersten programmierbaren Handys kam es zu einem Revival vieler ursprünglich aus der Heimcomputerära stammender Spiele, da sie mit der verfügbaren Prozessorleistung und Grafikauflösung nahezu identisch übernommen werden konnten. Mit der Weiterentwicklung des Handys zum Smartphone und des PDAs zum Tablet wurden auch hier viel komplexere Spiele möglich.
Parallel entwickelten sich darüber hinaus die Browsergames. Die Besonderheit ist, dass die Spiele im Allgemeinen nicht installiert werden müssen, sondern über den Webbrowser ausgeführt werden. Dabei ist meist ein Teil der Logik auf einem Webserver implementiert, während ein anderer Teil lokal über Technologien wie JavaScript oder Flash umgesetzt wird.
Besonderheiten der Programmierung von Spielen
Das Programmieren von interaktiven Spielen mit grafischen Komponenten stellt in vielen Fällen neue Anforderungen an Programmierer, die bisher z. B. nur typische Businessanwendungen auf Grundlage von GUI-Frameworks erstellt haben. Wir werden im Folgenden einige der relevanten Unterschiede erläutern, wobei wir uns an klassischen Arcade-Spielen wie Space Invaders, Asteroids oder Ähnlichen orientieren.
Darstellung des Spiels auf dem Bildschirm
Einer der wichtigsten Aspekte ist, dass sich der Programmierer intensiver mit Fragen der Darstellung auseinandersetzen muss. Eine GUI-Anwendung wird im Allgemeinen erstellt, indem vorgefertigte Widgets aus einem GUI-Toolkit verwendet werden. Bei Spielen dagegen ist es notwendig, Objekte direkt auf dem Bildschirm zu zeichnen (rendern). Das kann auf verschiedene Weisen geschehen. Ein Weg besteht darin, Objekte als Streckenzüge (Polygone) zu
