PvP를 주 콘텐츠로 삼는 게임에 있어서 절대로 놓치지 말아야 할 중요한 것이 있다. 바로 '매칭'의 균형이다. 실력이 지나치게 많이 차이가 나는 유저들끼리 매칭이 된다면 상황은 불 보듯 뻔하다. 고수 유저들의 경험과 실력을 따라잡을 수 없는 초보유저들은 자신의 실력을 키우기도 전에 지쳐 게임에서 이탈하게 된다. 균형은 반드시 유지되어야 한다.

실력이 비슷한 유저들끼리 매칭이 되어야 경기가 더욱 재미있는 법. 그래야 초보 유저들도 쉽게 게임에 적응하고 자신의 실력을 늘려나가며 계속 게임에 머무르게 된다. 그래서 흔히 AOS라 부르는 장르의 게임과 온라인 대전 게임, PvP를 주력 콘텐츠로 삼은 게임들은 더더욱 매칭 시스템에 신경을 쓸 수밖에 없다.

더욱 재미있는 PvP를 구현하기 위한 매칭시스템을 구축하는 방법에 대한 강연이 열렸다. 넥슨 라이브개발본부의 김영호 개발자는 지난 1년 동안 버블파이터의 클랜전, 래더, 아레나의 매칭 시스템을 구현하면서 겪은 자동 매칭 시스템의 문제점과 해결책에 대해 공유했다.

▲ 넥슨 라이브개발본부의 김영호 개발자


그는 강연의 서두에서 자동 매칭을 위해 유저의 실력을 평가하는 방법과 매칭하는 방법을 나누어서 만들어야 한다고 견해를 밝혔다. 게임에서는 단급제도나 랭킹제, 리그제와 같은 평가 방법을 도입하기 어렵다. 그래서 자주 쓰이는 방식이 바로 ELO. 체스의 자동 매칭 시스템을 사용하곤 한다.

유저의 실력은 절대적인 수치로 측정하거나 표현할 수 없다. 오로지 다른 값과의 비교를 통해서만 의미를 가질 수 있으며, 이는 매우 중요하다. 또한, 같은 유저일지라도 컨디션에 따라서 실력이 크게 달라질 수 있다.

이를 극복하기 위해 레이팅의 불확실성을 포함한 Glicko 매칭 방법이나 팀플레이 단위로 레이팅을 계산하고 무승부를 별도로 모델링하는 TrueSkill등의 방법이 현재 사용되고 있다. 그는 그럼에도 ELO 기반의 평가 방법은 팀플레이에 복잡한 상호작용까지 수용하기에는 역부족이라고 전했다.

사실상 마음먹고 지려고 하는 사람의 실력을 시스템적으로 어떻게 측정할 수 있을까? 누가 들어도 충분히 이해할 수 있을 만한 이야기였다. 하지만 시스템적으로는 이에 완벽히 대응할만한 방법이 아직 없다.


그렇다면 매칭 시스템은 어떨까. 기본적으로 매칭 시스템이 지향하는 바는 '특정 시점에 모인 유저들을 비슷한 실력, 비슷한 승률의 팀으로 나눈다'는 것이다. 이러면 아주 좋은 매칭이 된다.

현재의 매칭 시스템들은 유저들이 모이는 대로 바로 매칭을 시키거나, 특정 주기를 정해서 시간대별로 유저들을 모아 주기를 맞추기도 한다. 다중 큐를 이용해 유저군을 더욱 늘려 매칭을 시켜주는 방법도 있다. 하지만 매칭 시스템 역시 팀이라는 굴레에 묶이게 된다. 개개인의 실력의 평가 값도 완전하지 않은데, 팀으로 묶인 경우는 더욱 그렇다. 실력 평가 값의 비중을 높일 수 있는 매칭 알고리즘이 필요하게 된다.


그는 이런 점을 고려하여 '버블파이터'의 매칭 시스템을 좀 더 현실적으로, 균형이 맞도록 재조정하는 작업을 거쳤다. 이제 부딪힌 문제는 바로 라이브 중인 서버에 구현하는 것. 처음부터 시작했다면 좋았겠지만, 그렇지 않다. 이미 유저들은 초보와 고수가 나뉘어 있다. 평가 알고리즘에 따라서 플레이를 거듭하면 결국 레이팅이 맞춰지겠지만, 맞춰지기까지의 반발은 무시할 수 없다.

김영호 개발자는 그래서 '프리 레이팅'(Pre-Rating)을 선택했고, 개선된 시스템을 도입 전에 유저들의 실력을 가늠했다. 데이터가 쌓인 이후 버블파이터는 새로운 매칭 시스템을 도입했고, 결과는 상당히 좋은 편이었다. 50%에도 못 미쳐 나락에 가까웠던 저 레벨 유저들의 승률이 대폭 상승한 것.


초보 유저들의 승률이 올랐고, 반발과 지지를 동시에 받았다.

기존 유저들의 반응은 좀 나뉘었다. 흔히 초보 유저들을 상대로 쉽게 이기는 것을 좋아하던 유저들에게는 반발을 받았지만, 이 변화를 긍정적으로 바라보는 유저들에게는 지지를 얻었다.

하지만 그는 아직 끝난 문제가 아니라고 전했다. 바로 '동적 매칭'이 필요하다는 것이었다. 접속자가 적은 평일 오전 시간과 접속자가 많은 주말 오후 시간에 모두 같은 매칭 시스템이 사용되고 있기 때문이다. 유저가 많을수록 매칭 시스템은 평균값에 쉽게 수렴하기 때문. 표본이 적은 통계는 상당히 신뢰도가 떨어지는 결과를 보여주는 것과 비슷한 이치다.

그래서 그는 각 레이팅군에 분포된 유저들의 매칭 요청 패턴을 분석하는 새로운 시스템을 생각해보고 있다고 전했다. 이를 통해 유저들이 언제 어떻게 매칭 요청을 할지 예측하여 매칭 시스템을 짜는 시스템을 현재 개발해보고 있다고 전했다.

강연의 끝에서, 그는 "매칭 시스템을 제대로 만드는 것은 단일 프로젝트의 가성비로 보면 결코 좋은 편은 아니다"고 말했다. 제대로 만든 것을 공유하여 사용하는 것이 이상적이라는 견해도 내놓았다. 또, 자신이 했던 작업이 공유화되면 더 좋을 것 같아 현재까지의 작업을 문서로 만들고 있으며, 기회가 되면 다음에 공개할 수 있도록 하겠다고 전하며 강연을 마쳤다.



그는 그간의 작업들을 문서화하고 있다고 전했다.


■ 발표자료

단급제, 랭킹제, 리그제 등이 일반적으로 실력을 평가하는 방법이다.









▲ TrueSkill을 이용한 매칭시스템 승률분석