rank-game-algorithm-strategy

1. Status

Accepted

2. Context

랭크 게임 모드에서 매칭 방식을 정의해야 한다.

현재 고민 중인 주요 사항:

  • 팀 구성 방식 (방 생성 기반 vs 큐 기반)
  • 포지션 고려 여부
  • 매칭 시점(예약제 vs 실시간 매칭)
  • 장소 할당 문제

유사 서비스인 오버워치의 매칭 방식을 참고:

  • 5인 팀 단위로 매칭
  • MMR이 유사한 팀끼리 매칭
  • 포지션 선택은 유저 재량(풋살은 포지션 로테이션이 일반적임)

3. Decision

고려한 옵션 장점 단점
방 생성 + 날짜 예약제 장소, 시간까지 확정 가능 게임 몇 개 안 잡힐 듯
예약 취소, 노쇼 등으로 운영 부담 증가
개인 단위 매칭 (포지션 기반 큐) 팀 구성 부담 없음
방 생성/날짜 예약 불필요 → UX 간단
게임 몇 개 안 잡힐 듯
포지션 별로 MMR을 달리 해야할 가능성
스포츠 종류별 복잡성 증가
팀 단위 큐 매칭 (개인으로 큐 신청 시 clustering 후 팀으로 묶고 MMR로 매칭) MMR이 유사한 팀끼리 매칭 가능 → 공정성 보장
기존 시스템(오버워치)과 유사
방 생성/날짜 예약 불필요 → UX 간단
나중에 팀전으로 확장하기 좋음
충분한 팀이 없으면 매칭 지연 가능

4. Consequences

장점

  • 매칭 품질 보장: 유사한 MMR 팀끼리 매칭 → 공정한 게임 기대
  • 단순한 UX: 방 생성/날짜 지정 대신 큐 참여만으로 매칭 가능
  • 풋살 문화 반영: 포지션 고정 없는 자유 플레이 지원
  • 확장성: 장소 문제는 추후 별도 모듈로 처리 가능

단점

  • 즉시 매칭 불확실성: 큐에 충분한 팀이 없으면 매칭 지연 발생
  • 장소 미정 상태: 실제 오프라인 경기 실행까지 연결되지 않음 (MVP 수준)