Um das klar zu sagen: while True: learn() ist kein Edutainment, sondern ein ganz normales Knobelspiel. Am ehesten erinnert es mich an Gladiabots oder Titel von Zachtronics, auch wenn man hier keine Programme schreibt. Vielmehr erschafft man automatisierte Vorgänge, in denen variable Eingangswerte – symbolisiert durch geometrische Formen sowie Farben – über mehrere Knotenpunkte (Engl.: Nodes) so sortiert werden, dass man an den „Ausgängen“ Stapel mit den dort geforderten Ausgangswerten (rote Dreiecke oben, blaue Vierecke unten, grüne Kreise in die Mitte usw.) erhält.
Jeder Knoten teilt dabei alle ankommenden Werte auf mindestens zwei Output-Ströme, wobei die Art der Trennung von den Bedingungen abhängt. Manche Nodes trennen die Inputs z.B. so, dass ein Strom alle roten Inputs enthält und der andere alle grünen. Doch was geschieht mit den blauen? Die würden jeweils vom Zufall auf die beiden Ströme verteilt, müssten also über weitere Knoten aus beiden Strömen ausgemustert werden – falls das überhaupt verlangt wird. Oft genug besitzen die finalen Stapel nämlich eine gewisse Fehlertoleranz. Sprich, man erschafft keine perfekten, sondern lediglich hinreichend genaue Abläufe.
Und das ist eben das Knifflige hier: Es gibt fast keine Knotenpunkte, die für mein Verständnis exakt sortieren, weshalb man sich erst einmal in dieses System hineindenken muss, bevor man versteht, wie man die Werte der „unsauberen“ Datenströme über jeweils mehrere Schritte so aufteilt, dass sie mit ausreichender Genauigkeit den richtigen Stapel erreichen. Durch dieses Umdenken entstehen angenehm knackige Herausforderungen, die ich so aus keinem anderen Spiel kenne, und die mit jeder Aufgabe auch neue Kopfnüsse bieten. Manche Sortier-Routinen muss man der KI zudem erst antrainieren, was im Ausnahmefall durch manuelles “Vorspielen” der zu analysierenden Situation geschieht.
Geradlinige Ereignisketten
Ganz frei gestaltet man die Abläufe dabei nicht, denn in den meisten Rätseln sind nur wenige der im Spiel vorhandenen Knotenpunkte überhaupt verfügbar und das schränkt die Kreativität leider ein. Zuvor gelöste Sortieraufgaben sind zwar als einzelne Knoten verfügbar, was die Übersichtlichkeit erhöht. In einem Editor erstellt man sogar vollkommen frei eigene Knoten – aber genau die darf man fast nie verwenden. Schade: Als weitgehend freies System hätte ich vermutlich noch mehr Spaß mit while True: learn() gehabt…
… was auch daran liegt, dass mir das reine Zusammendenken komplexer Ereignisketten nicht allzu sehr liegt. Immerhin muss man vorhersehen, wie die Werte über mehrere Nodes hinweg auf immer mehr Datenströme aufgeteilt werden: „Wenn unten links Grün von Rot und anschließend Vierecke von andere Formen getrennt werden, weiter oben aber blaue Dreiecke von Kreisen…“ Es ist ein bisschen wie Sudoku, das mir aus einem ganz ähnlichen Grund nicht zusagt, und wem das ähnlich geht, der sei darauf hingewiesen. Ein allgemeiner Nachteil ist schließlich der bei komplexen Lösungen so überladende Editor, dass die Übersicht stark leidet.
Großes Lob verdient hingegen die Steuerung, denn im Wesentlichen ist der Knotenbaukasten komplett per Touch spielbar. Man zieht die benötigen Teile einfach in und über das Bild und tippt sich durch Drop-Down-Menüs. Manche davon sind eine Idee zu klein, sodass man gelegentlich daneben „tatscht“, aber das ist verschmerzbar. Zumal man immer auch den Cursor per Analogstick umherfahren und alle Funktionen, darunter sogar das Rückgängigmachen mehrerer Aktionen sowie das Markieren und Kopieren ganzer Knotensysteme, über verschiedene Tasten ausführen kann.
Verdientes Investieren
Richtig gut gefällt mir auch, wie viele Aufgaben es abseits des roten Fadens gibt, sodass man praktisch nie in einer Sackgasse festhängt. Außerdem kauft man neue Hardware (Speichererweiterungen, Festplatten, Prozessoren), um Abläufe z.B. zu beschleunigen oder zusätzliche Lösungen pro Aufgabe zu speichern. Nicht zuletzt schmückt man das als Arbeitszimmer dargestellte Hauptmenü mit Pflanzen, Figuren und Postern oder verpasst sich gar eine neue Frisur.
Das Geld dafür verdient man selbstverständlich durch das Erledigen von Aufgaben, zu denen Lösungen für fiktive Startup-Unternehmen zählen, an deren Umsatz man daraufhin beteiligt wird. Sprich, je effektiver die Sortierung funktioniert, desto höher fällt das Einkommen aus. Das ist eine nette Ergänzung des im Grunde trotzdem geradlinigen Ablaufs ohne potentielle Sackgassen.
Immerhin spielt man einen Entwickler, der mit seiner Arbeit Geld verdient – und so ganz nebenbei eine Software erschaffen will, welche die Gefühle und Sprache seiner Katze übersetzt. Die hält er nämlich für so clever, dass sie glatt programmieren könnte, nur muss er sie dafür erst mal verstehen. Mit anderen Worten: while True: learn() ist auch im Drumherum angenehm unterhaltsam, was die grundsätzlich trockene Materie ein wenig auflockert. Ich muss zwar zugeben, dass ich mich auch hier mit manchen Analogien und Erklärungen zum Maschinellen Lernen schwer tue – finde es aber klasse, dass man direkt im Spiel viele Links zu externen Informations- und Diskussionsstellen findet!