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.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/6/7/0/9/3/4/Bildschirm_foto_2022-12-26_um_15-4a44a37748b7abcd.png)
Mit Monstern als Segment-Display: Zählmaschine in Doom
(Bild: Danny Spencer / YouTube)
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.
NAND-Gatter im Level-Editor
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.
(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.
(hze)