WTF

Entwickler baut Addiermaschine in Doom nach

Rechnen statt ballern: Ein Entwickler wollte wissen, ob man eigene Logikgatter in Doom nachbauen kann. Das Ergebnis erinnert an Minecraft-Basteleien.

In Pocket speichern vorlesen Druckansicht 47 Kommentare lesen

Mit Monstern als Segment-Display: Zählmaschine in Doom

(Bild: Danny Spencer / YouTube)

Lesezeit: 2 Min.

Der Ego-Shooter Doom führt seit Jahrzehnten ein eigenwilliges Doppelleben als Testsoftware: Hacker versuchen regelmäßig, den Klassiker auf verschiedenste Hardware zu portieren und tauschen ihre Erfolge unter der halbernst gemeinten Frage „Will it run DOOM?“ aus. Neben Kleinstrechnern wie dem Raspberry Pico gab es Berichte über Taschenrechner, Geldautomaten und Smartwatches, auf denen Portierungen des Shooters liefen.

Der Entwickler Danny Spencer hat die Frage umgedreht und fragte sich: Kann Doom es ausführen? Um zu zeigen, dass man in Doom prinzipiell beliebige begrenzte Berechnungen ausführen kann, hat er eine einfache, funktionierende Addiermaschine in dem Shooter nachgebaut. Die Ziffern gibt der Spieler per Schalter ein. Das "Display" seiner Zählmaschine besteht aus Blöcken, die je nach gewählter Ziffer mit Monstern bestückt werden. Das ganze erinnert an Programmierversuche im Spiel Minecraft, bei dem Nutzer Taschenrechner und funktionierende Computer mit Redstone-Schaltungen nachbauten.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Spencer schreibt auf seinem Blog, dass er zunächst ein NAND-Gatter mit Spielelementen nachbauen wollte. Hierzu nutzte er den Level-Editor Slade. Als Basis wählte er die MS-DOS-Version von Doom 2 (v.19). Der Entwickler baute NAND-Gatter als binäre Entscheidungsdiagramme nach und übertrug diese auf das Level-Design. So baute er für jeden Knoten (Node) einen kleinen Raum mit zwei Türen für die Werte 0 und 1. Die Türen werden vom Spieler über Schalter geöffnet. An den Kanten der Räume sitzen Teleporter, die in anderen Räumen führen. In jeden Raum, der einem Wurzelknoten entsprach, setzte er ein Monster.

Entscheidungsdiagramm als Doom-Level: Jeder Knoten entspricht einem Raum mit zwei Türen. Sobald der Spieler eine Tür per Schalter öffnet, bewegt sich das Monster auf einen Teleporter und springt zum nächsten Knoten.

(Bild: Danny Spencer / otterstack.com)

Spencer beschreibt im Blog weiter, wie er Zahlen von 0 bis 9 anstelle von Binärziffern darstellt und bestimmte Hürden der verwendeten Doom-Version umgeht. Den Code für den Level mit der Zählmaschine hat der Entwickler als Download auf Github bereitgestellt.

Die Frage, ob Doom Turing-vollständig oder turingmächtig sei, also beliebige Berechnungen ausführen kann, relativiert Spencer. Zumindest sein Ansatz sei kein Beweis, denn dazu müsste Doom etwa eine Art unbegrenzte Schleifenkonstrukte zulassen, die seiner Zählmaschine fehlen würden.

WTF

Das Internet ist voll von heißen IT-News und abgestandenem Pr0n. Dazwischen finden sich auch immer wieder Perlen, die zu schade sind für /dev/null.

(hze)