cloudflare/doom — explained in plain English
Analysis updated 2026-07-25 · repo last pushed 2026-05-27
Play multiplayer Doom in a browser with friends over the internet.
Learn how to build real-time multiplayer games using serverless edge computing.
Experiment with WebSockets and Durable Objects for low-latency state synchronization.
Run a local development version of the multiplayer router using NodeJS.
| cloudflare/doom | vercel/git-hooks | leonxlnx/lumenshaders | |
|---|---|---|---|
| Stars | 202 | 202 | 203 |
| Language | JavaScript | JavaScript | JavaScript |
| Last pushed | 2026-05-27 | 2021-04-10 | — |
| Maintenance | Maintained | Dormant | — |
| Setup difficulty | moderate | easy | easy |
| Complexity | 3/5 | 2/5 | 1/5 |
| Audience | developer | developer | designer |
Figures from each repo's GitHub metadata at analysis time.
Requires a Cloudflare account with Durable Objects enabled, though a NodeJS-based local router is available for development without Cloudflare.
This repo powers a multiplayer version of the classic game Doom that runs entirely on Cloudflare's edge network. The public showcase lives at silentspacemarine.com, where players can join Doom game sessions in their browser and play together over the internet without any dedicated game server in the traditional sense. The project has two main pieces. The first is a website that serves the game itself, the Doom game files, the web-based player interface, and everything a visitor needs to load and play in their browser. The second piece is a "message router" that handles the real-time networking between players. When a player moves or shoots, that action gets sent to the router, which then broadcasts it to everyone else in the same game room so their screens stay in sync. The router also manages creating and validating game sessions, so players can join specific rooms. The technical approach is interesting because it runs Doom, a game from 1993, as a WebAssembly application in the browser, and uses Cloudflare's serverless infrastructure for the multiplayer networking instead of a conventional game server. The router uses WebSockets for real-time communication and Cloudflare's Durable Objects to maintain shared state across connections. This means the multiplayer experience is hosted on Cloudflare's global edge network, putting the game logic geographically close to players rather than routing everything through a single central server. Someone interested in browser-based gaming, edge computing demos, or retrofitting classic games for modern web multiplayer would find this useful. It's a tech demo rather than a production game platform, but it's a concrete example of how low-latency multiplayer can work without traditional server infrastructure. The project also includes a way to run everything locally for development using a NodeJS-based router instead of Cloudflare's services.
A multiplayer version of the classic game Doom that runs in the browser using WebAssembly and Cloudflare's edge network for real-time networking, no traditional game server required.
Mainly JavaScript. The stack also includes JavaScript, WebAssembly, WebSockets.
Maintained — commit in last 6 months (last push 2026-05-27).
No license information is provided in the repository, so usage rights are unspecified and default restrictions may apply.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.