Phase 2 Room Protocol (초안)
MVP에서는 사용하지 않는다. 타입은 shared/src/protocol/room.ts 에 정의.
RoomEvent
| type | 방향 | 설명 |
|---|---|---|
room.join |
C→S | 로비 입장 |
room.leave |
C→S | 퇴장 |
room.ready |
C→S | 준비 |
room.start |
S→C | 시드 배포, 게임 시작 |
room.action |
C→S | 플레이어 action 인덱스 |
room.sync |
S→C | 턴/타이머 동기화 |
room.end |
S→C | 승자 발표 |
동기화 모델
- 서버가
seed를 고정한다. - 각 플레이어는 동일
RunAction스키마로 상점·배치를 진행한다. - 턴 타이머 종료 시 서버가
replayActions로 상태를 확정한다. - PvP 오토배틀은
simulateBattle(playerA, playerB, seed)로 결정론 처리한다.
Durable Object
GameRoom 클래스 (server/src/durableObjects/GameRoom.ts) — 현재 stub.