Wenn ich sage, dass Doom Turing-komplett ist, dann meine ich damit (oder vielmehr der Autor von dem ich das geklaut habe mich habe inspirieren lassen) dass man ein Doom-Level derart bauen kann, dass alles was passiert das gleiche Resultat zur Folge hat, wie logische Bauelemente.
In kurz, hat der Autor ein Level gebaut, in dem die Bewegung von (zur Vereinfachung erstmal nur zwei) Monstern stark eingeschraenkt ist. Im Wesentlichen kønnen die nur in einem Tunnel geradeaus laufen.
In einem Doom-Level kann man unsichtbare Linien installieren, die beim Uebertreten ein Ereigniss irgendwo anders ausløsen. Wenn die Monster von eben ueber so eine Linie treten, kann man die besagten Ereignisse so gestalten, dass eine Tuer die ein drittes Monster einsperrt geøffnet wird. Das waere dann ein OR-Gatter. Bei einem AND-Gatter muessen zwei Tueren geøffnet werden und bei einem NOT-Gatter muss eine Tuer geschlossen werden.
Dieses dritte Monster laeuft los (in die Richtung des Spielers) und ueberschreitet eine weitere Linie und diese løst dann das je nach Logikgatter richtige Resultat aus (in der Implementierung wird eine Saeule hoch oder runter gefahren).
Der Autor hat ein Video eines Halbaddierers als Machbarkeitsnachweis erstellt. … Geil wa!
Wie bei allen Beispielen hat die konkrete Implementierung Nachteile. Der grøszte liegt darin, dass aufgrund der Limitierungen von Doom an sich, allerhøchstens ca. 65-tausend von diesen Logikgattern in Doom selber implementiert werden kønnten … was aber wohl ausreichend waere fuer eine (SEHR) kleine CPU.
Mit diesem Leckerbissen schliesze ich die Miniserie ab. Es gibt natuerlich noch jede Menge andere Turing-komplette Systeme. Ich weisz aber keine mehr, bei denen das so dermaszen unerwartet ist, wie die vorgestellten Beispiele.
Leave a Reply