Test: TIS-100 (Logik & Kreativität)

von Benjamin Schmädig



TIS-100 (Logik & Kreativität) von Zachtronics Industries
Zeitreise für Programmierer
Publisher: -
Release:
07.2015
07.2015
Erhältlich: Digital (Steam, GOG)
Spielinfo Bilder Videos
Minimalismus im Extrem: Auf einer schwarz/weißen Oberfläche erlebt man kein Abenteuer, löst keine Rätsel. Man programmiert die Lösung komplexer Aufgaben. Statt einer Erfolgsmeldung folgt eine Statistik über den Rechenaufwand des fertig geschriebenen Programms. TIS-100 fordert die grauen Zellen. TIS-100 ist Arbeit. Wo steckt da der Spaß?

#IGNORE MANUAL

Man muss nicht Assembler "sprechen", um den TIS-100 zu verstehen, das Tessellated Intelligence System. Man muss allerdings bereit sein, die frei erfundene Maschinensprache des fiktiven Computers zu lernen. Eine Einweisung gibt es nicht, nur eine 14-seitige PDF-Datei, das Handbuch des Rechners aus den 80er Jahren. Am besten legt man die Seiten frisch getackert neben die Tastatur.

Auf der Anleitung klebt nicht nur ein Zettel – eine Nachricht über Onkel Randys plötzliches Verschwinden und die Frage, was es mit dem TIS-100 auf seinem Schreibtisch auf sich hatte –, sie erklärt auch die wichtigsten Befehle der Programmiersprache. Die Anweisungen schreiben Zahlenwerte in den Speicher, addieren Variablen, verschieben sie von einem Knoten in den nächsten.

Bis zu 15 Befehle können in einem solchen Knoten ausgeführt werden und durch die richtigen Befehlsketten müssen Ausgangswerte so manipuliert und bewegt werden, dass die ausgeschriebenen Ergebnisse vorgegebene Zielknoten erreichen. Dann öffnen sich neue Herausforderungen sowie Notizen mit Hinweisen auf die Geschichte um Onkel Randy.
Aus wenigen Befehlen können komplexe Programme entstehen.
Aus wenigen Befehlen können komplexe Programme entstehen.


MOV 84 DOWN

Programmierer haben beim Lösen dieser Aufgaben alle Freiheiten. Im einfachsten Fall – oder weil ihnen keine bessere Lösung einfällt – könnten sie einen Wert durch ein Labyrinth an Knoten schieben, bis er den Output erreicht. Eleganter ist natürlich das Verschieben ohne Umwege.

Aber welche Befehlskette errechnet innerhalb eines Knotens das geforderte Ergebnis, so dass der Weg über einen zweiten nicht notwendig ist? Eine Statistik vergleicht die Effizienz des Programms mit denen anderer Spieler; es zählt die Anzahl der benötigten Programmschritte, Knoten und Befehle. Echte Cracks beißen sich daran die Zähne aus. Sie optimieren noch, während andere ihre unhandliche Lösung längst abgehackt haben.

Und wenn sie nicht nur sich selbst, sondern auch ihren Kollegen cleveres Low-Level-Programming entlocken wollen, dann schreiben sie gar eigene Herausforderungen: Editoren ermöglichen das Erstellen eigener Programme und Aufgaben.

HCF

Kommentare

Leonardo Da Vinci schrieb am
Akabei hat geschrieben:
Leonardo Da Vinci hat geschrieben:ja danke für den tip, aber ne, wenn schon denn schon auch auf dem pc, was würde mir so etwas auf dem c64 nutzen, der steht hier schon lange nicht mehr rum, dafür zwar ein amiga 500, aber selbst da würde es mich nicht unbedingt reizen...
Na dann viel Glück bei der Suche nach vernünftigen Hardwaredokumentationen z.B. für deine Grafikkarte (von Tutorials ganz zu schweigen). :wink:
btw: Ehrlich gestanden halte ich selbst den C64 für Anfänger schon fast für zu komplex. Den Commodore 64 Programmer's Reference Guide sollte man intus haben und um richtig in Assembler einzusteigen würde ich 6502 Assembly Language Programming von McGraw-Hill empfehlen. Das alleine hat über 600 eng beschriebene Seiten.
Es hat schon seine Gründe warum heutzutage selbst bei zeitkritischen Programmteilen so gut wie niemand mehr in Assembler programmiert. Von kompletten Spielen in Assembler, am besten noch als Ein - Mann - Projekt, hört man selbst für den 64er nichts mehr und die Szene ist durchaus noch sehr aktiv.
Ich will dir nicht allen Mut nehmen, aber wenn du Assembler bis zur Entwicklung eines fertigen eigenen Spiels lernen willst, wartet vom Zeitaufwand her ein echtes Mammutprojekt auf dich.
ja danke, aber ich weiss das assembler ziemlich heftig ist, kenne noch jemanden der auf dem amiga programmiert hat. und die bücher die der dafür an der seite liegen hatte waren ziemlich dick! :D
sourcOr schrieb am
Wir haben im Studium für den MIPS R2000 Assembler geschrieben. Vllt wäre das als Einstieg nicht so verkehrt, wenn wirklich Interesse da ist. Der Befehlssatz ist auch recht übersichtlich (ich kenne keine anderen, ich behaupte einfach mal, dass es übersichtlich ist :mrgreen: ). Als Simulator, damit du den Code auch ausführen kannst, nimmste "SPIM", und hier wäre eventuell ein gutes Tutorial. War das erste bei google, gibt vllt bessere.
johndoe1238056 schrieb am
Leonardo Da Vinci hat geschrieben:ja danke für den tip, aber ne, wenn schon denn schon auch auf dem pc, was würde mir so etwas auf dem c64 nutzen, der steht hier schon lange nicht mehr rum, dafür zwar ein amiga 500, aber selbst da würde es mich nicht unbedingt reizen...
Na dann viel Glück bei der Suche nach vernünftigen Hardwaredokumentationen z.B. für deine Grafikkarte (von Tutorials ganz zu schweigen). :wink:
btw: Ehrlich gestanden halte ich selbst den C64 für Anfänger schon fast für zu komplex. Den Commodore 64 Programmer's Reference Guide sollte man intus haben und um richtig in Assembler einzusteigen würde ich 6502 Assembly Language Programming von McGraw-Hill empfehlen. Das alleine hat über 600 eng beschriebene Seiten.
Es hat schon seine Gründe warum heutzutage selbst bei zeitkritischen Programmteilen so gut wie niemand mehr in Assembler programmiert. Von kompletten Spielen in Assembler, am besten noch als Ein - Mann - Projekt, hört man selbst für den 64er nichts mehr und die Szene ist durchaus noch sehr aktiv.
Ich will dir nicht allen Mut nehmen, aber wenn du Assembler bis zur Entwicklung eines fertigen eigenen Spiels lernen willst, wartet vom Zeitaufwand her ein echtes Mammutprojekt auf dich.
Leonardo Da Vinci schrieb am
Akabei hat geschrieben:Ich würde zum Einstieg in Assembler tatsächlich zu einem geschlossenen Retrosystem raten. Codebase 64 wäre die erste Anlaufstelle für den C64, bei Forum64 gibt es iirc auch ein paar Assembler Tutorials.
Aber wie schon erwähnt, ich würde nicht zu viel erwarten. Die Einarbeitungszeit ist selbst für solch ein System immens.
ja danke für den tip, aber ne, wenn schon denn schon auch auf dem pc, was würde mir so etwas auf dem c64 nutzen, der steht hier schon lange nicht mehr rum, dafür zwar ein amiga 500, aber selbst da würde es mich nicht unbedingt reizen...
johndoe1238056 schrieb am
Ich würde zum Einstieg in Assembler tatsächlich zu einem geschlossenen Retrosystem raten. Codebase 64 wäre die erste Anlaufstelle für den C64, bei Forum64 gibt es iirc auch ein paar Assembler Tutorials.
Aber wie schon erwähnt, ich würde nicht zu viel erwarten. Die Einarbeitungszeit ist selbst für solch ein System immens.
schrieb am