Veröffentlicht inTests

Shenzhen I/O (Logik & Kreativität) – Read the fucking manual!

Vor
mir liegt ein Hefter, darin Listen elektronischer Bauteile sowie die
Grundlagen einer maschinennahen Programmiersprache. Grußworte hat mir
mein neuer Arbeitgeber beigelegt, Papiere zum Beantragen der Einreise
ins chinesische Shenzhen sowie Produktvorstellungen elektronischer
Gadgets. Denn die herzustellen ist mein neuer Job. Also konzipiere ich
Designs, indem ich Mikrocontroller mit anderen Bauteilen verbinde und
programmiere. Sämtliche Grundlagen bringe ich mir mithilfe des Handbuchs
selbst bei. Es gibt kein Tutorial, kein An-die-Hand-Nehmen – Shenzhen
I/O macht mich auf umfassende Art zu einem beinahe realen Elektroniker,
wie ein Spiel fühlt es sich kaum an. Und gerade deshalb ist es eines der
besten seiner Art!

© Zachtronics / Zachtronics

Made in China

Dabei ist Shenzhen I/O kein kompliziertes Spiel: Seine Geschichte ist flott erzählt, sein Inhalt schnell beschrieben. Es spielt in der nahen Zukunft der chinesischen Metropole Shenzhen. Als Angestellter eines Longteng genannten Unternehmens setzt man Schaltkreise aus verschiedenen Bauteilen zusammen und programmiert deren Mikrocontroller so, dass sie verschiedene Eingaben an gewünschte Ausgabegeräte weiterleiten. So entstehen Displays, die auf Knopfdruck einen Betrag addieren oder subtrahieren, sowie Module, die den Klang eingehender Musik verändern.

Land und Leute lernt man durch E-Mails kennen – erfreulich gut geschriebene von erstaunlich greifbaren Charakteren. Auch Aufträge erhält man per Elektropost, wobei man fast immer zwischen verschiedenen Projekten wählen darf. Auf dieser einfachen Benutzeroberfläche entwickelt Shenzhen I/O ein überraschend glaubwürdiges Eigenleben. Mit der

[GUI_STATICIMAGE(setid=81119,id=92536928)]
Per E-Mail erhält man nicht nur Aufträge, sondern lernt auch Land und Leute kennen. © 4P/Screenshot

Gruppendynamik eines Rollenspiels hat das natürlich nichts gemein! Weil Inhalt und Darstellung aber sinnvoll zusammenpassen, fühle ich mich stärker als Teil des Longteng-Kollektivs, als ich vor dem ersten Hochfahren des virtuellen Rechners vermutet hatte.

RTFM!

Es ist also ganz einfach: Man zieht ein Bauteil auf die Blaupause, verbindet Schalter, Ausgabegerät sowie Mikrocontroller durch Verbindungskabel und gibt den Befehl „mov p0 x1“ ein. Das transportiert den an p0 eingehenden Wert zu Ausgang x1 – I/O steht für Input/Output, also Eingang/Ausgang. Das Programmieren erinnert an TIS-100, das ebenfalls von Zachary Barth erdacht wurde und für das er eine ganz ähnliche Programmiersprache erfunden hatte.

Aber natürlich reicht hier wie da das Verschieben von Werten selten aus. Sie müssen umgewandelt werden, dürfen ausschließlich unter bestimmten Bedingungen verarbeitet werden, oft sollen verschiedene Signale unterschiedliche Funktionen auslösen usw. Ein profaner Zähler sieht etwa so aus:

[GUI_STATICIMAGE(setid=81119,id=92536927)]
Links das Listing, rechts die praktische Anwendung. © 4P/Screenshot

   tgt p0 0
+ add 1
   tgt p1 0
+ sub 2
   tlt acc 0
+ mov 0 acc
   mov acc x1
   slp 1

Schnell werden die Abhängigkeiten zahlreicher, das komplette Design komplexer. In vielen Geräten müssen mehrere Bauteile mit jeweils eigenen, voneinander abhängigen Programmierungen verknüpft werden. Und genau wie in TIS-100 ist das Handbuch dabei die wichtigste Hilfe, weil nur dort sowohl Bauteile als auch die Assembler-ähnliche, frei erfundene Programmiersprache beschrieben sind. Die Oberfläche weist zwar auf Fehler im Code hin, führt aber nicht wie ein interaktiver Lehrer außerhalb des Spiels an dessen Funktionsweise heran. Entweder druckt man sich das Handbuch also aus oder liest das stets im Hauptmenü verfügbare PDF, um sich wie ein echter Elektroniker der Materie zu nähern.