{"id":13699,"date":"2024-03-11T13:37:49","date_gmt":"2024-03-11T11:37:49","guid":{"rendered":"http:\/\/www.soeren-in-norwegen.net\/blog\/?p=13699"},"modified":"2024-02-05T17:06:50","modified_gmt":"2024-02-05T15:06:50","slug":"can-it-run-doom-doom","status":"publish","type":"post","link":"http:\/\/www.soeren-in-norwegen.net\/blog\/2024\/03\/can-it-run-doom-doom\/","title":{"rendered":"Can it run Doom? \u2026 Doom"},"content":{"rendered":"<p>Wenn ich sage, dass Doom Turing-komplett ist, dann meine ich damit (oder vielmehr der Autor <a href=\"https:\/\/calabi-yau.space\/blog\/doom.html\" target=\"_blank\" rel=\"noopener\">von dem ich <del>das geklaut habe<\/del> mich habe inspirieren lassen<\/a>) dass man ein Doom-Level derart bauen kann, dass alles was passiert das gleiche Resultat zur Folge hat, wie <a href=\"https:\/\/de.wikipedia.org\/wiki\/Logikgatter#Typen_von_Logikgattern_und_Symbolik\" target=\"_blank\" rel=\"noopener\">logische Bauelemente<\/a>.<\/p>\n<p>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\u00f8nnen die nur in einem Tunnel geradeaus laufen.<br \/>\nIn einem Doom-Level kann man unsichtbare Linien installieren, die beim Uebertreten ein Ereigniss irgendwo anders ausl\u00f8sen. 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\u00f8ffnet wird. Das waere dann ein OR-Gatter. Bei einem AND-Gatter muessen zwei Tueren ge\u00f8ffnet werden und bei einem NOT-Gatter muss eine Tuer geschlossen werden.<br \/>\nDieses dritte Monster laeuft los (in die Richtung des Spielers) und ueberschreitet eine weitere Linie und diese l\u00f8st dann das je nach Logikgatter richtige Resultat aus (in der Implementierung wird eine Saeule hoch oder runter gefahren).<\/p>\n<p>Der Autor hat <a href=\"https:\/\/www.youtube.com\/watch?v=qB9R3L5FZ3Q\" target=\"_blank\" rel=\"noopener\">ein Video<\/a> eines <a href=\"https:\/\/en.wikipedia.org\/wiki\/Adder_(electronics)#Half_adder\" target=\"_blank\" rel=\"noopener\">Halbaddierers<\/a> als Machbarkeitsnachweis erstellt. \u2026 Geil wa!<br \/>\nWie bei allen Beispielen hat die konkrete Implementierung Nachteile. Der gr\u00f8szte liegt darin, dass aufgrund der Limitierungen von Doom an sich, allerh\u00f8chstens ca. 65-tausend von diesen Logikgattern in Doom selber implementiert werden k\u00f8nnten \u2026 was aber wohl ausreichend waere fuer eine (SEHR) kleine CPU.<\/p>\n<p>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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts\/13699"}],"collection":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/comments?post=13699"}],"version-history":[{"count":4,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts\/13699\/revisions"}],"predecessor-version":[{"id":13703,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/posts\/13699\/revisions\/13703"}],"wp:attachment":[{"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/media?parent=13699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/categories?post=13699"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.soeren-in-norwegen.net\/blog\/wp-json\/wp\/v2\/tags?post=13699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}