HeadlinesBriefing favicon HeadlinesBriefing.com

Run Doom in Your Terminal with Just curl and bash

Hacker News •
×

GitHub repo *xsawyerx/curl-doom* turns a classic 1993 shooter into a terminal‑only game. By streaming DOOM frames as ANSI half‑blocks over HTTP, the project lets anyone run the game with just `curl` and `bash`. No extra binaries or graphics stack are required, making it a lean, reproducible demo of networked gaming in modern development environments.

Installation is lightweight: a Node.js 18+ server compiles the headless Doom binary once, then exposes REST endpoints. Clients POST keystrokes while the server streams back ANSI frames at 15 fps by default. Users can tweak resolution and frame rate via query parameters, giving them control over performance versus visual fidelity for both developers and hobbyists.

Under the hood, each session launches a single Doom process, piping its framebuffer through a custom renderer that downsamples to terminal cells using the ▀ glyph. The server maintains a virtual clock, releasing each key 150 ms later to smooth movement. Idle sessions terminate after 60 seconds, keeping resource usage predictable in server‑side gaming demos.

While the project showcases a nostalgic title, its real value lies in illustrating how low‑level rendering can be abstracted over HTTP for remote play. Developers can adapt the framework to other console emulators or text‑based UIs, proving that even classic games fit into modern, minimal‑dependency pipelines without sacrificing gameplay experience.