불꽃같은 빠르고 공정한 매치메이킹

불꽃같은 빠르고 공정한 매치메이킹
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

Cinder는 두 단계로 구성된 매치메이킹 시스템이다. 1단계에서는 각 로비의 비이상치(skill range) 겹침을 Ruzicka 유사도 지수로 빠르게 판단해 호환되지 않는 조합을 걸러낸다. 2단계에서는 전체 플레이어 레이팅을 역정규분포 기반 비선형 스킬 버킷으로 매핑하고, 버킷 인덱스의 정렬된 차이 합을 이용해 Kantorovich(워셔스테인) 거리로 “Sanction Score”를 계산한다. 1.4억 건의 시뮬레이션 결과는 점수 분포가 오른쪽으로 치우친 형태임을 보여주어, 실시간 매치메이킹에서 적절한 임계값 설정이 가능함을 입증한다.

상세 분석

Cinder는 기존 평균·중앙값 기반 매치메이킹이 로비 내 레이팅 편차가 클 때 발생하는 불균형 문제를 해결하기 위해 두 단계 필터링을 도입한다. 첫 번째 단계는 “비이상치 범위”를 정의하는데, 평균(µ)과 수정된 표준편차(σ′)를 이용해 하한(xₗ)과 상한(xᵤ)을 계산한다. 여기서 σ′는 실제 표준편차와 전체 레이팅 구간을 버킷 수로 나눈 값 중 큰 값을 선택해, 모든 플레이어가 거의 동일한 레이팅을 가질 경우에도 최소 범위가 유지되도록 설계되었다. 두 로비의 비이상치 구간이 정의되면 Ruzicka 유사도 S_R = Σ min(a_i,b_i) / Σ max(a_i,b_i) 로 겹침 정도를 정량화한다. 이 지표는 Jaccard 유사도의 연속형 변형으로, 겹침이 클수록 1에 가깝고, 겹침이 거의 없으면 0에 수렴한다. 실시간 매치메이킹에서는 S_R이 사전에 정해진 임계값 이하인 경우에만 두 번째 단계로 진행함으로써 연산 비용을 크게 절감한다.

두 번째 단계에서는 레이팅 전체 구간을 n개의 비선형 버킷으로 분할한다. 버킷 폭 W_i는 역정규분포 PDF ϕ(x_i)를 이용해 중앙(평균) 근처는 좁게, 양끝은 넓게 설계한다. 최소 폭 W_min을 설정해 버킷이 지나치게 얇아지는 것을 방지하고, 전체 구간 길이 R_total을 보정한다. 이렇게 정의된 버킷 인덱스는 각 플레이어를 정수형 좌표로 변환해, 로비를 1차원 이산 분포로 표현한다. 이후 Kantorovich 거리(1‑Wasserstein distance) W₁ = Σ |u(i) – v(i)| (정렬된 인덱스 차이의 절대값 합) 를 계산해 두 로비 간의 “Sanction Score”를 산출한다. 점수가 낮을수록 버킷 인덱스 분포가 유사해 공정한 매치이며, 높은 점수는 레이팅 분포 차이가 크다는 의미다.

시뮬레이션에서는 140 million 조합을 생성해 점수 분포를 분석했으며, 결과는 평균 20~25점 부근에 피크가 있는 오른쪽으로 치우친 형태를 보였다. 이는 무작위 매칭이 대체로 중간 수준의 불공정성을 가지지만, 매우 높은 점수(극단적 불공정) 경우는 드물다는 것을 의미한다. 이러한 경험적 분포는 운영 단계에서 “허용 가능한 최대 Sanction Score” 임계값을 데이터 기반으로 설정하게 해, 매치 품질과 대기 시간 사이의 트레이드오프를 정량적으로 조정할 수 있게 한다.

Cinder의 핵심 장점은 (1) 비이상치 구간 겹침을 이용한 초고속 필터링으로 연산량을 크게 감소시킴, (2) 역정규분포 기반 비선형 버킷으로 레이팅 밀집 구간에 높은 해상도를 제공, (3) Kantorovich 거리를 통한 단일 공정성 점수 제공으로 매치메이킹 정책을 단순화한다는 점이다. 또한, 기존 ELO·Glicko와 같은 연속형 레이팅 시스템을 그대로 활용하면서도, 로비 내부의 레이팅 분포 전체를 고려한다는 점에서 실용성이 높다. 향후 실시간 서비스 적용 시, 대기 시간, 플레이어 선호도(역할, 지역) 등을 추가 변수로 통합하면 더욱 정교한 매치메이킹이 가능할 것으로 기대된다.


댓글 및 학술 토론

Loading comments...

의견 남기기