'The most boring protocol on the internet is also, quietly, one of the most abusable': Doom has been broken down into 1,964 DNS text records and can be run via a PowerShell script

Shooting Lost Souls in Doom.
(Image credit: id Software)

Doom runs on just about everything. From 100 pounds of mouldy potatoes to a pregnancy test, creators have endeavoured to run everyone's favourite demon-blasting fest on all sorts of hardware—but cramming its code inside DNS text records is a new one on me.

That's what Doom Over DNS does, and it's a remarkable bit of lateral thinking from the mind of Adam Rice. Essentially, the entirety of shareware Doom has been split into 1,964 DNS text records that can be stored across a single Cloudflare zone, which in turn is reassembled by a PowerShell script making public DNS queries. Resulting in... well, Doom, as we've come to know and love it.

With an initial goal of storing an encoded movie collection within that text data (I wonder how many records that would take?) the project was pivoted to first Base64-encode a picture of a duck (why not), with a metadata record that would allow a reassembly script to piece it back together.

Duck test successful, the scope of the project was adjusted. Sure, a small .jpg of a duck is easy enough, but a 1 GB .mp4 file? That'd take roughly 670,000 text records. What's needed is something smaller, something easily compressed... something like Doom.

Screenshot from 1993 Doom showing enemies being shot in a room with skulls

(Image credit: id Software)

After using Claude to re-write some of the game code to run from a memory stream rather than on-disk system files (and cutting the audio to keep the file size down) Doom was then compressed into code chunks that would fit inside multiple text records, which were then contained within a single CloudFlare Pro DNS zone.

The script that runs Doom is a neat little 250 lines of standalone PowerShell code, which is capable of resolving all the DNS queries needed to grab Doom's data in 10-20 seconds. It then reassembles everything in memory, loads the assemblies, and launches the game with nothing written to disk.

Doom Enhanced (1993) screenshot - chaingun firing at two floating cacodemons

(Image credit: Id Software)

"DNS is almost 45 years old and it was designed to map hostnames to IP addresses. It is not a file storage system. It was not designed to be a file storage system", says Rice.

"Nobody at the IETF was thinking about it being used as a file storage system when they wrote RFC 1035. Yet here we are. The most boring protocol on the internet is also, quietly, one of the most abusable."

Well, congratulations. Doom has once again been forced to run on something it should not be run on, and we've all learned something about how the internet works. Or how Doom works. Whatever. It ain't half cool though, ey?

Secretlab Titan Evo gaming chair in Royal colouring, on a white background
Best PC gaming kit 2026

1. Best gaming chair: Secretlab Titan Evo

2. Best gaming desk: Secretlab Magnus Pro XL

3. Best gaming headset: Razer BlackShark V3

4. Best gaming keyboard: Asus ROG Strix Scope II 96 Wireless

5. Best gaming mouse: Razer DeathAdder V4 Pro

6. Best PC controller: GameSir G7 Pro

7. Best steering wheel: Logitech G Pro Racing Wheel

8. Best microphone: Shure MV6 USB Gaming Microphone

9. Best webcam: Elgato Facecam MK.2


👉Check out our list of guides👈

Andy Edser
Hardware Writer

Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his time travelling around the world attending hardware launches and trade shows, all the while writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.

You must confirm your public display name before commenting

Please logout and then login again, you will then be prompted to enter your display name.