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)
HTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5TFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server 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 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenF#: Ein praktischer Einstieg Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenOAuth 2.0: Client & Server Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Management Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Mit Scratch 3 programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren in C: Programmieren lernen von Anfang an - Mit vielen Programmierbeispielen - Geeignet zum Selbststudium Bewertung: 0 von 5 Sternen0 BewertungenSchnelleinstieg Banana Pi: 160 Seiten Boards, Installation, Programmierung, Elektronikprojekte und Zubehör nutzen Bewertung: 0 von 5 Sternen0 BewertungenTastenkombinationen für den Mac: Alle wichtigen Funktionen Bewertung: 0 von 5 Sternen0 BewertungenPraktisches Programmieren in C: Grundlagen und Tipps 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 BewertungenProgrammieren lernen mit Computerspielen: In Visual Basic 5.0 / 6.0 Bewertung: 0 von 5 Sternen0 Bewertungen3D-Druck für Anspruchsvolle: Mit dem Ultimaker perfekte Werkstücke erstellen Bewertung: 0 von 5 Sternen0 BewertungenIm Tonstudio mit Samplitude: Praxisbuch für den Einstieg in das Aufnehmen und Mischen mit Samplitude Bewertung: 0 von 5 Sternen0 BewertungenComputerspielforschung: Interdisziplinäre Einblicke in das digitale Spiel und seine kulturelle Bedeutung 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 BewertungenWindows-8-Apps für C#-Entwickler: Design-Guidelines, Anleitungen, Best Practices Bewertung: 0 von 5 Sternen0 BewertungenHilfreiche Programme für Linux-Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenLinux-Musikserver - Die Anleitung: 1hourbook Bewertung: 0 von 5 Sternen0 BewertungenFotojournalismus Bewertung: 0 von 5 Sternen0 BewertungenSpielerische Fiktionen: Transmediale Genrekonzepte in Videospiele Bewertung: 0 von 5 Sternen0 BewertungenLiteratur im Fernsehen: Konzeption und Gestaltung dreier literarischer Talkformate des ZDF Bewertung: 0 von 5 Sternen0 BewertungenRadio machen Bewertung: 0 von 5 Sternen0 BewertungenOnlinejournalismus Bewertung: 0 von 5 Sternen0 BewertungenDrehbuch-Studium: Von Die Reise zum Mond bis Memento Bewertung: 0 von 5 Sternen0 BewertungenExposé, Drehbuch & Shooting Script: der digitale Preproduction-Workflow Bewertung: 0 von 5 Sternen0 BewertungenDie Talkshow im Politikunterricht: Direkte Demokratie, Methoden + Materialien + Arbeitsvorschläge Bewertung: 0 von 5 Sternen0 BewertungenReportage und Feature Bewertung: 0 von 5 Sternen0 BewertungenUnterwasser-Fotografie: Lichteinsatz und große Bildwinkel Bewertung: 0 von 5 Sternen0 BewertungenRezeptur der Bühnenkomik: Theorie und Praxis des Komischen auf der Bühne Bewertung: 0 von 5 Sternen0 BewertungenDie Kunst der Drehbuchentwicklung: Über die Zukunft des Geschichtenerzählens Bewertung: 0 von 5 Sternen0 BewertungenDie Geschichte des Computers: Wie es bis zur Form des heutigen 'PC' kam. Bewertung: 0 von 5 Sternen0 BewertungenErfolgreich Radio machen Bewertung: 0 von 5 Sternen0 BewertungenWUNDERVOLLE WEIHNACHTsgeschichten: Über bezaubernde Begegnungen von Mensch und Tier Bewertung: 5 von 5 Sternen5/5
Programmieren für Sie
Python | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Programmieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Das 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 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenPowerShell: Anwendung und effektive Nutzung Bewertung: 5 von 5 Sternen5/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenRichtig einsteigen: Excel VBA-Programmierung: Für Microsoft Excel 2007 bis 2016 Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative QNAP NAS Bibel - Das Praxisbuch - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenVBA-Programmierung für Word, Excel und Access: Das Praxisbuch für Microsoft-Office-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – 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 BewertungenRoutineaufgaben mit Python automatisieren: Praktische Programmierlösungen für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 Bewertungen100 unentbehrliche Tipps zu Minecraft: Ein inoffizieller Guide Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Einstieg in TypeScript: Grundlagen für Entwickler Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenPython für Excel: Eine moderne Umgebung für Automatisierung und Datenanalyse Bewertung: 0 von 5 Sternen0 BewertungenHitchhiker's Guide für Python: Best Practices für Programmierer Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Bewertung: 0 von 5 Sternen0 BewertungenGitHub – Eine praktische Einführung: Von den ersten Schritten bis zu eigenen GitHub Actions 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)