**「DOOM Over DNS」**  
(ドゥーム・オーバーDNS)

2026/03/24 0:17

**「DOOM Over DNS」** (ドゥーム・オーバーDNS)

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

(すべての重要ポイントを統合し、根拠のない推測を除外した文書)

このプロジェクトは、Cloudflare にホストされた DNS TXT レコードだけで、完全な shareware DOOM ゲームを実行する方法を示しています。PowerShell 7 スクリプトを使用して、9 MB の WAD ファイルと .NET エンジンを直接メモリにロードします—ディスクへの書き込みは発生しません。

主な詳細点:

  • WAD 全体は約1,964 個の TXT レコードに分割されます。各レコードは公開 DNS クエリで取得されます。
  • .NET エンジン DLL も DNS からストリームで読み込み、Native AOT ビルドをフレームワーク依存型の .NET 8 アセンブリに変換する managed‑doom フォークを使用します。これにより、WAD のストリームベースロードと Win32 P/Invoke によるウィンドウ操作(GLFW なし、音声は NullSound/NullMusic スタブ)が可能です。
  • インストールには PowerShell 7 が必要です (
    winget install Microsoft.PowerShell
    )。メインスクリプトは
    Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'
    です。
  • 新しいビルドを公開する手順:
    • エンジンを次でビルドします
      dotnet publish ManagedDoom/ManagedDoom.csproj -c Release -f net8.0 -o publish-out
      
    • Cloudflare の認証情報を
      Set-CFCredential -ApiToken …
      で設定します(トークンは「Edit zone DNS」権限が必要)。
    • Publish-DoomOverDNS.ps1
      を次の引数で実行します:
      -PublishDir
      ,
      -WadPath 'DOOM1.WAD'
      ,
      -Zones @('example.com')
      。オプションとしてプレフィックス(
      -WadPrefix
      ,
      -LibsPrefix
      )や DNS サーバー上書き(
      -DnsServer
      )を指定できます。
  • Cloudflare の無料ゾーンは最大 185 個の TXT チャンクしか保持できませんが、Pro/Business/Enterprise ゾーンでは 3,400 個まで可能です。WAD 単体で約1,199 個のチャンクが必要なため、Free‑tier ユーザーは
    -Zones
    に複数ドメインを指定する必要があります。
  • アップロードは再開に対応しています:スクリプトはハッシュを検証し、
    -Resume
    フラグで最後の正常チャンクから継続できます。
  • Start-DoomOverDNS.ps1
    のパラメータ:
    -PrimaryZone
    ,
    -DnsServer
    ,
    -WadName
    (デフォルト
    'doom1'
    )、
    -DoomArgs
    ,
    -WadPrefix
    ,
    -LibsPrefix

主要コンポーネントは、managed‑doom, Silk.NET, TrippyGL, id Software のオリジナル DOOM1.WAD、および Cloudflare DNS API です。このプロジェクトは、Cloudflare のグローバル DNS ネットワークとエッジキャッシュを活用し、ゲームデータを世界中に分散させるメモリのみでディスク不要な実行モデルを示しています。

本文

DNS‑Over‑DOOM – クラシックゲームを完全に DNS TXT レコードで実行


何それ?

DNS の TXT レコードは任意のテキストを格納できます。
Cloudflare は世界中で無料で配信し、エッジでキャッシュするので、ゾーンを問い合わせると即座にデータが返ります。
RFC 1035 が示す通り DNS はファイル保存システムとして設計されていませんが、1,964 個ほどの TXT レコードに分割した DOOM の共有版ゲーム全体を PowerShell と公開 DNS クエリだけで再生できます。

WAD ファイルはディスクに触れず、.NET のゲームエンジン DLL はメモリへ直接ロードされます。


すぐに始める

1️⃣ PowerShell 7 をインストール(まだの場合)

winget install Microsoft.PowerShell

2️⃣ DOOM をプレイ

.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'

残りは

Resolve-DNSName
で自動取得されます。


自分のゲームをアップロードする

1️⃣ ゲームエンジンをビルド

cd managed-doom
dotnet publish ManagedDoom/ManagedDoom.csproj `
    -c Release `
    -f net8.0 `
    -o publish-out

2️⃣ Cloudflare の認証情報を読み込む

Import-Module .\TXTRecords\TXTRecords.psm1
Set-CFCredential -ApiToken (Read-Host 'API Token' -AsSecureString)

3️⃣ DNS にアップロード

.\Publish-DoomOverDNS.ps1 `
    -PublishDir 'managed-doom\publish-out' `
    -WadPath    'DOOM1.WAD' `
    -Zones      @('example.com')

スクリプトパラメータ

Start‑DoomOverDNS.ps1

パラメータデフォルト説明
-PrimaryZone (必須)ストライプメタレコードが存在する DNS ゾーン
-DnsServerシステムデフォルト指定解決器 IP(例:
1.1.1.1
-WadName
doom1
WAD タイプ:
doom1
doom
doom2
plutonia
tnt
-DoomArgsエンジンに渡す引数(例:
'-warp 1 3 -skill 5'
-WadPrefix
doom-wad
WAD ストライプ用 DNS プレフィックス
-LibsPrefix
doom-libs
DLL バンドルストライプ用 DNS プレフィックス

レコードがローカル解決器にまだ反映されていない場合は

-DnsServer '1.1.1.1'
を指定してください。

Publish-DoomOverDNS.ps1

パラメータデフォルト説明
-PublishDir (必須)dotnet publish 出力ディレクトリへのパス
-WadPath (必須)WAD ファイルへのパス
-Zones (必須)Cloudflare DNS ゾーン名の順序付き配列
-WadPrefix
doom-wad
WAD ストライプ用 DNS プレフィックス
-LibsPrefix
doom-libs
DLL バンドルストライプ用 DNS プレフィックス
-Force
$false
上書き時に確認プロンプトをスキップ

アップロードには Edit zone DNS 権限付きの Cloudflare API トークンが必要です。

Set-CFCredential
で読み込んでください。


高度なトピック

複数ゾーンストリーピング

Free tier のゾーンは 185 個のデータチャンクを保持できます。 Pro/Business/Enterprise は 3,400 個です。
WAD 単体が約 1,199 チャンク必要なので、Free tier ユーザーは複数ドメイン(例:

-Zones @('a.com', 'b.com')
)を提供しなければなりません。モジュールはチャンクを自動で分散します。Pro ゾーン単体でも十分です。

中断されたアップロードの再開

アップロードが中断された場合、

Publish-TXTStripe
-Resume
をサポートします。ハッシュを検証し、最後に正常だったチャンクを見つけて続行します。


managed‑doom パッチ

上流

managed-doom
は Native AOT を使用しているため
Assembly.Load()
で読み込めません。
このフォークはフレームワーク依存の .NET 8 アセンブリに変換し、以下を提供します:

  • ストリームベースの WAD ロード
  • Win32 P/Invoke を使ったウィンドウ管理(GLFW なし)
  • 組み込み NullSound/NullMusic スタブ(音声なし)

コンポーネント

  • managed-doom – .NET ゲームエンジン
  • Silk.NET – 低レベルグラフィックス・入力抽象化
  • TrippyGL – managed‑doom が使用する OpenGL ラッパー
  • DOOM1.WAD – 元の共有版データ(id Software)
  • Cloudflare DNS API – TXT レコードアップロード用

同じ日のほかのニュース

一覧に戻る →

2026/03/27 5:53

**Deploytarot.com – デプロイメントのタロットカードリーディング** 「デプロイプロジェクトに対する洞察に満ちた指針を、個別化されたタロットカードリーディングで得ましょう。」

## 日本語訳: 記事では、ソフトウェアデリバリーを一連のタスク、リスク、およびステークホルダーの視点として可視化する比喩的な「カードデッキ」を紹介しています。各カードは、A/Bテスト、AI統合、DB移行、サーバーレス移行などの特定のタスクとアイコンおよび簡潔な説明をペアにします。リスクカードでは、「どの指標が重要かについてゼロコンセンサス」や「カードが見ている」という不確実性を列挙しています。役割カードは、CEO、CISO、CTO、清掃係、クライアント、コンサルタント、請負業者、DBA、データサイエンティスト、デザイナー、DevOpsエンジニア、エンジニアリングマネージャー、人事、インターン、ジュニア開発者、オフショア開発者、プロダクトマネージャー、プロジェクトマネージャー、QAエンジニア、受付係、営業、スクラムマスター、セキュリティエンジニア、シニアデベロッパー、SRE、ステークホルダー、テックリード、VP of Engineering など多岐にわたるステークホルダーの各役割がデプロイメント決定をどのように見ているかを示す一文の逸話を提供します。 物語は「アーケナはあなたのスプリント速度を気にしない」と強調し、代わりに「時折その終点で崖がある」という潜在的な落とし穴をハイライトすることに焦点を当てています。 デッキは各引きごとに新たにシャッフルされますが、「戻ってくると覚えている」と説明され、過去の洞察を保持する動的システムであることを示唆しています。 速度よりもリスク認識を前面に押し出すことで、このモデルは多様な役割間で明確なコミュニケーションと整合性を維持し、よりレジリエントなデリバリープロセスを育むことを奨励します。

2026/03/26 0:46

**2025年に多くの制御室がシー・フロムグリーン(海泡色)を採用した理由は?** | 要因 | なぜ重要だったか | |------|-----------------| | **エルゴノミクス研究** | その年に公開された調査では、海泡色が目の疲労を軽減し、長時間の監視作業中に集中力を向上させることが示されました。 | | **省エネルギー動向** | この色は白や黄よりも自然光を反射しやすく、24時間稼働する環境で人工照明の必要性を低減します。 | | **ブランドアイデンティティ** | いくつかのテック大手が「グリーンファースト」サステナビリティイニシアチブを開始し、その理念に合わせて制御室も再設計されました。 | | **心理的影響** | 緑は落ち着きとバランスに結びついており、オペレーターが重要なシステムを管理する際には不可欠な特性です。 | | **規制ガイドライン** | 新たな安全基準では、状態インジケータの可視性を高めるカラースキームが推奨されており、海泡色は赤警報と衝突せずにその要件を満たしました。 | まとめると、エルゴノミクス科学、省エネルギー政策、企業ブランディング、心理研究、そして更新された規制の融合が、2025年の制御室にとって実用的でストレスの少ない選択肢として海泡色を押し上げました。

## Japanese Translation: 記事は、核施設や工業サイトでよく見られる特徴的な海藻緑色を第二次世界大戦時のファーバー・ビレン(Faber Birren)の産業用カラー安全コードに遡ります。2017年夏、著者はオークリッジのX‑10グラファイト炉(「ファットマン」研究のためにロスアラモスへ輸送されたプルトニウムを生成した24フィート四方のブロック)を訪れ、壁と制御パネルでビレンが推奨するライト/ミディアムグリーンが一貫して使用されていることに注目しました。ビレン(1919–1996)は1944年に国立安全協議会によって承認されたカラーコードを開発し、1948年までに世界中で採用されました。このコードは次のような色から構成されています: - **Fire Red** – 火災防止、緊急停止、可燃液 - **Solar Yellow** – 注意、物理的危険 - **Alert Orange** – 危険機械部品 - **Safety Green** – 救急装置、出口、洗眼ステーション - **Caution Blue** – 非安全通知または故障表示 - **Light Green** – 視覚疲労を軽減する壁色 同じスキームがハンフォードのB‑レイザー制御室にも見られます:下部壁にミディアムグリーン、機械にはミディアムグレー、火災防止にファイヤーレッド、低照度エリアにベージュ、床はライトです。ビレンは、このような機能的カラー使用が明るさを制御し、事故を減らし、メンテナンス基準を向上させ、労働士気を高めると主張しました。 ドイツの「ケルン橋緑(Cologne Bridge Green)」は、橋という工業用途で開発された海藻緑色の別例です。著者はまた、古い自動車部品リストに触発されて「Parts List」というフォントをデザインし、オイル交換待合室の雰囲気を呼び起こすことを目的としています。このフォントは彼女のウェブサイトで入手可能です。彼女はこれら歴史的安全色が今日どのように適用できるかを引き続き探求し、海藻緑の使用を現代施設に拡大する可能性や、「Parts List」フォントを産業美学を捉えるデザインツールとして推進する計画です。

2026/03/24 7:06

**クラウドフレアのGen 13サーバー:** コア数とキャッシュ容量を入れ替えて、パフォーマンスを2倍にしています。

## Japanese Translation: Cloudflare は、AMD EPYC 5th‑Gen「Turin」CPU と Rust ベースのリクエストハンドラ FL2 を搭載した新しい Gen 13 エッジサーバーをデプロイ完了しました。Turin はコア数が倍増(最大 192 コア、Gen 12 の 96 コアに対して)し、Zen 5 により IPC が向上、1 コアあたりの電力消費が約32%削減され、DDR5‑6400 メモリバンド幅をサポートします。チップは全コアで 384 MB の L3 キャッシュしか共有せず、1 コアあたり約 2 MB(Gen 12 の 3D V‑Cache を搭載した場合は 12 MB/コア)です。 元の FL1 ハンドラ(NGINX/LuaJIT)は Turin 上で L3 ミス率が高く、ミスサイクルが約350回に対しヒットは約50回と遅延が増大し、スループット向上にもかかわらずレイテンシが悪化しました。プリフェッチャーの調整、ワーカースケーリング、および NUMA コアアフィニティの最適化を行っても、スループットはわずか 5 % 未満にしか改善されませんでした。FL2 の軽量メモリアクセスパターンはこのボトルネックを解消し、Turin 上で Gen 12 に比べ約 50 % 低いレイテンシ、62 % 高いスループット、および FL1 より CPU あたり 2 倍のリクエスト数を実現します。 Gen 13 が Cloudflare のグローバルエッジネットワーク全体に完全展開されたことで、同社はサーバー数を減らしつつより多くのトラフィックを処理できるようになり、SLA に縛られたレイテンシを維持したままで最大 2 倍のスループットを達成します。これにより、パフォーマンス・ペー・ワットが約 50 % 改善され、ラック単位でのスループットは約 60 % 向上します。結果として CDN とクラウド顧客双方の運用コスト削減とカーボンインパクト低減に寄与します。

**「DOOM Over DNS」** (ドゥーム・オーバーDNS) | そっか~ニュース