Ich bin ja ein begeisteter Leser von Anna Anthropys Buch Manifest »Rise of the Videogame Zinesters«. Und in Folge der Lektüre habe ich mir überlegt, wie eigentlich mein Werkzeugkasten als (Amateur-) Spieleentwickler aussieht und welche Werkzeuge ich daraus empfehlen kann. Mein Schwerpunkt liegt einmal eindeutig auf das Erzählen interaktiver Geschichten, denn meiner Meinung nach sind Computerspiele, die keine Geschichten erzählen, langweilig. Zum anderen nehme ich das »Poeten« im Titel dieser Worknote durchaus ernst. Denn hier geht es – wie im Untertitel von Anna Anthropys Manifest – um die Frage, »wie sich Freaks, Normale, Amateure, Künstler, Träumer, Dropouts, Queere, Hausfrauen und Menschen wie Du und ich eine Kunstform zurückerobern« können. Also »Poeten« meint alle, nur nicht die Spieleindustrie. 🤡
Twine ist mein absoluter Favorit für interaktive Geschichten und Spiele. Der Einstieg ist anfängerfreundlich (schon mit wenigen Befehlen – man braucht eigentlich nur das Link-Makro – kann man/frau anspruchsvolle Spiele entwickeln), aber die Komplexität kann sich dank der Skriptsprachen (in Twine »Storyformate« genannt) beliebig steigern.
Wenn man es visueller mag, ist Ren’Py die Engine meiner Wahl und Ren’Py kann durchaus mehr als »nur« Visual Novels (die Möglichkeiten versuche ich aktuell mit einer Tutorialreihe zu erkunden). Der Einstieg ist nicht ganz so leicht wie bei Twine, aber zu schaffen.
Bitsy ist eine extrem minimalistische Engine, die die Kreativität des Entwicklers herausfordert (denn in der Beschränkung liegt die Kraft). Auch in Bitsy entwickelte Spiele kommen mit dem Anspruch, Geschichten erzählen zu wollen.
Nicht ganz so minimalistisch, aber immer noch auf das Nötigste beschränkt, kommt PuzzleScript daher. Auch wenn die Intention von PuzzleScript eher auf Rätselspielen á la Sokoban liegt, lassen sich damit durchaus auch (rundenbasierte) RPGs und Roguelikes erstellen.
Für alles andere würde ich auf Pygame Zero und Processing.py setzen. Pygame Zero ist universeller und läßt sich notfalls noch mit Bibliotheken aus Pygame erweitern, aus mit Processing.py erstellte Spielen lassen sich aber einfacher aus der IDE heraus Binaries für die Zielplattformen macOS, Linux und Windows erzeugen. Ist die Zielplattform HTML5 (siehe Deployment weiter unten) bietet sich als Alternative noch P5.js an.
Die Auswahl ist rein subjektiv und auch auf meine Vorlieben gegründet. Einige Leser werden in der Aufzählung Scratch vermissen, aber ich bin mit der blockorientierten, visuellen Programmiersprache nicht warmgeworden. Eine Alternative zu Pygame Zero und Processing.py wäre unter Umständen noch TigerJython, aber ich habe bis heute nicht herausbekommen, wie man aus den TigerJython-Skripten Binaries erzeugt.
Die »Eroberung einer Kunstform« wäre unvollständig, wenn man die geschaffenen Werke nicht auch ausstellen, sprich veröffentlichen könnte. Im Falle der oben mit einem Spiegelstrich markierten Programme ist das relativ einfach: Twine, Bitsy und PuzzleScript erzeugen native HTML5-Dateien und lassen sich daher auf allen Plattformen veröffentlichen, hinter denen ein Webserver läuft. Ren’Py besitzt ebenfalls (einen zur Zeit noch experimentellen) HTML5-Export, darüberhinaus lassen sich mit Ren’Py erstellte Spiele nicht nur nach macOS, Linux und Windows exportieren, sondern auch nach iOS und Android.
Processing.py kann – wie oben erwähnt – aus der IDE heraus Binaries für macOS, Linux und Windows erstellen, unabängig davon, auf welcher Plattform die IDE läuft. Ist die Zielplattform allerdings das Web, entwickelt man besser von vorneherein mit P5.js, dem JavaScript Mode von Processing.
Lediglich für Pygame Zero gestaltet sich das Deployment – vorsichtig ausgedrückt – etwas schwierig. Zwar kann man mit dem Pyinstaller Python Apps für fast jede Zielplattform erzeugen, aber Pyinstaller muß jeweils von diesen dieser Zielplattformen gestartet werden. Und wer außerhalb der Industrie hat schon eine macOS-, Windows- und diverse Linuxkisten zu Hause rumstehen? Daher werden Pygame-Zero-Skripte im Regelfall im Quellcode (mit allen Assets!) verteilt und dann hofft man, daß der Nutzer ein halbwegs aktuelles Pygame Zero auf seinem Rechner installiert hat.
Bei den Deployment-Plattformen für Indie-Games ist eindeutig itch.io der Patzhirsch. Aber es gibt auch Alternativen, wie zum Beispiel Glitch für JavaScript-/HTML5-Anwendungen. Das Besondere an Glitch ist, daß jeder Nutzer – zumindest in der kostenfreien Version – Einsicht in den Quellcode einer Anwendung nehmen und/oder diese remixen kann. Also wieder ganz im Sinne der »Eroberung einer Kunstform«. Glitch verfügt außerdem über eine Git-Integration und läßt sich daher auch mit GitHub-, GitLab- oder anderen Online-Git-Servern verbandeln.
✏️ Notiz an mich: Testen, wie sich die HTML5 Apps auf Glitch oder itch.io hochladen (und ausführen) lassen — zu Glitch gibt es ein Video-Tutorial von Daniel Shiffman (Deployment (Glitch and Heroku) und für itch.io eines von Eric Guadara (Publish Your Twine Game to Itch.io).
Also Freaks, Normale, Amateure, Künstler, Träumer, Dropouts, Queere, Hausfrauen, also Menschen wie Du und ich, bietet der Spieleindustrie die Stirn und laßt uns gemeinsam die Kunstform Videospiel zurückerobern. Die Werkzeuge sind schließlich da, sie müssen nur genutzt werden. Stay creative!
Über …
Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!
Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.
Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.
Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes
von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.
Werbung
Diese Spalte wurde absichtlich leergelassen!