Resurgence
A browser multiplayer FPS in the style of Warzone's Resurgence mode — squads, respawns until the circle closes, 29 guns, and four movement styles. Three.js client, authoritative Node server.
A browser multiplayer FPS modelled on Call of Duty: Warzone’s Resurgence mode: a compact island, squads of four topped up with bots, and respawns while a squadmate is alive until the circle closes. No install — it runs in the browser on desktop, controller, or touch.
The match
Everyone boards one plane on a seeded flight line, jumps when they like, and parachutes in. From there it’s loot, armor plates, loadout drops, and a shrinking circle whose first centre is random per match. A fall that would kill you knocks you down instead, and a squadmate has 30 seconds to revive you.
- 29 guns in seven classes with real tradeoffs — fire mode, recoil, range falloff, aim time — plus four attachment slots and rarity tiers.
- Four movement styles: Slider, Wallrunner, Bhopper, and Bouncer, plus a beginner-friendly Standard. Specialist, which has all four, is earned in-match.
- Melee and a one-hit knife, tactical reloads, pings, spectating, and party share links.
How it’s built
TypeScript end to end. One deterministic simulation lives in shared/ and runs on
both sides: the Node server is authoritative at 60 Hz with lag-compensated hitscan,
and the Vite + Three.js client uses the same code to predict. Tests cover the
simulation with Vitest, the client with Playwright, and a frame-time budget (p99 ≤
16.8 ms). Deploys are blue/green Docker behind a router that drains matches without
interrupting them.