A 4-player co-op, round-based zombie survival FPS that runs entirely in the browser. One map. Endless rounds. Voice chat. Buckets of blood.
Rated 18+ — extreme gore, dismemberment, and an announcer with a filthy mouth. There's an age gate on the door for a reason.
npm install
npm startOpen http://localhost:3030, confirm you're 18+, enter a name, hit
CREATE GAME, and send the 4-letter room code to up to three friends.
They hit JOIN with the code. Host starts the game. That's it.
Friends not on your LAN? Expose port 3030 with anything you like (
cloudflared tunnel,ngrok http 3030, a VPS, port forward…). Note: browsers require HTTPS for microphone access on non-localhost origins, so use a tunnel that gives youhttps://if you want voice chat.
You're locked in a derelict bunker. The dead come through the windows in waves that never stop getting bigger, faster, and angrier. Earn points for hits, kills, and repairs. Spend points on guns, doors, perks, and a gamble on the mystery box. When you're down, your squad has 45 seconds to drag you back up. When everyone's down, it's over.
| Key | Action |
|---|---|
| WASD / Shift | move / sprint |
| Mouse / Right-click | fire / aim down sights |
| R | reload |
| E | buy, repair barricades, revive (hold) |
| F or V | knife |
| G | frag grenade |
| 1 / 2 / wheel | swap weapons (2 max) |
| M | mute/unmute mic |
| Tab | scoreboard |
+-----------+-----------+-----------+
| GENERATOR | KILL | MED BAY |
| HALL | YARD | |
| MG-Hog | [mystery | Widowmaker|
| Adrenaline| box] | Iron Veins|
+----$1000--+-$1250-$1250-+--$1000---+
| ARMORY | SPAWN | LAB |
| Boomstick | GK-3 | Warhound |
| TriggerHap| Riot-9 | Greased L.|
+---$750----+ SecondWind+---$750----+
- Hit +10 · kill +60 · headshot kill +100 · knife kill +130
- Repairing a barricade plank +10
- Reviving a teammate +300
Wall-buys from chalk outlines (GK-3, Riot-9, Boomstick, Warhound, Widowmaker, MG-Hog), plus mystery-box exclusives ($950 a spin): the SF-10 Spitfire, the .50 Hand Cannon, the VX Vulcan minigun — and if the box loves you, the Disintegrator Mk-Ø.
| Perk | Cost | Effect |
|---|---|---|
| Iron Veins | 2500 | 250 HP |
| Greased Lightning | 3000 | 2× reload speed |
| Trigger Happy | 2000 | +50% damage, +15% fire rate |
| Second Wind | 1500 | 2× revive speed |
| Adrenaline Junkie | 2000 | +20% move speed |
MAX AMMO · INSTA-KILL · DOUBLE POINTS · NUKE
- Zero build step, zero asset files. Three.js renders procedurally generated geometry and canvas textures; every sound (guns, growls, stings, the perk jingle) is synthesized live with WebAudio; the announcer is the browser's own speech synthesis pitched down to gravel.
- Authoritative Node.js server (
server/) owns zombies, rounds, points, doors, and barricades over WebSockets at 20 Hz. Clients predict their own movement and interpolate everything else. - Voice chat is a WebRTC mesh between players, signaled through the same WebSocket, with a ready-handshake to dodge offer races and AnalyserNode-driven speaking indicators.
shared/holds the map and balance tables, imported by both sides.
npm start &
node test/smoke.js # headless protocol test: lobby → rounds → kills → economy
PLAYWRIGHT_BROWSERS_PATH=... node test/e2e.js # full two-browser playthroughThis is an original work: original map, original weapon/perk names, procedurally generated art and audio. It is inspired by the round-based zombie survival genre but contains no assets, names, or code from any commercial title.