- 달무티·보석 상인·벽 쌓기 길찾기·라스베가스·바퀴벌레 포커·구십구 브랜치 병합(등록 목록·E2E 계획 정리)
- 홈 '곧 나와요' 목록을 M8 게임으로 갱신
- 뱅 E2E: 손에 개틀링('다른 모두에게 뱅!')이 있으면 확인 버튼 찾기가 두 개에 걸리던 문제 → '님에게 뱅!'으로 좁힘
- 로드맵 M7 결과
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
85 lines
7.3 KiB
Markdown
85 lines
7.3 KiB
Markdown
# 12. 로드맵
|
||
|
||
각 마일스톤은 "완료 기준"을 모두 통과해야 끝난다. 마일스톤이 끝날 때마다 Gitea에 푸시하고, 큰 테스트(부하·장애 주입·E2E)는 푸시한 커밋에서 돌린다.
|
||
|
||
## M0. 계획서 (현재)
|
||
- `docs/` 전체 작성 → Gitea 푸시.
|
||
- 완료 기준: 모든 공통 문서 + 26개 게임 문서 존재, 사용자 확인 항목 정리.
|
||
|
||
## M1. 플랫폼 뼈대 + 오목
|
||
- 모노레포, 공용 타입/스키마, 엔진(RNG·러너·테스트 도구), SQLite·마이그레이션.
|
||
- 게스트 로그인, 세션, `/api/me`, 닉네임 변경. (디스코드 로그인은 코드까지 작성, 실제 연결은 앱 정보 받은 뒤)
|
||
- 방: 생성, 6자리 코드, 링크 입장, 자동 착석, 준비, 시작, 강퇴, 방장 이전, 관전, 채팅/반응, 한 판 더.
|
||
- WS: 재접속, seq, 중복 방지, 속도 제한, 하트비트, 서버 재시작 복구.
|
||
- 웹: 홈, 코드 입력, 대기실(코드/링크 복사, 공유, QR), 오목 화면, 결과, 계정, 글자 크기/다크 모드.
|
||
- 완료 기준: `10-testing.md` 3절 12개 시나리오 자동 테스트 통과, 오목 규칙 테스트 통과, E2E 1개 통과, 성능 예산 통과.
|
||
|
||
## M1.5 관리자 사이트
|
||
- 슈퍼어드민(디스코드 ID 고정)·어드민(디스코드 ID로 추가) 권한, 관리자 API, 관리자 화면(대시보드·게임·방·사이트·사용자·관리자·기록).
|
||
- 게임 옵션 스키마로 설정 화면 자동 생성, 옵션 잠금, 사이트 설정(공지·점검·금지어·제한값).
|
||
- 완료 기준: `14-admin.md` 9절 테스트 통과, 관리자 화면 E2E 통과.
|
||
|
||
## M2. 2인 전략 게임 + 안정성 검증
|
||
- 체스, 바둑, 장기, 오셀로. 개인 시계(초읽기/증가), 무르기 요청, 무승부 제안, 기권.
|
||
- 디스코드 로그인 실제 연결(앱 정보가 준비된 경우).
|
||
- 첫 부하 테스트·장애 주입 테스트 + 보고서.
|
||
- 테스트 서버 배포(위치가 정해진 경우).
|
||
- **진행 결과(2026-10-04)**: 네 게임 완료(규칙 테스트 체스 40·장기 46·바둑 50·오셀로 31), 게임 공통 E2E(PC 방장+휴대폰 친구),
|
||
접근성 axe 위반 0, 부하·장애 주입 통과(`reports/load-20261004.md`). 체스960은 chess.js가 지원하지 않아 후순위(M9).
|
||
디스코드 실제 연결·테스트 서버 배포는 사용자 정보 대기.
|
||
|
||
## M3. 카드 게임 기반 + 섯다·포커
|
||
- 공용 카드 컴포넌트(트럼프·화투 SVG 직접 제작), 베팅 엔진(한국식/노리밋), 사이드 팟.
|
||
- 섯다 전 모드, 포커 전 모드.
|
||
- 공정성 확인(시드 해시 공개) 기능.
|
||
- **진행 결과(2026-10-05)**: 섯다(2장·3장, 땡잡이·암행어사·구사 재경기, 사이드 팟)와 포커 7개 모드(홀덤·오마하·7포커·하이로우·바둑이·5카드 드로우·인디언)
|
||
규칙 + 화면 완료. 규칙 테스트 섯다 54·포커 52·족보 판정 24, 무작위 플레이 1,000판 이상(칩 총량 보존·비공개 카드 유출 없음),
|
||
카드 게임 E2E(PC 방장 + 휴대폰 2명, 섯다 1판·7포커 초이스부터 1판), 결과 화면 공정성 확인(SHA-256 씨앗 대조).
|
||
|
||
## M4. 가족 게임
|
||
- 윷놀이, 원카드(+색깔 카드 모드), 숫자 타일(루미큐브 방식), 다빈치 코드, 요트 다이스.
|
||
- **진행 결과(2026-10-05)**: 다섯 게임 규칙 + 화면 완료. 규칙 테스트 윷놀이 33·원카드 53·숫자 타일 56·다빈치 코드 31·요트 36,
|
||
게임마다 무작위 플레이 1,000판(말·카드·타일 보존, 비공개 정보 유출 없음, 모든 상태에서 시간 초과 행동 합법).
|
||
윷놀이 팀전(짝수 인원) 검사를 위해 엔진에 `playerCountError(options, count)`를 추가하고 방 시작 시 확인.
|
||
E2E: 윷놀이·요트 한 판 끝까지, 원카드 3인 60턴, 숫자 타일·다빈치 코드 여러 턴(PC 방장 + 휴대폰).
|
||
|
||
## M5. 마작·고스톱
|
||
- 리치 마작(4인, 3인), 점수 계산기 테스트(역·부 계산 사례 100개 이상), 초보 모드.
|
||
- 고스톱/맞고.
|
||
- **진행 결과(2026-10-05)**: 마작(4인 동풍전·반장전, 3인 산마, 초보 모드)·고스톱(맞고·3인·광팔기) 규칙 + 화면 완료.
|
||
마작 점수 계산 테스트 161(1~4판 × 20~110부 표 전체, 만관~더블 역만, 손패 계산 사례 약 60) + 규칙 77,
|
||
고스톱 규칙 58. 게임마다 무작위 플레이 1,000판(패·점수 보존, 비공개 정보 유출 없음, 시간 초과 행동 합법).
|
||
마작 울기 창은 남은 시간을 공개하지 않음(누가 울 수 있는지 드러나지 않게). 3인 최종 점수는 합 0 보정.
|
||
E2E: 마작 4인(PC 방장 + 휴대폰 3명) 첫 국 끝까지 → 다음 국 시작, 맞고 한 판(고·스톱 포함).
|
||
|
||
## M6. 뱅 + 실시간 반응 + 땅따먹기
|
||
- 뱅(반응 창 처리), 할리갈리(서버 도착 순서 판정), 주사위 땅따먹기.
|
||
- **진행 결과(2026-10-05)**: 세 게임 규칙 + 화면 완료. 규칙 테스트 뱅 62·할리갈리 46(+방 단위 서버 테스트)·땅따먹기 80,
|
||
게임마다 무작위 플레이 1,000판. 할리갈리는 같은 밀리초에 두 사람이 쳐도 서버에 먼저 도착한 사람만 인정(서버 테스트로 확인).
|
||
엔진에 선택 훅 `timeoutNotBefore` 추가(접속 끊긴 사람 차례에 타이머가 0ms로 반복 발동하던 문제 방지, 기존 게임 영향 없음).
|
||
뱅은 내 역할을 꾹 눌러야 보이게(옆 사람 훔쳐보기 방지). 땅따먹기 금액은 놀이용 포인트(P) 표기.
|
||
E2E: 뱅 4인 10턴, 할리갈리 3인 24번 뒤집기(맞는 종·틀린 종), 땅따먹기 15라운드 한 판 끝까지.
|
||
|
||
## M7. 보드게임카페 인기 게임
|
||
- 달무티, 보석 상인, 쿼리도, 라스베가스, 바퀴벌레 포커, 구십구.
|
||
- **진행 결과(2026-10-05)**: 여섯 게임 규칙 + 화면 완료. 규칙 테스트 달무티 34·보석 상인 42(+무작위 대국 파일)·벽 쌓기 길찾기(쿼리도 방식) 41·
|
||
라스베가스 32·바퀴벌레 포커 31·구십구 28, 게임마다 무작위 플레이 1,000판(구성물 보존, 비공개 정보 유출 없음, 시간 초과 행동 합법).
|
||
쿼리도는 상표 주의(§12)에 따라 화면 이름을 '벽 쌓기 길찾기'로 표시. 보석 상인 카드 수치는 `splendor/cards.ts`에 따로 두어 교체 가능.
|
||
E2E: 달무티 4인 1라운드 → 세금 교환 → 2라운드, 보석 상인 10점 한 판, 벽 쌓기 길찾기 한 판(길 막는 벽 거절 확인),
|
||
라스베가스 3라운드 한 판, 바퀴벌레 포커 3인 한 판, 구십구 3인 한 판(PC 방장 + 휴대폰).
|
||
사용자 결정 대기: '바퀴벌레 포커'·'구십구' 이름 유지 여부, 보석 상인 원작 카드 수치 유지 여부(각 문서 §12).
|
||
|
||
## M8. 파티 게임
|
||
- 도블, 그림 맞히기(붓질 스트리밍), 마피아(채팅 채널).
|
||
|
||
## M9. 다듬기
|
||
- PWA(홈 화면 추가, 오프라인 안내), 게임 기록 다시 보기, 게임별 튜토리얼 강화.
|
||
- 2차 부하 테스트, 필요 시 방 단위 다중 프로세스 분산 검토.
|
||
- (선택) 혼자 연습용 간단한 컴퓨터 상대.
|
||
- 체스960(자체 캐슬링 구현 + perft 검증).
|
||
|
||
## 순서 원칙
|
||
- 플랫폼(M1)의 안정성 기능이 먼저다. 게임은 그 위에 하나씩 얹는다.
|
||
- 각 게임은 "규칙 모듈 + 테스트 통과 → 화면 → E2E 한 판" 순서로 완성하고 다음 게임으로 간다.
|
||
- 진행 중 사용자가 순서를 바꾸고 싶으면 이 문서를 먼저 고친다.
|