# Four-player co-op / Rook production — 2026-10-25

User approved the concrete lobby in mockups/coop-lobby.html and requested implementation, then approved up to 115 additional Tripo Studio credits for one Rook generation/optimization/rig. No paid retries. Existing 460 zombie credits are separate.

Retain Three.js, connected DG's map, four zombie models, hit layers/ragdolls and Rook portrait. New lobby matches the approved split composition. Private code rooms hold 1–4 survivors. Server owns waves, enemy positions, accepted movement, shotgun hits/ammo, damage, downed state, three-second nearby revives and restart. Shared endless survival replaces the finite solo mission only in co-op; solo remains playable. Rook is the selected survivor appearance; slot colors/nameplates distinguish teammates, not four invented identities.

Architecture: Sites Cloudflare Worker with D1 revision-checked room JSON, bounded HTTP input/snapshot sync. No external subscription or peer-host authority; close/disconnect does not destroy the shared room immediately. Simulation advances on active client requests. This is a first co-op implementation, not claimed COD networking or copied code/assets. Internet latency and polling cadence must be reported honestly; no competitive shooter netcode claim.

Affected coverage: platform/engine retained; online research and server tests in MultiplayerServerResearch.md; art/character identity approved portrait expanded to full body, Tripo H3.1 same as zombies, 10k quad target, Mixamo rig; generated full-body image provenance and final task IDs recorded on delivery. Audio retains existing synthesized sounds, no new paid audio. UI is approved lobby plus necessary connection/down/revive states. Security: per-player opaque token, server input validation, bounded packet size, room capacity and expiration, compare-and-swap writes; site's existing visitor policy preserved. Browser device local position remains prediction only. No player chat or voice collected.

Acceptance: four separate sessions join one room, fifth refused; shared wave and damage/ammo ownership; reload/cadence validation; revive near/hold/cancel; late join/disconnect/host migration; restart isolation; actual in-browser two-view visible teammate and shared state, four-client protocol integration, production deploy. Rook actual GLB skeleton/geometry/material intake and in-game screenshot. Separate what was automated from human remote playtest.

Risks: room polling is less responsive than WebSocket dedicated servers and depends on database latency; four real remote players must still playtest. Existing site is owner-private: friends need explicit access invitations before internet testing, no access change implied. Rook auto-generation is an interpretation of approved art, not a scan or proof of exact likeness. First-person arm fitting needs actual mesh inspection; full model alone does not prove a correct weapon grip.
