티스토리 뷰

반응형

원문 : https://brightwing1218.tistory.com/10

 

 

 

원제: (GDC) Designing multiplayer ranking systems like ELO and TrueSkill

원문 주소
https://gamasutra.com/blogs/ChrisZukowski/20191118/354221/How_players_shop_during_a_Steam_sale.php

Gamasutra 2019.08.15 Posted

강연자: Mario Izquierdo

강연자 약력
Sr. Software Engineer at Twitch
https://www.linkedin.com/in/mario-izquierdo-a9a17ab

역자: brightwing1218


※ 본문은 GDC 강연의 기록본이 아닌 내용 요약본입니다. Listening는 힘에 부치는지라...

강연 소개

여러 이력들이 있지만, 강연자가 랭킹 시스템에 대해 집중적으로 다루기 시작한 것은, 그가 사이드 프로젝트인 <JumpCraft>를 진행하면서부터이다. <JumpCraft>는 마리오메이커를 연상시키는 작은 프로젝트로, 플레이어들이 픽셀화된 맵을 만들고, 시스템이 맵의 난이도를 계산하여 플레이어에게 스테이지로써 제공하는 형식의 게임이다. 즉, 플레이어들이 특정 맵에서 계속 죽어간다면 그 맵의 랭킹이 점점 오르는 형식이다.  강연은 30분 볼륨으로 진행되며, ELO  TrueSkill 방식의 랭킹 시스템 및 당신 자신만의 밸런싱 시스템을 만들기 위한 실용적인 고려 사항들에 대해 말해볼 것이다.

목차

  • ELO System
  • TrueSkill System
  • 당신만의 랭킹 시스템을 만드는 데 고려해 볼 실용적인 문제들

본문

1. ELO 랭킹 시스템

소개

체스 마스터 Arpad Elo가 고안하였으며, 체스에서 사용되던 실력 척도인 <Harkness System>을 개선1한 것이다. <ELO System>은 이후 세계 체스 연맹(FIDE)의 공식 척도로 채택되었다.

기본 개념

ELO는 개별 플레이어 실력의 평균(μ) 및 표준편차(σ) 값을 정규분포한다고 가정한다.

  • ELO는, 플레이어의 체스 실력이 정규 분포2한다고 가정하였다.
  • 이와 같은 가정으로 인해, "플레이어의 실력이 위치할 수 있는 확률 범위"에 대한 계산이 쉬워졌고,2명 간 매치 시의 승률 계산이 단순화될 수 있었다.
  • 한편, 체스를 기반으로 한 레이팅 공식이므로, 1vs1 상황만을 가정한 공식이다. 

ELO 시스템의 작동 원리

  • ELO 시스템 하에서는, 플레이어가 실수 형태의 실력 점수(이하 ELO Score)를 가진다.
  • ELO Score를 가진 두 명의 플레이어 간 매치가 종료되고 나면, 승자에게 패자의 ELO Score가 양도된다.
  • 양도 공식은 하단과 같다.
* ELO 점수 양도 공식
RatingDiff = (Score - Expected) * K_factor

* 공식해설
Score: 졌을 경우 0, 무승부일 경우 0.5, 승리할 경우 1
Expected: RatingDiff를 적용하는 대상의, 매치 전 예상되는 승률 값.
K_Factor: 한 판의 승부에서 최대로 잃거나 얻을 수 있는 점수 값 조절을 위해 임의로 지정 가능한 상수.

 

변수해설) K-Factor

K-Factor는 시스템에 임의로 부여하는 상수이다.
만약 이 변수가 없다면, 플레이어들은 0점 ~ 1점 사이의 값만을 잃을 수 있을 뿐이다.

즉, K-Factor 설정을 통해 점수 이양의 스피드를 결정할 수 있으며K-Factor를 높게 설정할수록, 모든 플레이어들의 실력 스펙트럼을 넓게 펼칠 수 있다.

이를 적극 활용하자면, 동일한 랭크 래더에서, 낮은 구간의 유저의 ELO K-Factor는 높은 구간의 그것보다 높게 설정할 수 있다. 이렇게 해 놓는다면, 실력이 높은 플레이어는 상위 랭크까지 적은 수의 매치를 통해서도 갈 수 있을 것이다.

 

변수해설) Expected

 

Expected, 실제 있었던 결과에 의거하여, 시스템이 매치 결과를 예상한 승률을 의미한다.

* A 플레이어의 승률 기댓값
Expected[A] = 1/(1+10^(Rating[B-A]/400)
* 값 해설
Rating[B-A]: 상대와 나 사이의 ELO Score 차이
"400": ELO System에는 "점수 차이가 400이 날 때, 실력 차이는 10배가 난다"는 가정이 삽입되어 있다.
       이 가정이 싫다면, 바꿔 사용하면 된다.

ELO를 변형하지 않고, 오리지널 그대로 사용한다고 쳤을 때, 점수 차이에 따라, 하단과 같은 승률이 나온다.

만약 400을 다른 값으로 변동한다면, 이 승률 값에도 차이가 발생하게 된다.

점수 차이 0: 50% 승률

점수 차이 100: 64% 승률

점수 차이 200: 76% 승률

점수 차이 300: 85% 승률

점수 차이 400: 91% 승률

점수 차이 500: 95% 승률

점수 차이 600: 97% 승률

ELO 랭킹 시스템: 코멘트

  • 널리 쓰이며, 잘 알려져 있다.
  • 1vs1 상황에서만 올바르게 작동한다.
  • 심플하다는 점이 가장 큰 강점이다. 알고리즘 자체를 쉽게 계산 가능하므로, 공정하다는 느낌을 준다.
  • K-Factor는 신규 유저와 숙련 유저 층에서 달리 적용되어야 한다.
  • 다양한 게임들에서 실정에 맞게 "커스텀하여" 적용되고 있다. 그대로 쓰는 경우는 거의 없다.체스에서 가정하는 K-Factor와 같은 요소들에 대한 재정의가 필요하기 때문이다.
  • 왜냐하면, 현대의 게임들은 체스에 비해 명백히 많은 데이터를 가지고 있으므로,
  • 실제 실력 측정에는 많은 시행횟수를 요한다. 핵심 가정이 정규 분포 기준이므로, 실제 실력 분포 그래프가 표준 편차 형태로 수렴해야 신뢰도를 보장할 수 있기 때문으로 보인다.

2. TrueSkill 랭킹 시스템

소개

ELO 시스템을 기반하여  2005년에 만들어진 시스템이다.

Xbox Live의 공용 매치메이킹 시스템으로 활용하기 위해, <Microsoft Research>가 고안하였다. 

기본 개념(ELO와의 주요 차이점)

플레이어의 실력은 정규 분포를 따르지 않는다!

범위 값은 98% 신뢰도를 가지도록 평균(μ) 및 표준편차(σ) 설정 필요

  • 플레이어 실력에 대해, 정규 분포를 가정하지 않는다.
  • 플레이어 실력의 평균(μ) 및 표준편차(σ)에 대해 구체적으로 정의하는 것으로,  
    플레이어의 실력 분포를 좀 더 구체화하여, 매치메이킹의 정확도를 높인다는 개념이다.
  • 따라서 평균(μ) 및 표준편차(σ)에 대한 정의가 중요해지는데,플레이어 실력의 범위 값을 잡을 때는, 범위 값이 신뢰도 98%를 확보할 수 있도록 설정하도록 권하고 있다.
  • 보통, 신규 플레이어들은 실력 분포 범위가 넓고 범위 값 내에서의 확률 편차가 크지 않다.
    반면, 숙련 플레이어들은 실력 분포 범위가 좁고, 확률 편차가 크다. (한 점으로 모인다.)

TrueSkill 시스템의 작동 원리

너무 복잡합니다.

너무 복잡하다. 필요하다면, 공식 논문을 참조할 것.

https://www.microsoft.com/en-us/research/publication/trueskilltm-a-bayesian-skill-rating-system/?from=http%3A%2F%2Fresearch.microsoft.com%2Fapps%2Fpubs%2Fdefault.aspx%3Fid%3D67956

 

 

TrueSkill 랭킹 시스템: 코멘트

  • 범용성이 높다. 어떤 종류의 경쟁 게임에든 적용할 수 있다. (1vs1이 아닌 다대다 매치에서도.)
  • 플레이어의 실력 분포를 직접 도출하므로, 적은 매치 수로도 플레이어의 실제 실력을 측정 가능하다.
  • 계산이 매우 복잡하다. 현대의 컴퓨터는 이를 감당해낼 수 있지만, 이를 인간이 납득할 수 있는지는 다른 문제이다.
    플레이어가 언뜻 보기에 불공정한 매치가 이루어질 수도 있다.
  • 새로운 플레이어의 실력 측정을 쉽게 해 준다.
  • Microsoft에서 소유권을 가지고 있으므로, 사용에는 라이센스가 필요하다.
    동일한 개념에 의해 만들어진 <Glicko System>이라는 대안이 있지만, <Glicko System>은 1vs1 매치 환경에서만 적용 가능하다.

3. 당신만의 랭킹 시스템을 만드는 데 고려해 볼 실용적인 문제들

소개

무엇이 좋은 랭킹 시스템을 만드는 요인인가?

단순히 수학만 잘 한다고 당신 게임에 베스트한 형식의 랭킹 시스템을 만들 수는 없다.
게임에 맞는 기획 의도가 반영된 랭킹 시스템이야말로 좋은 랭킹 시스템이라고 할 수 있을 것이다.

 

우선 공정함에 대한 신뢰성, 적용 시의 용이성은 기본으로 고려되어야 하며,
게임에 따라 반드시 고려되어야 하는 요소들이 또 존재할 것이다.

이에 대해 몇 가지 알아보면서, 세션을 마무리하자.

 

복잡성

  • 정확하고, 다양한 상황에 대처할 수 있을수록, 더 복잡하다.
  • 이해하기 어려운 것은 불공평할 수 있다.
  • 단순한 공식인 ELO는 반면, 지금까지도 널리 쓰이고 있을 만큼 사용하기에 좋다.

복잡성

  • 상당량의 복잡성을 컨트롤할 수 있게 해 준다.
  • 이 역시 불공정할 수 있다.
  • ELO와 같은 알고리즘 또한, K factor, 플레이어 실력이 정규분포할 것이란 가정 등의 주관적 요소를 포함하고 있다.

 

점수의 인플레이션 / 디플레이션

  • 체스의 탑 레벨 레이팅 점수는 현대에 들어 인플레이션화되었다고 통상적으로 얘기된다.
    이는 다른 세대 간 플레이어 실력과의 비교를 어렵게 만든다.
  • 평균 스코어를 조정하기 위해서
    가끔은, 포인트를 집어넣고, 보정하거나 시스템 변수를 수정하는 것이 필요하다.
  • 실제로는, 많은 게임들에서 인플레이션 이슈는 발생하지 않고 있다.

콜드 스타트

  • 우리는 새로운 유저의 실력에 대해 알지 못한다.
  • TrueSkill Glicko는 불확정성에 대한 설계를 통해 이를 해결했다.
  • Elo 또한 이를 K factor로 해결할 수 있다.
  • 배치고사가 매우 유용하다.

시간에 따른 마모

  • 복귀 유저는 실력이 마모되어 있을 가능성이 크다.
  • ELO에서는, 간만에 즐긴 한 판이 매우 절망적일 가능성이 크다.
  • TrueSkill Glicko는 불확정성 변수를 증가시키는 것으로 이를 대처하고 있다.

재미 요소

  • 랭킹은 잔인할 정도로 정직할 수도 있지만, 많은 플레이어는 그냥 성장감을 느끼고 싶어한다.
  • 성장을 위해, 매치메이킹에서 랭킹 시스템 및 누적 시스템을 사용하라.
  • 하스스톤의 사이드 미션이나, 지역 기반 매칭, 등급 랭크(Bronze, Silver....) 같은 것이다.

시스템으로 게임하기

  • 매치메이킹은 랜덤에 기반해야 한다.
  • 토너먼트에서의 ELO 레이팅은 탑 티어 유저들의 참여를 저해할 수 있다.
    (ELO는 통상적으로 자신보다 점수가 낮은 상대와 대전할 때의 이익이 적다.)
  • DCI에서는 2012년에 ELO를 폐지하였고,
    플레인스워커포인트라는 새로운 누적 시스템3을 도입하였다.
 

플레인즈워커 포인트 - 매직 : 더 개더링

프라이데이나이트매직, Preliminary 프로투어 예선, 그랑프리 등 공인 매직 이벤트에 참가하면 점수를 받을 수 있습니다. 실력을 갈고 닦아 승수가 올라가면 더 많은 점수를 받을 수 있습니다. 점수가 어느 정도 쌓이면 플레인즈워커 점수 프로그램에서 레벨이 오르며 이에 따라 순위도 올라갑니다. 대마법사의 호칭을 노려보십시오! 상대를 찾아 이깁니다. 경기에서 이길 때마다 추가 점수를 받습니다. 더 알아보기 대규모 이벤트에서 최고의 상대와 대결하십시오. 토

www.wizards.com

 

 

승리의 이익: 승리 vs 경기 성과

  • 많은 시스템들은 승리를 카운트하여 랭킹에 반영한다.
  • 게임 성과를 카운트할 경우, 실력 측정의 정확성을 올리는 것에 도움을 준다.
  • 그러나 게임 성과에 대한 카운팅은 토토 등 도박에 악용될 수 있는 여지가 있고
    성과 카운팅에서의 어뷰징을 위한 
    불건전한 매치를 조장할 수 있다.(ex. 15-0)

홈 어드밴티지

  • 농구와 같은 많은 스포츠들에서, 홈에서 플레이하는 것이 더 승률이 높다.
  • 이것은 반영만 된다면, 공식의 정확도를 높이는 데 사용될 수 있는 다른 변수이다.
  • 온라인 게임에서는 선호하는 맵, 장비 등이 있겠다.

 

50% 승률의 공포

  • 좋은 매치메이킹 시스템은 50%의 승률을 부여한다.
  • 그러나 플레이어들은 늘 50%보다 더 이기고 싶어한다.
  • 스타크래프트 아케이드와 같은, 사이드 컨텐츠를 제공하거나, 일반 빠른 게임 모드를 준비해라.
  • 당신은 연패에 대한 두려움을 완화하기 위해 이에 대한 승리 횟수를 종합하여 보여줄 수 있다.

게임을 넘어서

  • 랭킹과 레이팅 시스템은 어디든지 있다: Amazon, Yelp, Google search 등...
  • 주커버그는 ELO의 변형을 Facemash 사이트에 적용한 적이 있다.
  • 어떤 대상이든, 랭크 매길 수 있음을 기억하자
    (ex. 플레이어 실력 vs 맵의 난이도4
    )

 

 

  1. 강연자는 "시스템의 수동적인 면"을 개선하였다고 소개 [본문으로]
  2. https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%EB%B6%84%ED%8F%AC [본문으로]
  3. https://www.wizards.com/Magic/planeswalkerpoints [본문으로]
  4. 강연자가 예전에 만든 게임인 <JumpCraft>의 예시 [본문으로]
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함