Zurück zur Startseite

Doom über DNS: Start ohne Dateien

Das Doom Over DNS-Projekt ermöglicht das Ausführen der Shareware-Version von Doom ausschließlich über öffentliche DNS-Abfragen zu Cloudflare-TXT-Einträgen. Die komprimierte WAD wird in Fragmente aufgeteilt, in den PowerShell-Speicher geladen, ohne auf die Festplatte zu schreiben. Unterstützt Fortsetzen und Skalierung auf bezahlte Zonen.

Doom über DNS-Abfragen ohne Festplatte spielen
Advertisement 728x90

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.

Google AdInline article slot
# 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 -Resume prü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.

Google AdInline article slot

| Zonentyp | Fragmente | Reicht für Doom |

|-----------|-----------|-----------------|

| Free | 185 | Nein (7+ Zonen nötig) |

Google AdInline article slot

| 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-DNSName fü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

Advertisement 728x90

Weiterlesen