Mir wurde diese Woche von meinem heimlichen Spiele-Flüsterer empfohlen, doch mal einen Blick auf TIS-100 zu werfen (gibt es auf Steam). In dem Spiel der verbringt man seine knappe Freizeit ganz modern protestantisch damit, Assember-Code zu programmieren. Klingt nach Spaß, oder?
Hintergrund-Geschichte: Der TIS-100 ist teilweise beschädigt und als SpielerIn muss durch geschicktes Programmieren die Prüfroutine Level für Level davon überzeugt werden, dass doch alles in Ordnung ist. Dafür müssen Aufgaben gelöst werden wie “transportiere die Zahlen aus Eingang A zum Ausgang B” oder “transportiere gerade Zahlen nach A und ungerade nach B”:
Zur Verfügung steht ein knappes Set typischer Assembler-Befehlen wie “MOV” und “ADD”. Um diese zur Hand zu haben, sollte man praktisch zunächst die kurze Spieleanleitung ausdrucken (ja, wirklich), denn hier werden die Assembler-Befehle erklärt. Und irgendwie gehört Ausdrucken zum Feeling dazu:
Erfreulicherweise hat mein Drucker beim Ausdrucken der 14 Seiten einen Schluckauf bekommen, sich stilecht daneben benommen und mir halbe Seiten ausgedruckt. Ich habe eigentlich nur noch das alte Geräusche eines Nadeldruckers vermisst.
Das Gameplay selbst ist recht anstrengend. Die Rätsel werden schnell kompliziert, man muss zu Beginn oft die möglichen Befehle nachschlagen. Ein Programmbeispiel aus der Anleitung zeigt ganz gut, was man für Code schreiben muss:
START:
MOV UP, ACC
JGZ POSITIVE
JLZ NEGATIVE
JMP START
POSITIVE:
MOV ACC, RIGHT
JMP START
NEGATIVE:
MOV ACC, LEFT
JMP START
Und wem das einfache Lösen der Aufgaben nicht reicht, der kann probieren, Programme zu optimieren, um mit möglichst wenig Instruktionen und Rechenzyklen zum Ziel zu kommen.
Zum Programmieren-Lernen wird sich TIS-100 wohl nicht eignen. Ob man nun schon mal Assembler geschrieben haben sollte, kann ich schlecht beurteilen. Ich habe es vor 20 Jahren mal einen Tag probiert und das war genug Halbwissen, um gut mit dem Spiel zurechtzukommen. Ich mag die optische Retro-Aufmachung und die Ruhe, mit der man die Probleme lösen kann. Warum ich nun Spaß dabei empfinde, abends Assembler-Pseudo-Programme zu schreiben, ist ein anderes Thema.
Dabei fällt mir ein, dass ich früher gern ein Spiel gespielt habe, in denen man kleine Programme schreiben musste, die dann auf einem virtuellen Spielfeld gegen andere antreten mussten. Vielleicht fällt mir der Name des Spiels wieder ein. Bis dahin verzweifle ich ein wenig am TIS-100.
p.s.: Die anderen Spiele von Zachtronics sind auch einen Blick Wert.
Meinst Du vielleicht RoboCom? Da musste man Assemblercode für kleine Roboter schreiben, die sich vervielfältigen und andere Roboter umprogrammieren können …
“Corewar(s)” ist der Klassiker der gegeneinander antretenden Programme.