while True: learn() im Test

If, case, when, then, while, break, repeat – wenn das für euch keine Fremwörter und Semikolon, keine Kolonie in der neuen Welt ist, dann werdet ihr an while True: learn() eure echte Freude haben. Doch auch all jenen denen das nichts sagt, können ihren Spaß an den kniffligen Rätseln finden und nebenbei lernt ihr auch etwas über das Leben eines Entwicklers, sowie Grundlagen des Programmierens. Nur keine Angst, auch wenn das Lernen schon im Titel des Spieles steckt, nimmt es sich nicht zu ernst und so wird das Wissen einem in guten Portionen geliefert.

Aber alles schön der Reihe nach. In while True: learn() seid ihr ein Entwickler, der gerade eines seiner Programme nach Fehler durchsucht – kurz er debuggt es. Leider erzielt ihr damit keine Fortschritte und so entfernt ihr euch vom PC und macht eine Pause. Ein folgenschwerer Handlung, denn eure Katze begibt sich an euren Rechner und berichtigt das Programm in Rekordzeit. Voll der Begeisterung versucht ihr mit der Mieze zu sprechen und herauszufinden, wie sie das geschafft hat. Doch wie alle Katzenbesitzer mir sicherlich zustimmen werden, so richtig versteht man das Miauen nicht. Daraufhin beschließt ihr einen Übersetzer zu entwickeln, nur so gut sind eure Fähigkeiten noch nicht und so beginnt ihr euch Schritt für Schritt alle notwendigen Fähigkeiten anzueignen.

Grau ist der Alltag

while True: learn() ist graphisch eher schlicht gehalten, was allerdings dem Spiel nicht schadet, sondern viel mehr vermittelt es eine leicht düstere Stimmung vom Leben eines Entwicklers. Aktuelle Programmierumgebungen wirken auf Außenstehende zwar, wie ein bunter Haufen an Wörtern, doch sie sind oft sehr trist und stark auf ihre Aufgabe fokussiert und genau dieser Eindruck wird dem Spieler vermittelt. Zwischensequenzen heitern den tristen Alltag des Coders in einem selbst erzählenden Comic-Stil auf, der immer wieder für kleine Schmunzler sorgt.

Was ist nun meine Aufgabe?

Wie schon erwähnt ist unser Ziel in while True: learn(), ein fiktives Machinelearning-Programm, zur Entschlüsselung der Katzensprache fertig zu stellen, doch wie erreichen wir dies?  Ihr durchlebt die Karriere eines Entwicklers. Dabei setzt ihr euch immer Meilensteine, die das Ende des aktuellen Karriereabschnitts darstellen und euch dem Ziel, eure Katze zu verstehen, immer näherbringt. Euer erster Meilenstein, der Computer muss erkennen, dass die Katze überhaupt davor sitzt. Um den gesetzte Vorhaben zu erreichen, gibt es immer eine zentrale Funktion, um die sich die aktuelle Entwicklung dreht. Diese Funktionen sind natürlich stark vereinfacht und es muss jedem klar sein, dass er sich nach diesem Spiel nicht einfach hinsetzen und wild drauf los Programmieren kann, trotzdem vermittelt einem das Spiel jede Menge Grundbegriffe und Methoden, wie man Software herstellt. Ähnlich wie in einem Rollenspiel, könnt ihr die Story geradlinig durcharbeiten, in dem ihr alle Hauptaufgaben, die in Form von Aufträgen und Selbststudium zu euch kommt, absolviert. Es gibt aber auch Nebenaufgaben, die zwar nicht gelöst werden müssen, um einen Fortschritt im Spiel zu generieren, aber neben der persönlichen Herausforderung, hat es noch ein paar Vorteile. Dazu später mehr.

Let’s get started!

Nun wollen wir zur Tat schreiten und unser erstes eigenes Programm verfassen. Dazu gibt es zunächst mal einen Auftrag, quasi unser Mission-Briefing und schon befinden wir uns in unserer Programmierumgebung. Diese bietet nun eine Vielzahl an Information und ist doch sehr übersichtlich gestaltet, fast selbst erklärend. Zentraler Dreh- und Angelpunkt ist unsere Arbeitsfläche die auch den größten Teil des Bildschirms einnimmt. Auf dieser ist schon unsere Eingabe und die geplante Ausgabe als Funktionsblöcke vorgegeben. Dazwischen gähnende Leere die wir mit unserem Code nun füllen müssen. Am rechten Rand befindet sich unsere Auswahlliste die, die aktuell zur Verfügung stehenden Befehlen bereithält. Diese sind in vier Kategorien eingeteilt, die sich erst im Laufe des Spiels erweitern. Zu Beginn habt ihr nur die Basics zur Verfügung, hier sind Standard-Funktionen vorgegeben mit denen ihr die Aufgabe lösen müsst. Später bekommt ihr noch vorgefertigte komplexere Methoden hinzu und könnt auch eure geschriebenen Programme nutzen. Hier ist gleich der erste Vorteil vom Lösen von Nebenaufgaben, denn dann stehen euch auch diese zur Verfügung. Später kommen dann noch Bibliotheks-Funktionen hinzu.

Unsere erste Aufgabe ist es rote und blaue Vierecke der Eingabe, zu separieren und diese zur richtigen Ausgabe zu bringen. Um dies zu tun, ziehen wir nun eine Funktion auf die Arbeitsfläche und passen diese genau so an, damit unsere Aufgabe erfüllt wird und verbinden sie mit der Eingabe beziehungsweise der Ausgabe. Schon können wir einen Testlauf starten und wenn wir mit dem Ergebnis zufrieden sind, können wir die Software gleich releasen. Aber Vorsicht der Teufel steckt wie immer im Detail, denn jede Aufgabe hat ein Limit wie viele Funktionen ihr verwenden dürft, wie viele Fehler euer Programm machen darf und als ob das nicht genug wäre, darf euer Programm nicht zu lange brauchen um abgearbeitet zu werden. Die Durchlaufzeit könnt ihr mit euren genutzten Funktionen steuern, doch Vorsicht: Funktionen mit schnellen Arbeitsgeschwindigkeiten haben auch eine höhere Fehleranfälligkeit. Das alles muss nun unter einen Hut gebracht werden und schon wächst das Verständnis für einen Entwickler, warum manchmal so viele Bugs in Spielen oder Software zu finden sind. Jedes eurer Programme wird bewertet und erhält einen Gold-, Silber- oder Bronze-Status – die Bewertung ist jedoch nur für die aktuelle Aufgabe. Es kommt immer wieder vor, dass ihr euer eigenes Programm, welches ihr zwei Aufgaben zuvor entwickelt habt, weiter verbessern oder von Fehlern befreien müsst, da der Kunde eine bessere Software wünscht. So kämpft ihr euch durch immer komplexer werdende Logik-Puzzle und erfährt am eigenen Leib, wie hart der Job des Entwicklers oft ist.

Money, Money, Money!

Ok, ehrlicherweise ist Geld nicht das zentrale Element in while True: learn() und doch spielt es eine nicht unwichtige Nebenrolle. Mit dem erwirtschafteten Zahlungsmittel könnt ihr euch Upgrades für euren Entwicklungsrechner, aber auch „Upgrades“ für eure Haustiere kaufen, sprich Kostüme, mit der ihr eure Katze eurem Geschmack anpasst. Dieses Geld verdient ihr über die Haupt- und Nebenaufgaben aber auch, über Startups die ihr gründet, fußend auf eurer Arbeit – je besser euer Programm ist, umso mehr Einkommen generiert euer Startup.

FAZIT

while True: learn() spiegelt für mich sehr genau wieder, wie die Entwicklung von Software tatsächlich sein kann und bleibt trotzdem ein unterhaltsames Puzzlespiel, das sich nicht scheut dem Spieler etwas beibringen zu wollen. Die Rätsel sind selbst für Menschen wie mich, die eine größere Erfahrung im Programmieren haben, oft nicht leicht, da man durch die eingeschränkte Anzahl an Funktionen die einem zur Verfügung stehen, nicht seine bekannten Lösungsmuster umsetzen kann. Die sehr geradlinige und ohne viel Schnörkel versehene Grafik ist zwar klassisch für Indie Titel und passt dennoch wie die Faust aufs Auge. Wer spielerisch etwas über Programmieren lernen will ohne gleich mit der harten Realität der Syntax anfangen zu müssen, wird hier perfekt bedient und man darf gespannt sein welche Überraschungen uns noch zum finalen Release erwarten.

Was ist The while True: learn() ? Ein Logik Puzzle Simulation, dass einem etwas über Programmieren beibringt.
Plattformen: PC
Getestet: auf PC Intel Core i7-7500U, 8GB RAM,NVIDIA GTX 950M
Entwickler / PublisherLuden.io / Nival
Release: 17. Jänner 2019
LinkOffizielle Webseite

Gesamtwertung: 6.4

Einzelwertungen: Grafik: 6 | Sound: 6 | Handling: 6 | Spieldesign: 6 | Motivation: 8

Passende Beiträge

Flint: Treasure of Oblivion im Test

ANTONBLAST im Test

The Spirit of the Samurai im Test