Start Magazin Aller Anfang ist einfach: Spiele-Programmierung für Android mit AndEngine

Aller Anfang ist einfach: Spiele-Programmierung für Android mit AndEngine

Die Videospielbranche gehört zu den Märkten, die in den letzten Jahren ein rasantes Wachstum verzeichnen konnten. Titel wie GTA V oder Watch_Dogs stehen in puncto Produktionskosten und Gewinnen großen Hollywoodfilmen in nichts mehr nach. Was liegt also näher, als selbst sein Glück zu versuchen und zum Gamesproducer zu werden.

Doch wie anfangen und für welche Plattform und mit welchen Tools entwickeln?  Dieser Artikel gibt ein paar Tipps für den Start.

Die Zeit, in der Videospiele ausschließlich auf dem PC oder extra entwickelten Konsolen liefen, ist endgültig vorbei. Spiele sind heute auch auf unseren täglichen Begleitern – dem Smartphone oder der Tablet-PC — allgegenwärtig. Betrachtet man die Downloads im Play Stores, wird schnell klar, dass Entwickler den Trend längst erkannt haben: Momentan stehen im Play Store unvorstellbare 1,3 Millionen Apps zum Download bereit, viele davon sind Spiele.

Die qualitativen Maßstäbe sind allerdings weit gefächert: Die Variationsbreite reicht da von grafischen Wunderwerken wie zum Beispiel Assassin’s Creed Pirates oder Real Racing 3 bis hin zu kurzweiligen viralen Hits wie Flappy Bird.

Die Spielidee

In diesem Artikel möchten wir uns mit der Entwicklung von zweidimensionalen Android Spielen beschäftigen. Dafür ist es natürlich wichtig zu wissen, dass zweidimensionale Spiele ganz anderen Anforderungen gerecht werden müssen, als die eingangs genannten Grafikkracher. So spielt es eine viel wichtigere Rolle, ein überzeugendes Spielkonzept zu liefern, als einfach nur durch anspruchsvolle 3D-Grafik zu beeindrucken. Nicht ohne Grund ist die Ideenfindung der wichtigste Prozess der Spieleentwicklung. Ein gutes Beispiel für ein gelungenes Konzept ist das Spiel Threes. Da die Entwickler von Anfang an sehr offen mit der Idee umgegangen sind, wurde das Spiel allerdings noch vor dem offiziellen Erscheinungstermin kopiert und unter dem Namen 2048 veröffentlicht. Das traurige daran ist, dass der Klon deutlich mehr Aufmerksamkeit, und dadurch auch Gewinne, einräumen konnte als das Original. Eine simple, prägnante und vor allem gut gehütete Idee ist das A und O bei der Entwicklung eines Spiels. So ist das auch der erste Punkt über den du dir Gedanken machen musst. Oft hilft es, sich von bereits vorhandenen Spielen inspirieren zu lassen und zu überlegen, was man daran besser machen könnte. Ist die Idee gefunden, geht es weiter mit der Wahl der Entwicklungswerkzeuge.

Das passende Werkzeug

Du hast dir schon tagelang den Kopf zerbrochen, viele Apps heruntergeladen, stundenlang Inspiration gesucht und endlich die geniale Spielidee gefunden? Toll!  Jetzt stellt sich aber gleich die nächste Frage: Wie kann man diese Idee am besten umsetzen?

Es gibt viele so genannte Engines, die die Spieleentwicklung für Android (und andere Plattformen) extrem vereinfachen. Welche Engine die richtige ist, hängt natürlich auch sehr von deiner Spielidee und deinen Programmierkenntnissen ab. Ein paar Faktoren gibt es allerdings doch, über die sich einige Engines von vornherein ausschließen lassen. Zu diesen Merkmalen zählen unter anderem folgende Punkte:

  • Handelt es sich um eine Open-Source Lösung?
  • Gibt es eine aktive Community um die Enginge?
  • Ist die Dokumentation ausführlich genug?
  • Sind einige Beispielanwendungen, samt Quellende, vorhanden?

Wenn du diese Fragen im Vorhinein bereits mit „Ja“ beantworten kannst, dann wirst du bei problematischen oder schwierigen Abschnitten nicht ganz allein dastehen. Im folgenden stelle ich dir drei Engines sehr kurz vor und gehe dabei auch auf diese Punkte ein.

PlayN – Die neue von Google

Google schickt mit PlayN eine eigene Engine ins Rennen. Via PlayN ist es möglich, Spiele für verschiedene Plattformen in Java zu entwickeln. Der größte Vorteil ist sicherlich, das Google selbst dahintersteckt und so mit einer sättigen Weiterentwicklung zu rechnen ist. Der Nachteil ist der, der jungen Technologie. Mit der Zeit bilden sich Communities und hilfreiche Foreneinträge entstehen. Momentan sind diese aber noch spärlich zu finden. Wenn du also noch keine langjährige Erfahrung in der Games-Szene gesammelt hast, dann ist PlayN vermutlich nicht die ideale Lösung für den Einstieg.

unity3D – Der professionelle Platzhirsch

Dieser Name ist sicherlich einer der bekanntesten der Branche: Mit unity3D kann man ebenfalls Spiele für diverse Plattformen entwickeln, zudem auch in 3D. Allerdings brauchst du hier keine Java-Kenntnisse, sondern musst mit dem etwas modernerem C#„klarkommen“. Bei unity3D handelt es sich um eine kommerzielle Plattform, ich habe die Entwicklung mit dieser Engine deshalb verworfen. Ebenfalls nicht in Frage kam für mich die Unreal Engine. Sie ist einfach ein Stück zu groß für ein Casual Game…

AndEngine – Die Open-Source-Lösung

AndEngine basiert auf Open GL und ist im Gegensatz zu den beiden Vorgängern nur für die Android-Plattform entwickelt worden. Programmiert wird dementsprechend in „Java“. Die aktuellste Version ist die AndEngine GLES2, die es auf Github zum freien Download gibt. Über die vergangenen Jahre hat sich eine breite Community um diese Engine gebildet. So gibt es beispielsweise ein aktives Forum, in dem sich Interessierte über diverse Themen austauschen können. Desweiteren hält die Github-Seite auch gleich diverse Beispiele bereit. Das macht den Einstieg besonders anfängerfreundlich. Und als Sahnehäubchen lassen sich nach einer kurzen Googlesuche auch noch diverse Einsteiger-Tutorials finden. Ich habe mich deshalb recht schnell für die AndEngine entschieden.

Crashkurs in AndEngine

Wie bereits erwähnt, ist AndEngine eine freie Spiele-Engine, die auf OpenGL basiert und von Nicolas Grämlich entwickelt wurde. Sie bietet die Möglichkeit, allein mit Java-Kenntnissen Spiele auf OpenGL-Basis für Android zu entwickeln. Zu den programmiertechnischen Vorteilen zählen die

  • dynamische Skalierbarkeit: Es gibt sehr viele verschiedene Android-Geräte und damit auch dutzende Auflösungen. Durch dieses Feature wird das Spiel automatisch auf die passende Auflösung skaliert und aufwändige Anpassungen bleiben erspart.
  • Physik-Erweiterung box2d: Durch diese Erweiterung ist es möglich physikalische Gegebenheiten im Spiel korrekt darzustellen. Mit physikalischen Gesetzen kommen wir bei der Spieleentwicklung mit ziemlich sicherer Wahrscheinlichkeit früher oder später in Kontakt. Man denke nur an die fahrt eines Auto oder das Beschiessen eines Kistenstapels, wie es beispielsweise in Angry Birds der Fall ist.
  • Partikel-System: Falls es von Nöten sein sollte zum Beispiel Feuer darzustellen, kann dieses System extrem hilfreich sein
  • Multi-Touch-Unterstützung: Dazu muss nicht viel gesagt werden. Es ist ohne Probleme möglich die multiple Eingabe des Spielers zu erkennen und darauf entsprechend zu reagieren.

Bevor du mit AndEngine loslegen kannst, musst du eine aktuelle Android-Entwicklungsumgebung installieren. Da stehen Android Studio und Eclipse zur Auswahl. Da sich Android Studio noch in der Beta-Phase befindet, habe ich mich für Eclipse entschieden, das ist aber Geschmackssache. Egal für welche Lösung du dich entscheidest, brauchst du das aktuelle Java Development Kit, das es bei Oracle zum Download gibt.

Nun holst du dir bei Google die fertig gepackte Android-Entwicklungsumgebung inklusive Eclipse. Läuft alles soweit, musst du nur noch die AndEngine in deine Eclipse-Installation importieren. Dazu wählst du File | Import und danach den Eintrag Git | Projects from Git.

Im ersten Schritt musst du AndEngine mit Eclipse bekannt machen.
Im ersten Schritt musst du AndEngine mit Eclipse bekannt machen.

Im nächsten Fenster tippst du auf URI und gibst danach folgenden Link ein:

https://github.com/nicolasgramlich/AndEngine.git

Hier gibst du die Adresse für das Github-Repository an.
Hier gibst du die Adresse für das Github-Repository an.

Jetzt klickst du einige Male auf Weiter und beendest damit den Assistenten. Mit diesem Schritt hast du das Projekt erfolgreich in deine Entwicklungsumgebung importiert. Meldet Eclipse nun irgendwelche Fehler, dann hilft üblicherweise ein Project | Clean.

Beispielprojekte

Den besten Einblickin die Logik und Funktionsweise von AndEngine bekommst du, wenn du dir die Beispielprojekte anschaust. Da hat AndEngine zum Glück so einiges zu bieten, du musst aber die Beispiele separat importieren. Auch diese sind praktischerweise auf GitHub gelagert. So reicht es wie bei AndEngine selbst, das Repository mit Eclipse vertraut zu machen. Dazu gehst du analog wie oben beschrieben vor  (File | Import und danach Git | Projects from Git), gibst aber die folgende URI an:

https://github.com/nicolasgramlich/AndEngineExamples.git

Nachdem die Beispiele nun auch importiert sind, stellst du im letzten Schritt die Verbindung zwischen den Beispielen und der AndEngine-Bilbiothek her. Dazu klickst du mit der rechten Maustaste auf das Beispielpackage und wählst den Eintrag Properties. In dem sich nun öffnenden Fenster navigierst du zum Punkt Android. Hier stellst du über Add… die Verbindung zur AndEngine-Bibliothek her.

Die Beispielprojekte müssen auch noch mit der AndEngine bekanntgemacht werden.
Die Beispielprojekte müssen auch noch mit der AndEngine bekanntgemacht werden.

Die Beispiele gibt es übrigens auch als Android-App bei Google Play, falls du damit anfangen möchtest. Hat bis hierhin alles geklappt, dann kannst du die geladenen Beispiele entweder im Android-Emulator oder direkt auf einem Gerät ausprobieren. Da es bereits für diverse Anwendungsfälle Beispiele gibt, ist es sinnvoll, sich ähnliche Szenarien wie für die eigene Spielidee zu suchen und anzufangen, ein Testprojekt aufzubauen. Jetzt geht die Reise mit der AndEngine erst so richtig los.

Kommentiere den Artikel

Please enter your comment!
Please enter your name here