So lernen Sie Flash und AS3 für die Spieleentwicklung

Heute ist Adobe Flash stark auf die Spieleentwicklung ausgerichtet. Neben Browser-basierten Spieleportalen wie Kongregate, Newgrounds und Armor Games können mit Flash erstellte Spiele auf Desktop-PCs, Mobilgeräten und Tablets (wie Machinarium, Super Hexagon und Wonderputt) als native Apps gefunden werden. In diesem Artikel werden Bücher, Lernprogramme und Vorschläge zum Erlernen von Flash und seiner Programmiersprache AS3 so reibungslos wie möglich ausgetauscht.


Ist Flash nicht tot??

Flash hatte in den letzten Jahren eine schwere Zeit. Steve Jobs hat es nicht gefallen. iPads, iPhones und neuere Android-Geräte können es nicht im Browser ausführen. HTML5 hat sich schnell verbessert, so dass Browser jeden Tag neue Dinge tun können, die bisher nur mit Flash möglich waren. Und jeder stößt auf eine nervige Bannerwerbung, die in Flash gemacht wurde, oder das Flash-Plugin ist abgestürzt und der gesamte Browser ist mit dabei.

Flash wird daher von Web-Entwicklern und der allgemeinen Öffentlichkeit stark in Mitleidenschaft gezogen und ist in vielen Bereichen, in denen es früher König war, eine veraltete Wahl, zum Beispiel bei der Entwicklung von Multimedia-Websites. Aber es ist immer noch eine hervorragende Plattform für die Entwicklung von Spielen.

Warum Flash noch großartig ist für Gamedev

Ein Grund dafür ist die Technologie. Die Standard-Programmiersprache von Flash, AS3, ist weit entfernt vom ActionScript der vergangenen Jahre. Es ist eine leistungsfähige, objektorientierte Programmiersprache mit Hardwarebeschleunigung, Online-Netzwerkfunktionen und Unterstützung für 3D-Grafik. Obwohl Flash Player nicht von den meisten Mobil- und Tablet-Browsern unterstützt wird, können Flash-Spiele als native Apps für iPhone, iPad, Android, Kindle Fire und BlackBerry exportiert werden.

Ein weiterer Grund ist das Ökosystem. Flash-Webportale sind zwar als Websites für Kinder entstanden, in denen sie ihre groben Strichmännchenspiele hosten, aber inzwischen bilden sie eine Branche mit mehreren Millionen Dollar, mit vielen technisch komplexen Spielen und kritischen Treffern. Da Flash-Spiele auf Mobilgeräten und Tablets ausgeführt werden können, können sie im App Store, im Google Play Store, im Amazon Appstore usw. verkauft werden.

Der andere große Grund ist meiner Meinung nach die Gemeinschaft. Aufgrund der besonderen Entwicklung von Flash spricht es sowohl Designer als auch Programmierer an - ein perfekter Schmelztiegel für die Spieleentwicklung. Flash-Spieleentwickler bilden nicht nur eine großartige Community, sondern auch eine Menge nützlicher Bibliotheken, Tools, Bücher und (natürlich) Tutorials.

Aber… HTML5!

Ich gebe zu, es gibt eine Art Online-Gruppenzwang gegen die Verwendung von Flash für einen beliebigen Zweck, und das kann entmutigend sein. In jeder Diskussion über Flash, unabhängig vom Kontext, jemand Ich werde einspringen und Ihnen sagen, dass Sie stattdessen HTML5 verwenden sollten - es ist wie das Godwin-Gesetz für Web-Technologien.

Es lohnt sich auch einen Blick auf HTML5 zu werfen - es lohnt sich, verschiedene Plattformen zu lernen - aber die vielen Stärken von Flash dürfen Sie nicht übersehen. Die Situation ist nicht so einfach wie "HTML5 ersetzt Flash".

Neben all diesen kommerziellen Gründen, wie Will Blanton kürzlich in einem Gespräch dazu sagte:

Ich liebe es, mit neuen Technologien konfrontiert zu werden, aber gamedev ist nicht nur Technologie, es ist ein Medium für Ausdruck (Kunst), und es ist nur ungehörig, von einem Künstler sein Werkzeugset zu wechseln, um einen wahrgenommenen globalen Zeitgeist darzustellen.


Flash-Entwicklungstools installieren

Sie benötigen keine Kopie von Flash Professional, um Flash-Spiele zu erstellen. Es ist ziemlich nützlich, um GUIs und animierte Sprites zusammenzustellen, aber es ist nicht gut für das Schreiben von Code.

Wenn Sie unter Windows sind, empfehle ich Ihnen, den kostenlosen FlashDevelop-Code-Editor herunterzuladen - er ist mein persönlicher Favorit. Ich habe einen Anfängerleitfaden dazu geschrieben und weitere Informationen finden Sie auf der offiziellen Website.

FlashDevelop ist leider nur unter Windows verfügbar. Wenn Sie mit einem Mac arbeiten, probieren Sie es mit FDT. Es gibt eine kostenlose Version, die mehr als genug sein sollte, um den Einstieg zu erleichtern. Michael Plank hat einen guten Anfängerleitfaden für den Herausgeber verfasst, und eine vollständige Dokumentation (einschließlich eines Leitfadens für den Einstieg) befindet sich auf der FDT-Homepage.

Wenn Sie eine Adobe Creative Suite-Sammlung besitzen oder ein Abonnent der Creative Cloud sind, verfügen Sie möglicherweise bereits über eine Kopie von Flash Builder, dem Flash-Editor von Adobe, der sich auf Codes konzentriert. In diesem Handbuch erfahren Sie, wie Sie damit anfangen können.

Schließlich benötigen Sie für die Flash-Entwicklung keine wirklich ausgefallene IDE. Sie können jeden beliebigen Texteditor verwenden, um Ihren Code zu schreiben (John Cotterell wies mich beispielsweise auf Simon Gregorys AS3 TextMate-Paket) und das Flex / AIR-SDK zum Kompilieren - obwohl ich dies nicht empfehlen würde, wenn Sie noch nicht mit der Programmierung vertraut sind.

Sie müssen sich keine Gedanken darüber machen, welche Auswahl Sie treffen - Sie können den Editor später jederzeit wechseln.


Lernen von AS3

AS3 (ActionScript 3.0) ist die De-facto-Programmiersprache für Flash. (Es gibt alternative Sprachen - wie den älteren AS2 und den plattformübergreifenden Haxe -, aber ich werde sie hier nicht ansprechen.) Wenn Sie Flash-Spiele erstellen möchten, müssen Sie das Programmieren lernen. Anstatt zu lehren, wie man Codieren lernt und Wie man Spiele gleichzeitig erstellt, ist es einfacher, mit dem Programmieren zu beginnen. Ja, das bedeutet, Dinge zu bauen, die keine Spiele sind, aber dies wird Ihnen helfen, auf lange Sicht Spiele zu erstellen.

Wenn Sie bereits Java, C # oder eine andere OOP-Sprache beherrschen, wird AS3 für Sie keine große Rolle spielen. Sie sollten sich jedoch über Folgendes informieren:

  • Die Anzeigeliste - siehe AS3: Die Anzeigeliste, Programmierung der Anzeigeliste in AS3 und AS3 101: Die Anzeigeliste.
  • Das Ereignissystem - siehe Einführung in die Ereignisbehandlung und AS3 101: Ereignisse.
  • Garbage Collection - Siehe Grundlegendes zur Garbage Collection in AS3.

Wenn Sie mit der Programmierung im Allgemeinen noch nicht vertraut sind, benötigen Sie einen umfassenderen Leitfaden. Ich empfehle AS3 101, eine 18-teilige Serie, die alle Kernkonzepte von Grund auf erläutert.

Zwei Bücher, die ich ebenfalls empfehlen würde, sind Essential ActionScript 3.0) und Foundation Actionscript 3.0 Animation: Making Things Move !. Lassen Sie sich nicht durch den Titel des Letzteren täuschen - es geht nicht um typische handgezeichnete Animationen; Es geht darum, Code zu verwenden, um Dinge in Bewegung zu bringen. Das ist extrem wichtig für die Spielentwicklung!

Alternativ empfiehlt Matt Barker diesen kostenlosen (600 Seiten) kostenlosen Reiseführer von Adobe: Programming ActionScript 3 [pdf].

Sie benötigen auch eine Referenzanleitung. Die Adobe Livedocs sind großartig und werden in den meisten Fällen alles sein, was Sie brauchen. (Die Suche ist etwas unklar, aber wenn Sie nur nach Google für Livedocs suchen "Begriff, den Sie tatsächlich brauchen-"] es wird auftauchen.)

Und wie in jeder Programmierumgebung sind Stack Overflow und der Gamedev Stack Exchange große technische Fragen und Antworten. Das AS3-Tag ist ActionScript-3.


Machen Sie Ihre ersten Spiele

Es gibt viele Bücher und Tutorials, die sich speziell mit der Entwicklung von Flash-Spielen befassen. Es ist jedoch schwierig, eines zu finden, das bewährte Methoden verwendet, ohne zu viel Vorwissen anzunehmen.

Ich denke, das Beste in dieser Kategorie ist AdvancED Game Design with Flash. Sie sollten es verstehen können, wenn Sie sich mit AS3 aus den vorherigen Empfehlungen auseinandersetzen müssen, auch wenn Sie wenig oder keine Erfahrung mit der Entwicklung von Spielen haben.

Ich möchte hier auch ein paar kostenlose Online-Tutorials hinzufügen, die dieses Buch begleiten (oder sogar ersetzen)… aber ich kenne eigentlich keine umfassenden Tuts, die in die Rechnung passen. Die meisten Flash gamedev-Tutorials scheinen davon auszugehen, dass Sie entweder sehr wenig über AS3 wissen oder über genügend Erfahrung in der Spieleentwicklung verfügen, um eine bestimmte Bibliothek oder ein bestimmtes Framework zu verwenden.

Natürlich gibt es Tutorials - nichts definitives. Werfen Sie einen Blick durch die Activetuts + Games-Archive, erkunden Sie Everyone's Platformer und versuchen Sie, etwas wie Pong oder Space Invaders so einfach wie möglich zu machen, um die Grundlagen zu erlernen.


Mehr mehr mehr

Sie müssen sich mit der Flash-Plattform auseinandersetzen, können in AS3 programmieren und haben eine gute Grundlage für die Entwicklung von Flash-Spielen. An dieser Stelle können Sie die meisten Implementierungs-Tutorials auf dieser Site verfolgen, auch wenn diese auf einer anderen Entwicklungsplattform geschrieben sind.

Aber es gibt noch so viel mehr über die Entwicklung von Flash-Spielen. Ich habe eine Reihe von Ressourcen zusammengestellt, und zwar in keiner bestimmten Reihenfolge. Wählen Sie diejenige aus, die Sie gerade interessiert, und lernen Sie.

Flash Game Engines

Flixel und FlashPunk sind zwei beliebte, kostenlose Open Source-Bibliotheken, die auf die Entwicklung von 2D-Spielen zugeschnitten sind.

Beide werden gut unterstützt, mit einer lebhaften Community und vielen Tutorials, und jede wurde für eine Menge von Spielen verwendet.

Um Flixel zu lernen, werfen Sie einen Blick auf die Links auf der offiziellen Hilfeseite sowie auf die hervorragende Sammlung von Flash Game Dev Tips von Photon Storm.

Um FlashPunk zu lernen, lesen Sie die offiziellen Tutorials.
Wenn Sie bereits Erfahrung mit Game Maker haben, ist diese Bibliothek möglicherweise komfortabler, da sie stark auf der Skriptsprache Game Maker basiert.

Stage3D

Mit den Stage3D-APIs können Sie die GPU-Hardwarebeschleunigung in Ihren Spielen für superschnelles 3D-Rendering verwenden. Eine ausführliche Anleitung dazu finden Sie in Christer Kaitilas Buch "Stage3D Game Programming: Beginner's Guide".

(Es lohnt sich auch einen Blick in Away3D, eine fortschrittliche 3D-Engine für Flash, zu werfen.)

Trotz des Namens eignet sich Stage3D auch für 2D-Spiele und bietet übliche Rendering-Geschwindigkeiten von 60 Bildern pro Sekunde. Christer hat auch eine sechsteilige Tutorialserie zum Erstellen eines 2D-Shootem mit Stage3D geschrieben. Die ersten drei Teile sind kostenlos!

Wenn Sie dies noch weiter ausführen möchten, sehen Sie sich Starling Framework an, eine Bibliothek, die speziell für die Entwicklung von 2D-Spielen entwickelt wurde. So haben Sie die Möglichkeit, Stage3D-Rendering auszuführen, ohne Stage3D selbst berühren zu müssen. Thibault Imbert hat eine Einführung und ein großartiges E-Book für das Framework geschrieben - beide sind kostenlos!

Mobile- und Tablet-Entwicklung

Wie ich zu Beginn dieses Artikels bereits erwähnte, beschränkt Flash Sie nicht auf die Browserentwicklung. Sie können Spiele erstellen, die als native iPhone-, Android- oder BlackBerry-Apps ausgeführt werden, und diese sogar in den verschiedenen App-Stores verkaufen.

Eigentlich ist es nicht besonders schwierig, Ihr Spiel im nativen App-Format zu exportieren - nur Google [flashdevelop android] oder [fdt ios] oder welche andere Kombination von Tools und Plattform für Sie geeignet ist, um die neuesten Anweisungen zu erhalten.

Schwieriger ist es, Ihr Spiel für eine andere Plattform zu optimieren und Hardwarefunktionen wie den Beschleunigungssensor und den Touchscreen zu nutzen. Ich empfehle das Flash Development für Android-Kochbuch und das Flash iOS Apps-Kochbuch. Dazu lesen Sie regelmäßig unsere Schwesterseite Mobiletuts +, um mehr über das Design von Mobilschnittstellen zu erfahren.

Verschiedenes

Es gibt viele weitere Bibliotheken, in die ich einsteigen könnte - wie Box2D, GreenSock und MinimalComps -, aber ich muss irgendwo aufhören.

Ich werde diese Liste mit einigen großartigen Websites für Entwickler von Flash-Spielen abrunden:

  • Adobe Gaming
  • FGL
  • gotoAndLearn.com
  • Playtomic
  • Mochi Media
  • AS3 Game Gears
  • Flash-Spiel Dojo

Ich weiß nur, dass ich einige ausgezeichnete Websites von dieser Liste verpasst habe. Bitte hinterlassen Sie einen Kommentar, wenn Sie der Meinung sind, dass etwas hinzugefügt werden sollte!


Spiele machen

Ich habe dies im XNA-Guide gesagt, und ich sage es noch einmal hier. Machen Sie zu Beginn keine komplexen Aufgaben wie ein MMO oder etwas, das große Mengen an Artwork und Story wie ein RPG erfordert. Beginnen Sie mit etwas Einfachem, das Sie später noch erweitern können.

Zum Beispiel: Ein Spiel mit einem einzigen Knopf wie Canabalt könnte erweitert werden, um ein Plattformprogramm zu erstellen. Ein Pong-Klon könnte in ein Spiel verwandelt werden, das mehrere Level umfasst. Ein Avoider-Spiel könnte zum Klon eines Space Invaders werden und dann zu einem ausgewachsenen Shoot-'em-Up.

Machen Sie sich auch noch keine Sorgen, fortgeschrittene Programmiertechniken zu erlernen. Sie haben Zeit, sich später mit Designmustern und der allgemeinen Codearchitektur auseinanderzusetzen. Beenden Sie sich auf das Beenden einiger Spiele, auch wenn Ihre ersten nur klein sein werden.


Vielen Dank an Djordje Radakovic, Matt Barker, Joseph Burchett, Will Blanton und John Cotterell für ihre Hilfe bei der Zusammenstellung dieses Leitfadens!

Wenn Sie Vorschläge für Flash- und AS3-Lernressourcen haben, die wir vermisst haben, teilen Sie uns dies bitte in den Kommentaren mit.