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 (100)
Zend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5HTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Programmieren in C: Programmieren lernen von Anfang an - Mit vielen Programmierbeispielen - Geeignet zum Selbststudium Bewertung: 0 von 5 Sternen0 BewertungenLinux-Musikserver - Die Anleitung: 1hourbook Bewertung: 0 von 5 Sternen0 BewertungenMicrosoft KINECT: Programmierung des Sensorsystems Bewertung: 0 von 5 Sternen0 BewertungenOpenOffice kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPraktisches Programmieren in C: Grundlagen und Tipps Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenHilfreiche Programme für Linux-Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenTastenkombinationen für den Mac: Alle wichtigen Funktionen Bewertung: 0 von 5 Sternen0 BewertungenMach's einfach: Erste Schritte Raspberry Pi programmieren: Der perfekte Einstieg in die Programmierung mit Scratch und Python Bewertung: 0 von 5 Sternen0 BewertungenDas inoffizielle iPad-Buch: Jailbreak mit wenigen Klicks und Grundstücksüberwachung mit dem iPad Bewertung: 0 von 5 Sternen0 Bewertungen3D-Druck für Anspruchsvolle: Mit dem Ultimaker perfekte Werkstücke erstellen Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Coole Projekte mit Raspberry Pi: Mit viel Spaß und ohne Frust die Welt des Raspberry erobern Bewertung: 0 von 5 Sternen0 BewertungenMach's einfach: 123 Anleitungen Raspberry Pi 4 als Media Center: Fotos, Audio- und Videostreaming sowie Fernsehen mit KODI Bewertung: 0 von 5 Sternen0 BewertungenMit Scratch 3 programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenErste Schritte mit dem Raspberry Pi: Installation, Konfiguration, Tuning und Praxis für alle aktuellen Raspberry-Pi-Modelle Bewertung: 0 von 5 Sternen0 BewertungenSchnelleinstieg Raspberry Pi 3: Schritt für Schritt: Installation, Konfiguration, Tuning und Praxiseinsatz Bewertung: 0 von 5 Sternen0 BewertungenantiX Linux für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenCoole Projekte mit dem Arduino™ Micro: Physical Computing im Projekteinsatz Bewertung: 0 von 5 Sternen0 BewertungenRadio machen Bewertung: 0 von 5 Sternen0 BewertungenJournalismus der Dinge: Strategien für den Journalismus 4.0 Bewertung: 0 von 5 Sternen0 BewertungenLexikon des internationalen Films - Filmjahr 2011: Das komplette Angebot im Kino, Fernsehen und auf DVD/Blu-ray Bewertung: 0 von 5 Sternen0 BewertungenGoogle & mehr: Online-Recherche: Wie Sie exakte Treffer auf Ihre Suchanfragen erhalten Bewertung: 0 von 5 Sternen0 BewertungenOnlinejournalismus Bewertung: 0 von 5 Sternen0 BewertungenDie Postproduktion eines Fernsehfilms Bewertung: 0 von 5 Sternen0 BewertungenJürgen Klopp: DIe Biografie Bewertung: 0 von 5 Sternen0 BewertungenMaker-Projekte mit JavaScript: Mit Espruino und JavaScript aus Alltagsobjekten intelligente Maschinen bauen Bewertung: 0 von 5 Sternen0 BewertungenWissenschaftsjournalismus Bewertung: 0 von 5 Sternen0 BewertungenDreamweaver CS5: Webseiten entwerfen und umsetzen Bewertung: 0 von 5 Sternen0 BewertungenC# 6.0 – kurz & gut Bewertung: 5 von 5 Sternen5/5
Programmieren für Sie
Programmieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Python kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenGit kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Raspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenC von Kopf bis Fuß Bewertung: 3 von 5 Sternen3/5SQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5New Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut 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 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Microcontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung 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
GmbH
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)