Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Yes. Adam Rice’s Doom Over DNS project can start the shareware version of DOOM by downloading a managed .NET game engine and compressed WAD from DNS TXT records. A PowerShell script reconstructs the files in memory and launches the game locally; DNS is the delivery mechanism, not a remote game server. The practical setup is Windows 10 or 11, PowerShell 7, OpenGL, a .NET 8 build, and a DNS zone that can hold the required records.
It is a technically impressive proof of concept rather than a sensible replacement for a normal installation. Startup takes long enough to notice, the payload consumes thousands of TXT records, and the project removes audio, so expect a silent game.
As an Amazon Associate I earn from qualifying purchases.
What “Doom through DNS” actually means
DNS normally translates names such as example.com into addresses. TXT records are different: they return text associated with a name. Doom Over DNS uses that text field as a transport and storage layer. The publisher compresses the game data, Base64-encodes it, divides it into chunks, and writes those chunks into TXT records across one or more DNS zones.
When you start the client, PowerShell resolves the records, joins the chunks, decodes the data, loads the managed engine assemblies, and starts the game. The WAD is never written to disk. The engine and assets are supplied by DNS, but rendering and game logic still happen on your Windows computer.
#1 Best Overall
- PREMIUM EDITION CONTENT — Includes DOOM: The Dark Ages, the Revelations campaign DLC, Digital Artbook and Soundtrack, and the Divinity Skin Pack with matching skins for the DOOM Slayer, dragon, and Atlan.
- BECOME THE SLAYER — Step into the blood-stained boots of the DOOM Slayer in a cinematic prequel to DOOM (2016) and DOOM Eternal.
- STAND AND FIGHT — Take on demon hordes with the Super Shotgun, the versatile Shield Saw, and other devastating weapons in grounded combat.
- TOOLS OF WAR — Take flight atop a Mecha Dragon, climb into an Atlan mech, and use the enhanced glory kill system against demons.
- REIGN IN HELL — Witness the creation of a legend as the Slayer fights Hell’s forces and confronts their leader in a medieval war.
This distinction matters. You are not connecting to a DNS-hosted multiplayer server, streaming frames from a remote machine, or making a browser play Doom. You are using DNS as an unusually slow download channel for a local executable game.
Adam Rice describes the idea as deliberately outside DNS’s intended role: “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.” That mismatch explains both the novelty and the limitations.
What you need before starting
| Requirement | What it is used for | Important qualification |
|---|---|---|
| Windows 10 or Windows 11 | Runs the PowerShell launcher and the managed game | The repository’s documented path is Windows-focused. |
| OpenGL support | Provides the graphics context required by the engine | A working OpenGL driver is required; a machine that cannot create an OpenGL context will fail before the game appears. |
| PowerShell 7 | Runs the publishing and startup scripts | Install PowerShell 7 rather than assuming the older Windows PowerShell bundled with Windows is the tested environment. |
| .NET 8 SDK | Builds the managed-doom engine | The engine is published for .NET 8. |
| A DNS zone and API access | Stores the TXT chunks during publication | The publisher needs a Cloudflare API token with Edit zone DNS permission. |
| The project files | Provide Publish-DoomOverDNS.ps1, Start-DoomOverDNS.ps1, and the managed engine source |
Use the script and engine versions from the same project revision so their data format and parameters agree. |
The repository lists macOS as unsupported. A Linux or macOS machine may be able to query DNS in general, but that is not the supported Doom Over DNS setup described by the project.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
How the data path works
- Build:
dotnet publishproduces the managed engine and its dependent assemblies. - Package: The publisher takes the published files and a shareware Doom WAD, compresses the payload, encodes it as text, and divides it into DNS-sized chunks.
- Publish:
Publish-DoomOverDNS.ps1authenticates to the DNS provider and creates TXT records in the selected zones. - Resolve:
Start-DoomOverDNS.ps1calls PowerShell’sResolve-DNSNameto retrieve those records. - Reassemble: The launcher orders and combines the chunks, decodes them, and loads the engine assemblies from memory.
- Run: The local OpenGL window runs Doom in the usual way, except that the project’s build has no audio.
Because the files remain in memory, closing the process removes the reconstructed payload from the process’s address space. That does not make the technique invisible: DNS queries, resolver logs, API activity, and the local process can still be observed.
Publish Doom into DNS
Publication is the administrative half of the project. You do it once for a zone set, then use the startup script to retrieve the payload.
1. Install and check the Windows toolchain
Install PowerShell 7 and the .NET 8 SDK, then confirm that PowerShell 7 is the shell in which you will run the scripts. Verify that the computer’s graphics driver exposes OpenGL. If the machine is administered by someone else, make sure script execution and outbound DNS queries are permitted by local policy.
2. Build the managed engine
Open PowerShell 7 in the managed-doom engine directory and run:
Rank #2
- A Relentless Campaign: There is no taking cover or stopping to regenerate health as you beat back Hell's raging demon hordes
- Return of id Multiplayer: Dominate your opponents in DOOM's signature, fast-paced arena-style combat
- Near-Limitless Gameplay: DOOM SnapMap - A powerful, but easy-to-use game and level editor that allows for limitless gameplay experiences on every platform
dotnet publish
Use the resulting publish directory as the engine payload. Keep the directory intact; deleting a dependency DLL after publication can produce a successful DNS upload followed by a loader failure.
3. Prepare the WAD
Use the shareware Doom WAD expected by the project. The publisher accepts a path to that WAD and packages it with the published engine. The project intentionally targets shareware content; it is not a method for obtaining a commercial IWAD that you do not own.
4. Create the DNS credential
Create a Cloudflare API token restricted to Edit zone DNS for the zones you intend to use. Give the token only the permission required by the publishing script, and supply it through the authentication method documented by the project. Do not paste the token into a public script, commit it to a repository, or place it in a command history that other users can read.
5. Choose the zone layout
Decide whether one zone can hold the payload or whether you will distribute it across several zones. The project accepts one or more zones. A paid-capacity zone is simpler to manage; a free-capacity arrangement requires more domains and more opportunities for a typo or missing record.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →6. Run the publishing script
From the project directory, inspect the script’s parameters before running it:
Get-Help .Publish-DoomOverDNS.ps1 -Full
Run Publish-DoomOverDNS.ps1 with the publish directory from step 2, the WAD path from step 3, and the complete list of DNS zones selected in step 5. The exact parameter names are defined by the script version you downloaded, so use its built-in help rather than copying parameter names from an unrelated revision.
Wait for the provider to accept the record changes. A successful API response means the records were submitted; it does not guarantee that every recursive resolver can answer with them immediately.
Rank #3
- Doom The Classics Collection physical game for Nintendo Swith.
- This includes three classic DOOM games preserved on one cartridge - DOOM, DOOM II, and DOOM 3! No game downloads required.
- Includes a full-color manual and reversible cover art.
Start Doom from the DNS records
1. Launch the startup script
In PowerShell 7, run the startup script and identify the first zone in your publication set:
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →.[?25lStart-DoomOverDNS.ps1 -PrimaryZone 'example.com'[?25h
Replace example.com with the primary zone you actually published. The script uses Resolve-DNSName and then reconstructs the engine and WAD in memory.
2. Override the resolver when necessary
If your normal network resolver has not picked up the new TXT records, specify a resolver directly:
.[?25lStart-DoomOverDNS.ps1 -PrimaryZone 'example.com' -DnsServer '1.1.1.1'[?25h
The -DnsServer option changes where the script asks for the records; it does not publish anything and it does not bypass missing records at the authoritative DNS provider.
3. Wait for reconstruction
Allow the script to finish resolving and rebuilding the payload before assuming it has hung. The project’s author reports a typical resolve-and-reconstruct time of about 10–20 seconds in 2026, but resolver choice, network conditions, caching, and the number of zones can change the result.
4. Play locally
Once the assemblies load, the game opens as a local OpenGL application. DNS is no longer simulating the game. After startup, keyboard input, rendering, and game logic are handled by the local engine. There is no audio because the project removes it from the payload.
How large is the DNS payload?
Adam Rice reports approximately 1,964–1,966 TXT records for the complete package in 2026. The compressed WAD is about 1.7 MB and the DLL bundle about 1.2 MB. Those figures describe this project’s package, not a general capacity guarantee for DNS or for every future build.
Rank #4
- Developed by id Software, DOOM Eternal is the direct sequel to the award-winning and best-selling DOOM (2016).
- Hell’s armies have invaded Earth. Become the Slayer in an epic single-player campaign to conquer demons across dimensions and stop the final destruction of humanity.
- Experience the ultimate combination of speed and power in DOOM Eternal - the next leap in push-forward, first-person combat.
- Discover the Slayer’s origins and his enduring mission to Raze Hell
- No disk included; Redeem the game via code inside the box
The repository documents a capacity difference between zone types:
| Zone type | Data chunks supported by the project | Practical consequence |
|---|---|---|
| Free zone | 185 chunks | The WAD alone, at about 1,199 chunks, cannot fit in one free zone. |
| Pro, Business, or Enterprise zone | 3,400 chunks | A single zone can hold the reported full package. |
Using the documented limits as a simple planning calculation, the WAD alone needs at least seven free-capacity zones, and the complete package would need roughly eleven if every zone reached its stated limit. The actual allocation still depends on how the publisher distributes chunks and on the zone list you provide. A paid zone reduces administration; the project notes about $20 per month for a Cloudflare Pro domain in 2026, while prices for the other tiers are not stated here.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsLarge TXT payloads are also inefficient. DNS was designed for short configuration data, not megabytes of compressed binaries. Every chunk is metadata that must be stored, served, cached, and resolved, so the same bytes cost more operationally than a conventional download.
Troubleshooting by symptom
The script returns no TXT records
- Confirm that the primary zone is spelled exactly as published and that the API token was allowed to edit that zone.
- Check the authoritative provider’s DNS dashboard for the expected records rather than relying only on a local resolver.
- Retry with
-DnsServer '1.1.1.1'if the local resolver is stale. - If you recently changed nameservers, wait for delegation and resolver caches to converge before republishing.
Only part of the game reconstructs
- Make sure every zone used during publication is included in the startup configuration. Omitting one zone creates an incomplete chunk set.
- Compare the publication output with the expected record count. A truncated upload can leave DNS answering normally while the payload remains unusable.
- Republish after confirming that the publish directory contains all DLL dependencies produced by
dotnet publish.
The window never opens or OpenGL initialization fails
- Check that the Windows graphics driver exposes OpenGL and that the session is not a restricted remote desktop environment that cannot create the required context.
- Test the same machine with another OpenGL application. If that also fails, fix the driver or session before debugging DNS.
- Remember that successful DNS reconstruction does not prove that the graphics subsystem is ready.
The game starts but there is no sound
This is expected. The project removes audio to reduce the payload, so a silent game is not evidence of a failed download.
The process is slow on every launch
DNS retrieval is the design constraint, not a performance bug in your local disk. The launcher must issue many TXT lookups and rebuild megabytes of data before the engine can start. A normal installation avoids that transfer on subsequent launches.
Trying to run it on macOS
Stop at the platform requirement: the repository marks macOS unsupported. Do not assume that installing PowerShell or a compatible .NET runtime supplies the missing graphics and script support.
Doom Over DNS versus a normal Doom installation
| Comparison point | Doom Over DNS | Normal local installation |
|---|---|---|
| Startup | Must resolve, decode, and reassemble the payload on launch; the author reports about 10–20 seconds under typical conditions. | Loads files already present on local storage, so startup is normally much shorter after installation. |
| Where the files go | Engine and WAD are reconstructed in memory; the WAD is not written to disk. | Executable and asset files remain on local storage. |
| Platform support | Documented for Windows 10/11 with PowerShell 7 and OpenGL; macOS is listed as unsupported. | Depends on the particular port or launcher, but is generally broader than this proof of concept. |
| Audio and completeness | Audio is intentionally removed, so the game runs silently. | A conventional installation can include the features and data supplied by its chosen port and WAD. |
| Transport and storage | Uses thousands of TXT records and depends on DNS propagation and resolver behavior. | Uses a conventional installer, archive, or package manager. |
| Provider cost | Requires a DNS zone and API access; the author cites about $20 per month for a Cloudflare Pro domain in 2026, with other tier prices not stated. | Does not require DNS hosting merely to launch an already installed game. |
| Reproducibility | Requires matching project scripts, a .NET 8 publish, a correctly authorized zone set, and a working OpenGL environment. | Usually requires only the selected game files and a compatible local engine. |
The DNS version is therefore valuable as an experiment in abusing an ordinary protocol, not as a faster, richer, or cheaper general-purpose Doom distribution method.
Best Value
- STANDARD EDITION — Includes DOOM: The Dark Ages, a single-player dark fantasy and sci-fi shooter.
- BECOME THE SLAYER — Step into the blood-stained boots of the DOOM Slayer in a cinematic prequel to DOOM (2016) and DOOM Eternal.
- STAND AND FIGHT — Take on demon hordes with the Super Shotgun, the versatile Shield Saw, and other devastating weapons in grounded combat.
- TOOLS OF WAR — Take flight atop a Mecha Dragon, climb into an Atlan mech, and use the enhanced glory kill system against demons.
- REIGN IN HELL — Witness the creation of a legend as the Slayer fights Hell’s forces and confronts their leader in a medieval war.
Why this matters beyond the joke
DNS TXT records can carry arbitrary text, which makes them attractive for legitimate configuration and for less legitimate staging techniques. A program that retrieves Base64-looking chunks from many TXT names is using the same broad pattern as Doom Over DNS: a resolver becomes a transport channel for data that does not look like a conventional download.
That does not make this project malware. Its purpose is to launch a known game, and the project’s mechanics are public. The defensive lesson is that DNS traffic deserves content- and behavior-aware monitoring. Unusually large TXT responses, bursts of sequential lookups, high-entropy or Base64-like data, and repeated queries for many records under related names can justify investigation in an enterprise network.
Keep that observation at the conceptual level. Recreating a benign demonstration is different from using DNS to stage an unauthorized payload, bypass controls, or hide command-and-control traffic. If you are testing detections, use an isolated lab, obtain authorization, and log the resolver and endpoint activity.
Free tools Windows power users keep installed
One-click scans. No signup required.
Making a repeatable personal setup
For a reliable demonstration, keep the build and DNS configuration together:
- Record the project revision and the .NET SDK version used for
dotnet publish. - Keep the published engine directory unchanged between publication and launch.
- Record every zone in the publication set and identify which one is the primary zone.
- Store the API token outside source control and rotate it after an experiment if more people had access to the machine.
- Test resolution from the same network where you will demonstrate the launcher; recursive caching can make two networks behave differently.
- Keep a conventional local Doom installation available if the goal is to play rather than to demonstrate DNS transport.
A repeatable setup is especially useful because a DNS record set can appear healthy while a single missing chunk, stale resolver, or changed engine dependency prevents the in-memory loader from completing.
What the project proves—and what it does not
It proves that a text-oriented protocol can be repurposed as a distributed cache-like store for a compressed game payload. It also demonstrates that a modern managed engine can be loaded from memory after retrieval, without leaving the WAD on disk.
It does not turn DNS into a general file system, guarantee fast delivery, provide a remote rendering service, or offer a complete replacement for a normal Doom port. The record count, timing, capacities, and price are properties reported for this project and its 2026 environment, not promises made by DNS itself.
Recommended Free Tools
Bottom line
To play Doom through DNS, build the .NET 8 managed engine, publish the shareware WAD and DLL bundle with Publish-DoomOverDNS.ps1 into suitably sized DNS zones, then run Start-DoomOverDNS.ps1 on Windows with OpenGL and PowerShell 7. Expect a 10–20-second retrieval under typical conditions, thousands of TXT records, resolver-dependent startup, and no audio. It is an excellent demonstration of how flexible—and how unsuitable for file delivery—DNS can be.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

