greglab
GamesLive

Deadlight

Cooperative first-person operations for one to eight players.

Deadlight is the production rebuild of Shooting Range: an authoritative cooperative browser FPS for one to eight players, four operations, four weapons, and three difficulties.

Squad size
1–8 players
Operations
4
Weapons
4
First commit
2026-08-15

What it is

Hub visitors still see the Shooting Range card and URL, but the original range was rebuilt in production as Deadlight on September 5, 2026. It now sends squads of one to eight players through four cooperative first-person operations.

The Kiln and Salt Flats are timed target missions, The Breach is a defensive hold against approaching creatures, and Ashfall is a town crossing where every connected squad member must reach extraction.

The squad leader chooses a shared Raven MK18 rifle, Vesper .45 pistol, Longwatch M7 rifle, or Breach-8 shotgun and sets Recruit, Standard, or Nightmare difficulty. The Node and ws server owns positions, health, ammunition, hits, enemies, and mission results.

Three.js builds each environment and weapon procedurally, while Web Audio synthesizes positional gunfire, impacts, creatures, footsteps, and music. Games Hub callsigns and results are resolved server-side, with guest play preserved when the hub is unavailable.

Highlights

  • ●Four distinct cooperative operations
  • ●Authoritative combat and squad state
  • ●Games Hub callsigns with guest play

Captured features

Inside the project

Four cooperative operationsThe rebuilt Shooting Range opens as Deadlight, with squad entry and the Ashfall operation in view.

Capabilities

Key features

Four cooperative operations

The Kiln, Salt Flats, The Breach, and Ashfall pair distinct movement rules with target, defense, and extraction objectives.

Shared squad loadout

The leader selects one of four weapons and one of three difficulty levels for every connected player.

Authoritative firefights

The server resolves health, ammunition, hit geometry, enemy attacks, respawns, and mission outcomes.

Readable incoming attacks

Enemy windups, traveling tracers, directional audio, and bearing markers make threats visible before and after impact.

Asset-free presentation

Procedural Three.js scenes and synthesized positional audio create the complete presentation without external art or sound assets.

Under the hood

How it works

  1. 1A Vite and TypeScript client renders procedural environments, first-person weapons, squad members, enemies, effects, and positional audio.
  2. 2The client sends movement input and shot rays over ws to a fixed-step Node server that owns the mission state.
  3. 3Shared configuration defines operations, weapons, deterministic encounters, geometry, scoring, and collision rules.
  4. 4The server optionally resolves Games Hub identity and reports authoritative results, while failures fall back to guest sessions.

Recent changes

Full changelog →
  1. Made incoming attacks visible and directional

    Added readable enemy windups, traveling fire, directional sound, and attacker bearing feedback.

  2. Rebuilt Shooting Range as Deadlight

    Replaced the original range with a cooperative first-person shooter built around four operations.

  3. Added the attack-town map

    Introduced the town-crossing operation that later became Ashfall.