Trending: Silksong patch 4Search
iHeartGeek
iGaming

Doom is now running inside a DNS database

A wildly impractical experiment uses BIND, RFC 2136 and 6.4 million truth-table rows to make Doom advance through DNS lookups.

Official Steam artwork for DOOM + DOOM II showing the Doom Slayer fighting demons alongside DOOM and DOOM II artwork

Doom is now running inside a DNS database — although calling it playable would be a heroic stretch. The project turns the Domain Name System into a giant lookup table for game logic, using BIND and RFC 2136 updates rather than asking DNS to behave like a conventional processor.12

A database pretending to be a computer

The project’s creator, Quinn, compiled Doom for a 32-bit environment whose arithmetic and memory are stored in DNS. A small programme provides the wiring and clock; DNS supplies the answers. The approach works by chaining lookups, recording state and using conditional updates so each write only succeeds when the previous state is still what the system expects.23

The database contains 6.4 million rows of precomputed truth tables. DNS acts as a librarian, returning memorised answers for operations that have already been mapped out. The project’s author says the instruction decoding happens ahead of time, so BIND is not executing Doom instructions itself.12

It works, very slowly

The experiment is less a new way to play Doom than a demonstration of how far a database can be pushed. One update initially took 577 seconds; later optimisations reduced the figure to 54.4 seconds. A Doom frame needs roughly 6.6 million calculations, while the game expects a tick every 28.6 milliseconds at 35 ticks per second.2

The result is therefore technically real but nowhere near real-time play. The project checks rendered frames against an independent emulator, and its author has published the code on GitHub for others to inspect and reproduce.23

A very Doom-shaped experiment

The project is a neat reminder that Doom’s reputation for running everywhere is partly about ingenuity and partly about choosing a sufficiently broad definition of “running”. Here, the interesting achievement is not a usable port: it is showing that DNS UPDATE, conditional writes and a huge precomputed dataset can be assembled into something that follows game logic at all.

Our opinion

This is exactly the sort of gloriously impractical Doom experiment that earns its place in the wider gaming conversation. It does not make DNS a CPU, and it certainly does not replace a normal port, but the fact that the game can advance through a database-backed state machine is a far better technical joke than another novelty screen. The 54-second tick is the punchline; the engineering underneath it is the story.

The code is available for technically minded readers who want to examine the approach, but nobody should mistake the project for a practical way to play Doom.

Sources

PC Gamer reported the project and quoted its author’s explanation of the DNS lookup model.1 The Register’s technical account describes the BIND, RFC 2136 and performance details.2 The project source is available on GitHub.3 The official Steam page supplies the Doom artwork used for this article’s hero.4