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
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user