A browser-based 3D first-person zombie survival shooter built entirely in vanilla JavaScript and Three.js. No installs, no engines, no bullshit — just open the HTML file and play.
Just open dead-zone.html in any modern browser. That's it.
Or if it's hosted on GitHub Pages:
https://kazim-45.github.io/dead-zone/dead-zone.html
Survive as long as possible. Zombies keep coming and keep getting faster. There's no end — only a high score.
Your best run is saved for the session, shown at the top of the screen.
| Key | Action |
|---|---|
W A S D |
Move |
Shift |
Sprint |
| Key | Action |
|---|---|
Arrow Keys |
Look around |
Hold Enter |
Auto-fire |
Insert |
Toggle scope (ADS) |
R |
Reload |
Scoped mode slows your look speed and tightens aim assist — use it for distance shots.
| Key | Action |
|---|---|
Hold G |
Aim grenade (shows arc) |
Release G |
Throw |
Grenades have a 15 second cooldown. The ring gauge at the bottom center fills up as it recharges.
- 40-round magazine with visible bullet pips
- Auto-fire by holding
Enter(~11 rounds per second) - 2.2 second reload with animated progress bar
- Muzzle flash, brass casing ejection, gun recoil and sway
Built-in soft aim assist that nudges your crosshair toward the nearest zombie. It's subtle — it won't carry you, but it smooths out the jank of arrow-key aiming.
- Wider assist cone when hipfiring, tighter when scoped
- Targets chest height
- Max range: 60 units
- Pull up the throw arc by holding
G, release to launch - Dashed yellow arc shows the trajectory, orange circle marks the blast zone
- Blast radius of 9 units — can wipe a whole cluster
- Big fireball explosion with debris, screen flash, and a burst of light on impact
Every 15 kills you go invincible for 20 seconds:
- Zombies can't hurt you
- Ammo auto-refills continuously
- Cyan screen flash on activation
- Pulsing ⚡ INVINCIBLE ⚡ banner with countdown bar
- Blue electric vignette around the screen edges
It resets and repeats — so 15, 30, 45, 60 kills, etc.
- Spawn continuously, 1 at a time early game, 2 at a time from wave 5 onward
- Get faster, tankier, and hit harder as difficulty climbs
- Each wave ramps up every 20 seconds
- Die with a ragdoll fall animation, despawn after 3 seconds
- Timer, kill count, and best time at the top
- Wave indicator top right
- Health bar bottom left — pulses red when low, red vignette when critical
- Ammo counter with bullet pip display bottom right
- Grenade cooldown ring bottom center
- Invincibility banner and countdown when active
- Kill feed messages top left (last 4 events, fade after 3s)
- Crosshair with hit marker flash
- Three.js r128 — 3D rendering
- Vanilla JS — no frameworks
- Single HTML file — everything in one place, no build step
- Runs entirely in the browser, no server needed
- Use scope for distant zombies, hipfire for close ones
- Save grenades for when you get surrounded
- Sprint (
Shift) to reposition — standing still gets you killed fast - Invincibility windows are the best time to push into large groups for easy kills
- The campfire in the middle of the map is your landmark — don't wander too far from it
Feel free to hit me up for some changes!