Files
undercooked/.agents/user_stories/US-06_coop_shared_kitchen.md
T
ducoterra f84c6ebaef Scaffold project and author 14-phase roadmap
Browser co-op kitchen game: FastAPI + native WebSockets, server-authoritative
20 Hz simulation, in-memory anonymous lobbies, data-driven YAML levels, Canvas 2D
vanilla ES-module client with locally authored SVG art and no external CDNs.

.agents/PLAN.md records the LOCKED decisions; .agents/user_stories/ holds the 12
flow contracts; .agents/phases/todo/ breaks them into 14 sequential, test-gated
phases (71 task files), each leaving the app launchable and the suite green.

LLM-Generated: true
2026-10-05 17:05:56 -04:00

1.6 KiB
Raw Blame History

US-06 — Cook cooperatively with 2–4 players

As a member of a group, I want to see the other cooks move in real time and share one kitchen, so that we can divide tasks instead of racing for the same knife.

Acceptance criteria

  1. Every client sees every other cook at their server-authoritative position with smooth motion (interpolated), a name label, and a distinct color.
  2. Remote motion at 150 ms RTT looks continuous: no teleporting, ≤ 0.25 tile visible error while moving, and no rubber-banding of the local cook.
  3. The local cook responds to input before the server confirms it (prediction) and is corrected gently (≤ 150 ms ease) when the server disagrees.
  4. Players physically block each other with a soft push (no standing on tiles already occupied). Carrying players is out of scope; passing an item hand-to-hand happens by both cooks using the same counter/prep tile.
  5. A contested pickup/station gives exactly one winner; the loser sees denied and can immediately target the next-best option.
  6. Occupancy: a station being actively worked shows who is working it; a second player cannot start a parallel job on it.
  7. All clients converge on the same score and the same result screen within 1 s of the round end.
  8. 4 players in one room keeps the mean server tick ≤ 2 ms.

E2E suite

tests/e2e/test_us06_coop_shared_kitchen.py — two contexts cooperatively serve one order and both observe the same score/result; contested-pickup arbitration test; 4-connection integration test server-side.

Phases

06_realtime_websocket_protocol, 08_client_prediction_and_touch, 09_co_op_two_player_e2e