It has become somewhat of a challenge to run DOOM on the most obnoxious piece of hardware imaginable. We have seen the first-person shooter run on an Elgato Stream Deck+ XL, a pair of earbuds, and scientists have even taught 200,000 human neurons to play it. At this point, the original DOOM has become the face of "can this thing do something it was never designed to do?"
And these remarkable feats continue. This time, by cramming the game's code inside DNS text records. Meet DOOM Over DNS, a recently released port of Doom by Adam Rice that encodes the entire shareware version into 1,964 DNS text records. It can be stored within a single Cloudflare zone and then reassembled by a PowerShell script that boots the game.
To understand what's actually happening here, let's start with the Domain Name System, DNS. It is one of the oldest protocols on the internet, and it's a system that translates domain names into IP addresses. You type Facebook.com, and DNS tells your browser where to go. Simple enough.

DNS also supports text records, originally intended for data like email authentication. Each record can store about 2,000 characters, and the contents aren't validated, so nobody checks what you put in them. You can see where this is going. A DNS zone can support thousands of records, is globally distributed, and is publicly queryable by anyone online. That's enough data to transmit files and run software with clever coding.
With all of that in mind, Rice started by storing an encoded movie collection within DNS text data, then pivoted to Base64-encoding a picture of a duck with metadata that would allow a reassembly script to piece it back together. The duck test worked. The next logical step was obvious. Make the DNS run DOOM.

The result was a port based on Nobuaki Tanak's C# version of Doom, Managed Doom, with Rice's Claude-assisted patches to run the game's code from a memory stream rather than from on-disk files. Rice cut the audio to keep the file size down and compressed Doom from 8.4MB to 1.9MB of chunks small enough to fit inside multiple text records, stored across a single Cloudflare Pro DNS zone.
The standalone PowerShell code resolves all DNS queries needed to fetch DOOM's data in 10 to 20 seconds. It reassembles everything in memory, loads the assemblies, and launches the game without writing anything to disk.
Rice described the project to his mother as "taking a phone book and playing a flip-book animation out of the phone numbers on every page." The full source is available on GitHub, along with Rice's blog, which dives deeper into the technical side of it all. It's definitely worth a read if you want to learn a thing or two about how the most boring protocol on the internet is also, quietly, one of the most abusable.




