Bernhard Häussner

Ein schönes Online-Spiel names adinfinitvm

29.06.2016, 12:44

Ich habe ein Online-Spiel programmiert: adinfinitvm. Es ist ein minimalistisches Puzzle-Spiel, mit unendlich vielen Levels. Es basiert auf dem Spiel ∞ loop, das als App für iOS und Android umgesetzt ist, welches wiederum auf dem Flash-Spiel „Loops of Zen“ von Dr. Arend Hintze basiert.

Ich bin anscheinend reichlich uninformiert, was die neuesten Spiele-Apps angeht: Das Loopgame wirbt mit „das beliebteste Game des Jahres 2016“ (obwohl das Jahr gerade mal zur Hälfte vorbei ist) und ich habe davon nur erfahren, da ich ein selbst-designtes T-Shirt trug mit meinem Ravello Switch Knot, welches eine Freundin an das Spiel erinnert hat.

Das T-Shirt vom Ravello Switch Knot mit dem alles begonnen hat

Das T-Shirt vom Ravello Switch Knot mit dem alles begonnen hat

Es ist schwierig aus der großen Menge der kleinen Smartphone-Spielchen herauszustechen. Bei den meisten Spielen muss man seine Geschicklichkeit unter Beweis stellen, und z.B. im Wesentlichen besonders schnell und zum richtigen Zeitpunkt klicken (Hardest Game Ever, Stack). Andere nutzen den Touchscreen (Follow the Line) oder die Neigungssensoren (Temple Run, Teeter) für neuartige Herausforderungen. Solche Spiele werden mir jedoch schnell langweilig, ab einem gewissen Zeitpunkt verbessert man sich kaum noch und alles wird sehr eintönig.

Schon etwas nachhaltig fordernder sind einige Puzzle-Spiele (Two Dots, Candy Crush Saga, Lazors). Diese werden jedoch mit der Zeit so schwer, dass man keine Level mehr schafft oder sich via In-App-Käufen Leben kaufen muss, um weiter zu kommen. Da hört der Spielspaß dann auch sehr schnell auf.

Hier ist das Loopgame eine gelungene Alternative: Die Level werden langsam schwieriger, sind aber nie unschaffbar. Die Aufmachung ist sehr minimalistisch, sodass das Spielen sehr entspannend ist. Es eignet sich perfekt um die Motorik ein bisschen auf Trab zu halten, während man Podcasts, Hörbücher oder Vlogs konsumiert.

Meine Aufmerksamkeit hat aber dies geweckt: Das Modell hinter dem Spiel ist dem des MacMahonMosaik Online Games ziemlich ähnlich, welches ich vor einiger Zeit programmiert habe. Während man beim MacMahonMosaik dreifarbige Quadrate verschieben und drehen kann, kann man im Loopgame Quadrate mit zwei „Farben“ (Pfad-Ende/freier Raum) drehen, aber nicht verschieben. Das MacMahonMosaik hat nur ein Level, welches ziemlich schwer ist. Trotzdem dachte ich, das Spiel ist schnell programmiert, wenn ich meinen alten Code vom MacMahonMosaik leicht abändere.

Als ich meinen sieben Jahre alten Code dann angesehen habe, viel mir auf, dass ich mich damals intensiv mit dem Thema OOP in Javascript beschäftigt habe. Inzwischen gibt es mit ES2015 Klassen in JavaScript. Aber ich fand mich schnell im großen Wirrwar von Javascript Transpilern, source maps, Babel und gulp, sodass ich schnell beschlossen habe, für ein so kleines Projekt lieber nicht den ganzen Konfigurationsaufwand zu betreiben. Als ich nach wachsender Codemenge dann mehrere Dateien zu einer zusammenzufügen musste (hallo cat), bin ich auf coffebar gestoßen, was ohne viel Konfiguration läuft. Und CoffeeScript hat auch Klassen, somit war die Entscheidung gefallen.

Eine weitere Besonderheit ist vielleicht der Verzicht auf jQuery und andere JS-Bibliotheken. Im Jahr 2009 war jQuery noch eine sehr nötige Bibliothek: Nach jeder neuen Version eines Browsers hat man gleich die Acid-Tests durchgeführt, die die Kompatibilität mit grundlegenden DOM-Funktionen testen. Damals war jQuery die Rettung von vielen kleinen Inkompatibilitäten und Bugs. Das war die Zeit, in der jeder Webentwickler durch das Aussprechen von „Internet Explorer 6“ einen enormen Bluthochdruck bekommen konnte. Hier war es für mich eine kleine Herausforderung all die Funktionalitäten des Mosaiks ohne jQuery zu realisieren.

Heute hat sich das Bild geändert: Die API von jQuery wird noch immer mit jeder Version eleganter, aber dank Fortschritt der Browser und Standards entstehen neue Trends weg von jQuery: Für einfache Effekte kann man heute direkt die nativen APIs ansprechen (man denke nur an document.querySelector) und für komplexe Webapplikationen gibt es umfassendere Frameworks wie Angular 2 und React, die es einfach machen, komplexe UIs aus Komponenten mit eigenem State zusammenzustellen. Das Gemüt der Webentwickler erhitzt sich heute eher an „Mobile Safari“.

Auch meine Implementierung des Loopgames, ich nenne sie „adinfinitvm“, profitierte von „neuen“ Webtechnologien: Die Graphiken für Pfade und Dreiecke lassen sich mit SVG erstellen und die Animationen werden mit CSS' transition gemacht. So begnügt sich das Spiel mit einer index.html, den Webfonts und rund einem duzend CoffeeScript-Dateien. Der interessiere Leser kann sich den Code auf GitHub ansehen.

Kurze URL http://1-co.de/b/2A. Post to twitter

Kommentare

keine





 
Χρόνογραφ
© 2008-2017 by Bernhard Häussner - Impressum - Login
Kurz-Link zu dieser Seite: http://1-co.de/b/2A