Doom Over DNS: Das klassische Shooter-Spiel über DNS-Einträge starten
Entwickler Adam Rice hat die Shareware-Version von Doom ausschließlich über DNS-TXT-Einträge in Cloudflare lauffähig gemacht. Das Spiel ist in 1964 Fragmente komprimiert, wird über öffentliche DNS-Abfragen geladen und läuft in PowerShell 7, ohne die WAD-Datei auf die Festplatte zu schreiben. Die .NET-Spielengine-DLLs werden direkt in den Speicher geladen. Das Projekt umgeht Dateispeicherbeschränkungen, indem DNS als Transport für Binärdaten dient.
Installation und Start
Um es zu starten, benötigen Sie PowerShell 7 und ein Cloudflare-API-Token mit Berechtigungen zum Bearbeiten von DNS-Zonen.
- Installieren Sie PowerShell 7:
winget install Microsoft.PowerShell - Richten Sie Cloudflare-Anmeldedaten ein: Verwenden Sie das TXTRecords-Modul und den Befehl
Set-CFCredential. - Starten Sie das Spiel:
\.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'
Das Skript lädt die Daten automatisch über Resolve-DNSName. Eine kostenlose Cloudflare-Zone fasst 185 Fragmente; Pro/Business/Enterprise bis zu 3400. Die WAD-Datei benötigt ~1199 Fragmente.
# Beispielstart mit mehreren Zonen für ein kostenloses Konto
.\Start-DoomOverDNS.ps1 -Zones @('zone1.com', 'zone2.com', 'zone3.com')
Speichern von Daten in DNS-Zonen
Das Projekt teilt die komprimierte WAD in TXT-Einträge auf. Für kostenlose Konten sind mehrere Domains nötig – das Modul verteilt die Fragmente automatisch. In einer Pro-Zone passt das gesamte Spiel.
Download fortsetzen:
- Der Befehl
Publish-TXTStripe -Resumeprüft Fragment-Hashes. - Setzt beim letzten gültigen Block fort und vermeidet erneute Übertragung.
TXT-Eintragslimits (RFC 1035) werden ignoriert: DNS dient als verteiltes Speichersystem mit globalem Caching auf Cloudflares Edge-Nodes.
| Zonentyp | Fragmente | Reicht für Doom |
|-----------|-----------|-----------------|
| Free | 185 | Nein (7+ Zonen nötig) |
| Pro | 3400 | Ja (vollständiges Spiel) |
Technische Details zur Komprimierung und Dekomprimierung
Die WAD-Datei ist komprimiert, um TXT-Eintragsgrößen zu minimieren. Das PowerShell-Skript dekomprimiert die Daten on-the-fly während der Ausführung. Kein lokaler Speicher – alle Operationen im Arbeitsspeicher.
Wichtige Komponenten des TXTRecords-Moduls:
Publish-TXTStripe: Veröffentlichen von Fragmenten mit Fortsetzungsunterstützung.Set-CFCredential: Einrichten des API-Tokens.- Integration mit
Resolve-DNSNamefür öffentliche Abfragen.
Das Projekt demonstriert DNS-Fähigkeiten zur Übertragung beliebiger Binärdaten und umgeht typische Protokollbeschränkungen.
Wichtige Punkte
- Doom läuft ohne Dateien auf der Festplatte: WAD und DLLs werden aus DNS-TXT in den Speicher geladen.
- Benötigt ~1199 Fragmente für WAD; kostenlose Cloudflare-Zonen – 185 Fragmente.
- Unterstützt Fortsetzen des Downloads über Fragment-Hashes.
- Nutzt PowerShell 7 und öffentliche DNS-Abfragen ohne eigenen Server.
- Skaliert auf Pro-Konten: Eine Zone für das vollständige Spiel.
— Editorial Team
Noch keine Kommentare.