Files

3.6 KiB

개발 할 일

기반 작업

  • Vue 3와 Vite 프로젝트 생성
  • Tailwind CSS 설정
  • Docker 정적 배포 기반 작성
  • 개발·배포·AI 작업 문서 작성
  • ESLint와 Prettier 규칙 확정
  • Vue Router 설치와 대기실·게임 화면 분리
  • Pinia 설치와 방 상태 구조 생성
  • 테스트 도구 도입 범위 결정
  • GameBoard.vue의 영역 상태와 조작 로직을 composable·store로 분리

1단계: 덱 불러오기와 로컬 플레이

  • 기존 덱 쿼리 파서 작성
  • 외부 입력 기본 검증 작성
  • 대기실 덱 URL 등록과 50장 기본 규칙 검증
  • NAS 카드 이미지 읽기 전용 공유 경로 구성
  • 카드 이미지 원본 환경변수를 프런트엔드 코드에 연결
  • 덱 데이터 기반 카드 인스턴스 생성
  • 표준 플레이 보드 배경과 카드 크기 기준 정의
  • 좌우 플레이어 정보 패널 자리 정의
  • 플레이 보드 드롭 영역 좌표 정의
  • 덱 셔플과 1장 드로우
  • 단일 카드 정규화 좌표 드래그 이동
  • 여러 카드 드래그와 겹침 순서 처리
  • 단일 카드 앞면·뒷면 전환
  • 단일 카드 탭·언탭
  • 카드 더블클릭 탭·언탭
  • 카드 우클릭 조작 메뉴
  • F 키 전체화면 전환
  • 덱·손패·필드·무덤 기본 이동
  • 덱 위 N장 공개와 개별 정리
  • 첫 손패 7장과 1회 멀리건
  • 라이프 7장 세팅
  • 선후공별 AP와 턴 시작 드로우
  • 턴 시작 일괄 언탭과 카드별 제외 잠금
  • 로컬 상태 초기화

2단계: 온라인 2인 세션

  • Node.js 실시간 서버 구성
  • Socket.IO 연결
  • 방 만들기와 방 코드 참가
  • 방 만들기·참가 대기실 UI
  • 방 만들기·참가 서버 동기화
  • 플레이어 좌석 할당
  • 게임 카드 플레이어 소유권 기반 상태 제출
  • 상대 카드 직접 조작 차단
  • 상대 손패·덱 카드 식별 정보 비공개
  • 공개 카드 이동·탭·뒤집기·영역 상태 동기화
  • 서버 무작위 선후공과 현재 차례 동기화
  • 카드 조작 이벤트별 세부 서버 검증
  • 덱 인스턴스 순서와 셔플의 서버 권위 처리
  • 서버 권위 드로우·여러 장 공개·라이프 배치
  • 60초 유예 기반 같은 좌석 재접속
  • 브라우저 저장소 기반 내 비공개 덱·손패 상태 재접속 복구
  • 진행 중 게임의 대기실·첫 화면 접근 시 자동 복귀
  • 방 나가기와 새 방 만들기 복구 동선
  • 전체 게임 상태 스냅샷 복구
  • 명시적인 방 종료 시 플레이어별 로컬 스냅샷 자동 삭제
  • 연결 종료 시 방 참가자 정리
  • NAS WebSocket 프록시 배포
  • 비어 있지 않은 방의 유휴 만료 처리

3단계: 안정화

  • 모바일·태블릿 Pointer Events 검증
  • 선택 카드 맨 위 레이어 이동
  • 여러 카드 겹침 순서 조작 UX 검증
  • 잘못된 덱 입력 오류 화면
  • 이미지 로딩 실패 폴백
  • 접근성 키보드 조작 범위 검토
  • 서버 재시작 시 방 종료 안내
  • 공개 카드 상태 리비전으로 오래된 제출 무시
  • 비공개 덱 조작 중 중복 클릭 잠금
  • Redis 또는 상태 저장 필요성 검토

확인이 필요한 정책

  • 표준 플레이매트 자산 확정
  • 카드 뒷면 이미지 확정
  • 한 방의 최대 플레이어와 관전자 정책
  • 방 유지 시간
  • 사용하지 않는 방 자동 삭제 시간
  • 덱 빌더와 시뮬레이터 사이의 최종 전달 형식