Dienstag, 19. August 2014

Arbeiten mit dem GameMaker: Studio

Hallo Leute,

Da ich seit einiger Zeit Yoyogames' Software GameMaker: Studio verwende, denke ich, dass es an der Zeit ist, etwas darüber zu erzählen.

In Zukunft werde ich ein paar spezielle Artikel zu bestimmten Funktionen des GameMakers schreiben, das hier ist nur ein kurzer Überblick.




Lohnt sich GameMaker: Studio für den Produktiveinsatz?

Viele von euch kennen den GameMaker wohl noch von früheren Zeiten, als ein Programm, mit dem man spielend einfach, wenn auch manchmal mit etwas Kopfzerbrechen, seine eigenen Spiele zusammenbasteln konnte.
Das geschah komfortabel über das Drag'n'Drop-Interface, oder über die eingebaute Scriptsprache GML. Viele der User, die damals zwischen 10 und 16 wahren, bereitete das Entwickeln von Videospielen auf diese Art eine große Freude, auch wenn man mit dem Programmieren noch nicht so vertraut war. Manifestiert war der Wille, tolle Spiele zu entwickeln, ganz egal ob man das nötige Know-How dafür hatte oder nicht - Scripte wurden geklaut und kopiert, es wurden Sprites aus SNES spielen gerippt und im Internet miteinander geteilt - An vorderster Stelle stand nämlich die Idee, Spiele in die Welt zu schicken, die bis dato nur im eigenen Kopf hausierten.
Die meisten dieser Projekte wurden natürlich dank der enorm ambitionierten Fantasien und Vorstellungen nie fertig, aber die meisten brachten trotzdem eine oder mehrere spielbare Demos hervor.

Dann war das Thema GameMaker für eine lange Zeit vergessen.

Man entwickelte sich weiter, versuchte, eine Scriptsprache wie Ruby oder Python zu lernen, machte sich mit Engines wie Unity oder Irrlicht vertraut oder ließ es einfach ganz bleiben. GameMaker war ein Spielzeug für Kinder und ein paar ambitionierte Holländer, mit anscheinenend gottgleichen Fähigkeiten, mit schlechten Tools Spiele zu entwickeln.

Doch eines Tages wurde GameMaker von Yoyogames aufgekauft, und alles begann, sich zu verändern. Zwar ist das Programm, das heute GameMaker: Studio heißt, im Grunde genommen noch das gleiche wie damals, aber durch die hinzugewonnene Cross-Platform-Kompatibilität und den professionelleren Touch wagten sich die Leute wieder an die Software heran.

Heute ist GameMaker: Studio weit mehr als nur ein Spielzeug in den Händen von Kindern, es ist eine voll ausgereifte Entwicklungsumgebung für das rapide Ausarbeiten von Spielideen oder gar für die ganze Entwicklung eines Videospiels.

Ich habe mich vor einem Monat dazu entschlossen, mir die im "Yoyogames Summersale" auf 180USD (ca. 140€) heruntergesetzte Professional Version inklusive Android Export zu kaufen.

Was sind die Gründe dafür?


  • Rapide Softwareentwicklung
  • Eine integrierte Entwicklungsumgebung
  • Keine Profi-Codingkenntnisse notwendig
  • Drag&Drop-Interface
  • Cross-Platform-Export
Man sieht, es sind eigentlich die selben Features, die auch damals schon für den GameMaker sprachen. Aber wie sieht es mit der Konkurrenz aus?

Damals waren die Konkurrenten von GameMaker
  • RPG Maker XP / VX
  • Multimedia Fusion
  • Adobe Flash
Natürlich gab es noch viele weitere Produkte, aber die waren für Novizen oder Codescheue Menschen schlichtweg ungeeignet.

Heutzutage steht GameMaker: Studio in direkter Konkurrenz zu Unity3D. Große Schritte für ein kleines Programm, was sich leider auch im Preis niederschlägt. Die "Master Collection", mit Export-Modulen für alle erdenklichen Plattformen und dem "Yoyo-Compiler", schlägt mit 799 USD zu Buche. Ein ganz schön happiger Preis, aber ich finde, er ist vertretbar und werde auch erläutern, warum.

1. Produziere Spiele, nicht Code

Ja, das Coding im GameMaker: Studio kann auch diesmal wieder für ganz schönes Kopfzerbrechen sorgen. Aber die damaligen Haupt-User des Programm sind nicht mehr zwischen 10 und 16, sie sind nun allesamt Volljährig und (hoffentlich) auch geistig weiterentwickelt. Wer jedoch mit 20 immernoch Probleme hat, eine simple For-Schleife zu erstellen, sollte vielleicht überlegen, die komplette Branche zu wechseln.
Die meiste Zeit befasst man sich jedoch mit der eigentlichen Logik des Spielgeschehens, die für einen in kleine, gut verdauliche Kategorien zerteilt wurden.
Jedes einzelne Asset hat einen eigenen Ordner im Main-Tree. Jede Eigenschaft kann kinderleicht geändert werden. Die mitgelieferten Tools sind ausreichend, um simple Grafiken, Räume, Objekte und Scripts zu erstellen. Die Dokumentation ist prall gefüllt mit Beispielen für jedes erdenkliche Szenario.

Man muss im Prinzip einfach nur noch seine IDEE IN DIE WIRKLICHKEIT UMSETZEN.

2. Verfügbarkeit auf jeder Plattform

Egal ob man nun ein Spiel für Windows, Linux, Mac OSX, Android, iOS, Tizen oder den Browser (und die PS3, Xbox, PSVITA, etc. etc. etc...) erstellen will - ein Knopfdruck reicht und das Spiel wird auf die gewünschte Plattform exportiert. Natürlich muss man noch ein paar Basisunterschiede beachten wie z.B. verschiedene Werbeplattformen oder SDK's, aber es geht nicht über ein simples "installiere diese Datei, zeige mir wo sie sich befindet" hinaus. Der GameMaker: Studio nimmt einem die ganze Arbeit ab, die man im Kopf sowieso schon durch hat.



3. What You See Is What You Get

Jedes Spiel kann sofort auf dem Entwickler-PC getestet werden, egal für welche Plattform es bestimmt ist. Fehlermeldungen liefern klare, für Menschen verständliche Anweisungen zur Behebung des Fehlers. GameMaker ist der WYSIWYG-Editor der Spieleentwicklung.

4. Have It Your Way (tm)

Wie zum Beispiel in Ruby gibt es auch im GameMaker: Studio Tausend-und-einen Ansatz für die Lösung eines Problems. Allein die Touchscreen-steuerung ist auf 3 verschiedene Wege implementierbar. Für jedes Problem der Entwicklung gibt es einen Weg des wenigsten Kopfzerbrechens. Profis können den Objekt-orientierten Pfad beschreiten, während Novizen sich Ihren Code einfach aus Drag&Drop-Boxen zusammenbasteln - Exceptionhandling kann durch Logik vorgebeugt werden!

5. Mathemathical Design

Du bist nicht gut im Coden, aber in Mathe? Die integrierte Scriptsprache GML ist an größere Sprachen wie z.b. Java angelehnt, und für Leute mit mäßiger Scripterfahrung verdammt schnell und einfach zu erlernen. Wenn man ein Problem nicht auf Binäre Art lösen kann, bleibt einem immernoch der mathematische Weg. Das hört sich jetzt vielleicht dumm an, aber ich meine es so, wie ich es schreibe. Ein Beispiel dafür ist meine Touchcontrol für Android, die der von Espgaluda II nachempfunden ist - die wohl einfachste und gleichzeitig genialste Steuerungsmethode für SHMUPS.

Der Vorgang erfolgt so:

  1. Berührt man den Bildschirm, erstellt das Objekt "oPlayer" eine Instanz des Objektes "oTouchControl"
  2. oTouchControl merkt sich die Position, auf der man den Bildschirm berührt hat (oPlayerSaveX, oPlayerSaveY)
  3. "oTouchControl" übernimmt x und y Koordinate von "oPlayer"
  4. Durch die Funktion point_direction(x,y,mouse_x,mouse_y) errechnet "oTouchControl" die Richtung in 360 Grad, in die der Finger steuert (nicht zwingend erforderlich, aber nützlich zur Rotation von Grafiken)
  5. Nun werden x und y Bewegung der Maus relativ zum Startpunkt berechnet und auf den Spieler übertragen (bewegt sich die Maus, von oPlayerSaveX aus 50 pixel nach rechts, so tut das auch das Spielerobjekt oPlayer)
  6. Die Werte werden in echtzeit zurück an "oPlayer" gesendet und seine Koordinaten verändern sich dementsprechend.
  7. Der Spieler berührt den Touchscreen nicht mehr -> oTouchControl wird entfernt
Hier der Code:

Die Benennung der Variablen ist mir nur schlampig gelungen, lol.

So einfach ist das!

1. Knopf drücken
2. Objekt erstellen
3. SOLANGE GEDRÜCKT >> Spieler bewegen 
4. Objekt löschen

Die eingebauten Funktionen sind genau auf die benötigten Berechnungen für Videospiele zugeschnitten (war ja klar).

Das ganze sieht dann im Spiel so aus  (natürlich mit demonstrativen Grafiken):



Lohnt sich GameMaker: Studio für den Produktiveinsatz #2 ?

Ja, definitiv.

Egal ob Casual Game oder langatmiges Spiel - Mit genug Fleiß und Motivation ist es mit dem GameMaker: Studio möglich, seine Ideen in die Tat umzusetzen. Vor allem für mobile Games sollte man die IDE nicht unterschätzen (Stichwort Werbung, Social Gaming, etc.).

Habt ihr auch Erfahrungen mit dem GameMaker: Studio oder ähnlichen Programmen gemacht? Traut euch und kommentiert!