You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Eighth Games widget: the real Doom running in a sandboxed iframe via
the cloudflare/doom-wasm Chocolate Doom build (vendored with sha256
provenance, GPL-2 license included). The IWAD is never embedded into
the binary: it is served from disk through the new read-only
/gamedata/ route (coordinator.http_server.gamedata_dir, empty =
disabled) and provisioned with scripts/fetch-doom-wad.sh. Widget
checks WAD availability with a ranged GET that validates IWAD/PWAD
magic and shows provisioning hints when missing.
|`gamedata_dir`| string | "" | On-disk directory served read-only at `/gamedata/` for large game assets (Doom widget IWAD). Empty disables the route. See `docs/VOIPGames.md`. |
Copy file name to clipboardExpand all lines: docs/VOIPGames.md
+59-2Lines changed: 59 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Games (Homer Next-Gen dashboard)
2
2
3
-
The dashboard includes seven mini-games under the **Games** category. Widgets are added from the dashboard palette (`registry.ts`: `packet_defender`, `sip_dialog_master`, `jitter_buffer_hero`, `sipetris`, `netris`, `chess`, `netchess`). Five are educational (SIP/RTP-themed) and two are general-purpose chess games. The chess pair shares one rules engine (`chess.js` on the UI, `notnil/chess` on the server) and one presentational board component (`ChessBoard.tsx`).
3
+
The dashboard includes eight mini-games under the **Games** category. Widgets are added from the dashboard palette (`registry.ts`: `packet_defender`, `sip_dialog_master`, `jitter_buffer_hero`, `sipetris`, `netris`, `chess`, `netchess`, `doom`). Five are educational (SIP/RTP-themed), two are general-purpose chess games, and one is the actual 1993 Doom compiled to WebAssembly. The chess pair shares one rules engine (`chess.js` on the UI, `notnil/chess` on the server) and one presentational board component (`ChessBoard.tsx`).
4
4
5
5
### Default dashboards
6
6
@@ -312,6 +312,62 @@ JSON envelope shared with the client; constants live in `src/coordinator/games/n
312
312
313
313
---
314
314
315
+
## 8. Doom (`doom`)
316
+
317
+
**Concept:** the real thing — Chocolate Doom compiled to WebAssembly (the
The single-player widgets (Packet Defender, SIP Dialog Master, Jitter Buffer Hero, SIPetris, Chess in bot mode) are **not** wired to live Homer capture; they are **local dashboard UI** only. **Netris** and **NetChess** talk to homer-core's coordinator over JWT-protected WebSockets (`/api/v4/games/netris`, `/api/v4/games/netchess`); the **Chess LLM mode** also relies on the coordinator (`/api/v4/games/chess/llm-{status,move}`). None of these endpoints consume captured traffic.
385
+
The single-player widgets (Packet Defender, SIP Dialog Master, Jitter Buffer Hero, SIPetris, Chess in bot mode, Doom) are **not** wired to live Homer capture; they are **local dashboard UI** only. **Netris** and **NetChess** talk to homer-core's coordinator over JWT-protected WebSockets (`/api/v4/games/netris`, `/api/v4/games/netchess`); the **Chess LLM mode** also relies on the coordinator (`/api/v4/games/chess/llm-{status,move}`); **Doom** only fetches its IWAD from the static `/gamedata/` route. None of these endpoints consume captured traffic.
0 commit comments