Das Computerscience-Spiel 'Turing Complete'
(turingcomplete.game)- Turing Complete ist ein Spiel, das darauf ausgerichtet ist, Computer-Science-Konzepte tiefer zu verstehen, indem man Probleme selbst löst
- Das Lernen beginnt mit Logikgattern und verläuft so, dass man versucht, allein mit einem NAND-Gatter andere Gatter zu bauen
- Danach werden Speicher und Komponenten kombiniert, um einfache Schaltungen zu einer Form zu erweitern, die einer realen Computerarchitektur näherkommt
- Der vom Spieler gebaute Computer zielt auf Turing complete ab, also auf eine Struktur, die Algorithmen wie eine Turing-Maschine berechnen kann
- Auf der selbst gebauten Hardware stellt man Assembler-Befehle zusammen und löst Programmierpuzzles auf Basis von Binärcode
Computer Science als Spiel lernen
- Turing Complete ist ein Spiel rund um Computer Science
- Es richtet sich an Menschen, die Freude daran haben, Probleme zu durchdringen, und Konzepte, die sie schon verstanden zu haben glaubten, noch einmal tiefer zu betrachten
- Es ist auf Steam als Play Turing Complete verfügbar
Ein Lernpfad von Schaltungen zur Computerarchitektur
-
Logikgatter
- Logikgatter sind die grundlegenden Bausteine der Berechnung
- Man lernt die Grundlagen von Schaltungen, indem man nur mit einem NAND-Gatter die übrigen Gatter nachbaut
-
Komponenten und Speicher
- Auf den Logikgattern aufbauend kann man durch das Hinzufügen von Speicher komplexere Komponenten erstellen
- Diese Bausteine werden kombiniert und zu einer realen Computerarchitektur erweitert
-
Architektur
- Der selbst zusammengesetzte Computer strebt Turing complete an
- Damit ist ein Computer gemeint, der Algorithmen wie eine Turing-Maschine berechnen kann
-
Assembler
- Computer werden mit Binärcode programmiert
- Man erstellt Assembler-Befehle, um diesen Prozess zu vereinfachen, und löst Programmierpuzzles auf der selbst gebauten Hardware
1 Kommentare
Meinungen auf Hacker News
Ich bin ein einfacher Mensch: Wenn ich Turing Complete auf HN sehe, hinterlasse ich einen wohlwollenden Kommentar :)
Ich habe es vor ein paar Jahren gekauft und ein paar Level gespielt, dann ließ ich meinen damals 14-jährigen Sohn in den Sommerferien weitermachen und half gelegentlich mit. Im letzten Level schrieb mein Sohn ein Programm in der pseudo-Assembler-Sprache, die das Spiel einem beibringt, und ließ einen von ihm selbst aus Logikgattern gebauten Computer ein zufälliges Labyrinth nach der Rechte-Hand-Regel durchqueren. Dieses Spiel ist wirklich großartig.
Mein einziger Kritikpunkt ist, dass es nicht einmal etwas Ähnliches gab, als ich in dem Alter war.
Bei den Leveln, in denen Speicher eingeführt wird, hänge ich allerdings immer wieder fest; mein Gehirn scheint das Konzept von nächstem/vorherigem Tick nicht gut zu verarbeiten. Zum Glück gibt es online viele Hinweise und Komplettlösungen, sodass man notfalls die Lösung einfügen und zum nächsten Level weitergehen kann.
Das Spiel selbst war schon vor über einem Jahr im Wesentlichen fertig, und der Entwickler hat an einer kompletten Neuimplementierung gearbeitet, um die Performance zu verbessern und komplexere CPUs usw. bauen zu können. Ich hoffe, dass beim Ausrollen des Updates nichts kaputtgeht.
Sehr zu empfehlen.
[0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
Was ich hatte, war:
Mux(a=out, b=in, sel=load, out=muxOut)
DFF(in=muxOut, out=DFFOut)
Die letzte Zeile hätte so sein müssen:
DFF(in=muxOut, out=DFFOut, out=out)
Trotzdem wirkt Turing Complete wie die perfekte Ergänzung zu NAND to Tetris. Es scheint allerdings nur auf Steam verkauft zu werden; schön wäre, wenn man es unabhängig kaufen könnte.
Ich mag Spiele dieses Genres sehr, und meine Sammlung entsprechender Spiele auf Steam wächst nach und nach. Manche sind auch nicht auf Steam, etwa nandgame.
Turing Complete gehört dabei zu den besseren; die Simulation wirkt stabil, und nach der Überarbeitung in der frühen Early-Access-Phase sind auch die Missionen ziemlich gut gestaltet.
Allerdings ist die UI nicht immer reibungslos, und es fehlt an Anleitung, weshalb es besser zu Leuten passt, die schon in anderen Simulatoren einen ähnlichen Weg durchlaufen haben.
Wenn man unter ähnlichen Spielen eines sucht, das die Konzepte besser erklärt, empfehle ich Silicon Zeroes. Insgesamt wirkt es etwas weniger ausgefeilt, hat aber eine niedliche Erzählstruktur, erklärt besser, was die einzelnen Level vermitteln sollen, und behandelt insbesondere Probleme rund um den Takt deutlich besser.
Wenn man eher die pseudo-Assembler-Seite als die Elektronikseite mag, empfehle ich TIS-100 oder Shenzhen I/O.
Wenn man gut gemachte Rätsel bevorzugt, könnte Human Resource Machine eher dem eigenen Geschmack entsprechen.
Auch diese Nachricht zu Turing Complete ist lesenswert: https://steamcommunity.com/app/1444480/eventcomments/3806156...
Nach einem Jahr ohne Updates erschien im August 2023 die Nachricht „Sorry, bald kommt ein großes neues Update!“, und seitdem herrscht wieder Funkstille.
Der Entwickler scheint in einem enormen großen Rewrite festzustecken, der deutlich länger dauert als erwartet.
Ich habe darauf gewartet, es erneut zu spielen, wenn es Early Access verlässt, aber ich mache mir Sorgen, dass ich ewig warten werde.
Digital Computing hat den Vorteil der Abstraktion. Um über Logikgatter nachzudenken, muss man das Ohmsche Gesetz nicht kennen.
Wenn man zu Analog Computing übergeht, muss man zwangsläufig einen Weg finden, Mathematik zu vermitteln. Die Operationen sind dann nicht mehr boolesch, sondern Kombinationen verschiedener elektrischer Gleichungen. Selbst wenn es einfache Mathematik ist, ist das etwas anderes als das übliche Gefühl eines Programmierspiels.
Trotzdem würde mich interessieren, ob das spannend klingt und ob man so etwas spielen würde.
https://store.steampowered.com/app/2124440/SIC1/
Von Human Resource Machine erinnere ich mich, nur die ersten paar Herausforderungen ausprobiert zu haben. Die Rätsel fühlten sich zu leicht an, und auch der Lösungsprozess war nicht besonders schwierig, daher habe ich nicht bis zum späteren Teil weitergespielt.
Passenderweise habe ich es gerade im Steam-Winter-Sale gekauft.
Ein tolles Konzept, aber damit es ein richtiges Spiel oder ein eigenständiges Lernwerkzeug wird, braucht es noch deutlich mehr Feinschliff.
Für Leute mit Vorwissen ist es okay, aber Anfängern wirft es die Aufgaben mit sehr wenig Anleitung, Erklärung und Vorbereitung hin; das dürfte eine ziemlich frustrierende Erfahrung sein.
Eine Funktion, die bei der Schaltungsplatzierung hilft, wäre ebenfalls schön. Wenn man Bauteile verschiebt oder dreht, werden sie von den Leitungen getrennt, und man muss die Leitungen einzeln manuell neu zeichnen. Selbst nachdem man die richtige Logik herausgefunden hat, gibt es bei der Umsetzung ziemlich viel Reibung.
Ich habe dieses Spiel wirklich gern gespielt, und es macht mir immer noch Spaß. Am besten ist es, wenn man sich am Stück länger damit beschäftigt.
Wie bei Factorio ist es nach einer längeren Pause oft spaßiger, neu anzufangen, statt weiterzumachen. Oder man bleibt einfach in der Sandbox der Endphase.
Die UI könnte noch etwas Feinschliff vertragen, und seit einigen Jahren ist eine große Performance-Überarbeitung in Arbeit, die noch nicht veröffentlicht wurde. Inzwischen gibt es auch Verilog-Export, aber den habe ich noch nicht richtig ausprobiert.
Die zusätzlichen Bauteile, die später freigeschaltet werden, machen die Sandbox wirklich unterhaltsam. Es gibt auch ein Punktesystem, das ein Wettbewerbselement hinzufügt, es wird aber erst weit nach dem ersten Computer freigeschaltet.
Ich habe dieses Spiel viel gespielt, bevor ich mich in der Lebensmitte für ein Informatikstudium entschieden habe, und dadurch waren die grundlegenden Architekturthemen sehr leicht. Auch als spaßige Wiederholung kann ich es sehr empfehlen.
Mit „Spaß“ ist hier gemeint, in einer freundlichen Umgebung mit boolescher Logik herumzuspielen; wenn einem diese Vorstellung nicht gefällt, dürfte auch dieses „Spiel“ nicht passen.
Wir setzen es tatsächlich auch im Unternehmen ein und empfehlen es sehr.
Vor etwa einem Jahr habe ich es zusammen mit einem Kollegen in der Freizeit bis zum Ende durchgespielt und war wirklich begeistert. Wir fanden, dass es perfekt zu Auszubildenden in der Elektrotechnik passen würde, weil sie in der Ausbildung zwar Konzepte der digitalen Logik wie Gates, Register, Schieberegister und Zähler lernen, aber selten Gelegenheit haben, sie in praktischen Projekten viel anzuwenden.
Außerdem werden aufgrund zeitlicher Einschränkungen abgeleitete Themen wie Assembler-Programmierung kaum noch gut vermittelt.
Mit ein wenig zusätzlicher Anleitung von außen hilft dieses Spiel wirklich dabei, Menschen zu motivieren, die Funktionsweise digitaler Logikbausteine zu verstehen und selbst damit herumzuspielen. Dass man bis zu dem Punkt kommt, eine einfache Assemblersprache zu schreiben und damit Rätsel zu lösen, ist großartig und motiviert auch die Schüler sehr.
Als ich die Seite zum ersten Mal geöffnet habe, sah es aus wie ein Abklatsch von Sebastian Lagues Digital Logic Sim [1], aber nachdem ich das Video gesehen hatte, war ich beeindruckt, weil es tatsächlich viel tiefer geht. Also habe ich es gekauft. Ich hoffe, dass ich in naher Zukunft Zeit finde, damit herumzuspielen.
1: https://sebastian.itch.io/digital-logic-sim
Dieses Spiel lässt sich problemlos mit einem Semester Grundlagen der Informatik vergleichen, fühlte sich aber besonders durch das Assembler-Minispiel unterhaltsamer an.
An der Universität gab es getrennte Aufgaben: eine zum Entwurf bestimmter Befehle für eine virtuelle CPU und eine zum Entwurf bestimmter Schaltungen, aber es waren keine vollständigen oder funktionsfähigen Designs.
Turing Complete hat Spaß gemacht, weil man beim Bau einer vollständigen kleinen CPU seine eigene Instruction Set Architecture erstellen und sie so tief ausarbeiten kann, wie man möchte.
Ein ähnliches Spiel: https://nandgame.com/
Allerdings scheint Turing Complete mehr Tiefe zu haben als nand game.
Ich habe dieses Spiel gekauft und halte es für ein Kunstwerk.
Ich habe nicht Informatik studiert, arbeite aber seit etwa 15 Jahren als Entwickler. Vieles, was im Spiel vorkommt, kannte ich abstrakt oder hatte ich mit Arduino-Boards, kleinen Nebenprojekten und Ähnlichem schon einmal ausprobiert.
Aber das hier ist genau der praxisorientierte Lehrplan, nach dem Menschen, die gern an Computern herumtüfteln, sich gesehnt haben.
Exapunks(https://www.zachtronics.com/exapunks/) könnte ebenfalls interessant sein. Es hat mir Assembler besser beigebracht als ein Uni-Kurs.