개발자의 관점: 하스스톤 용병단 PvP 모드의 평점과 대전 상대 찾기

개발자의 관점: 하스스톤 용병단 PvP 모드의 평점과 대전 상대 찾기

안녕하세요! 저는 하스스톤 팀의 수석 데이터 사이언티스트 티앤입니다. 이번 블로그에서는 새로운 게임 모드 용병단 내의 PvP 콘텐츠인 사투장의 평점과 대전 상대 찾기의 원리에 대해 자세히 다룰 예정입니다.

용병단의 평점과 대전 상대 찾기 시스템은 하스스톤 게임 모드 중에서 가장 복잡하지만, 그 핵심은 두 가지 간단한 발상에서 출발했습니다.

  • 평점 시스템의 목표는 용병 레벨이나 능력/장비 레벨, 팀 구성이 아니라 장기적인 플레이어의 실력을 잘 나타내는 것입니다.
  • 대전 상대 찾기 시스템의 목표는 플레이어의 평점과 용병 레벨, 능력/장비 레벨, 파티 역할을 고려하여 적정한 대기 시간 내에 "공정한" 경기를 주선하는 것입니다.

게임이 종료된 후에 평점을 조정하고 대전 상대를 찾는 방식에 영향을 주는 요소에는 자신의 평점, 내 용병들의 레벨과 능력/장비의 단계, 내 파티의 역할 구성, 그리고 대기 시간의 길이 등이 있습니다. 지금부터 이 요소들을 하나씩 살펴보겠습니다.

평점

결투와 마찬가지로, 용병단의 평점 시스템도 내부 평점과 외부 평점, 두 가지로 이루어져 있습니다.

내부 평점은 플레이어의 현재 실력을 실시간으로 반영하는 수치이며, 새로운 시즌이 시작되더라도 초기화되지 않습니다. 내부 평점은 처음 몇 회의 배치 경기를 마친 후에 설정되며, 플레이 시간이 누적됨에 따라, 또는 사투장에 오랜 기간 입장하지 않았을 때 조정됩니다. 이 평점은 플레이어에게 보이지 않습니다.

외부 평점은 플레이어에게 보이는 수치이며, 매 시즌이 시작될 때마다 초기화됩니다. 외부 평점은 한 시즌의 달성 목표가 되기도 하고, 게임 진척도를 반영하는 역할도 합니다. 한 시즌 동안 플레이하는 게임의 수가 많을수록 외부 평점은 저희가 판단하는 플레이어의 현재 실력을 정확하게 반영하게 됩니다.

외부 평점 기준으로 작성되며, 대전 상대 찾기는 내부 평점이 기준이 됩니다. 자신과 상대의 내부 평점 차이는 각 대전이 시작되기 전에 상대에게 승리할 확률을 계산하는 데 있어 중요하게 작용하는 요소입니다(다른 요소들은 아래에서 다룰 예정입니다). 게임이 종료된 후, 이때 계산한 승리 확률을 실제 결과와 비교하여 평점 변동량을 산출하게 됩니다.

평점 시스템의 기초는 전장 평점에 관한 지난 블로그(https://playhearthstone.com/ko-kr/news/23523064)에서 확인할 수 있습니다.

용병 레벨

파티에 포함된 각 용병의 레벨은 대전 종료 후의 평점 변동과 대전을 시작하기 전 상대를 찾는 방식 모두에 커다란 영향을 줍니다. 예를 들어, 대전 상대 찾기 시스템상 용병 레벨이 동일한 두 플레이어가 연결될 확률이 높습니다. 특히 평점 등의 요소가 동일한 경우에는요. 만약 파티 레벨이 자신보다 높은 상대를 만난다면 승리 확률은 낮아질 것입니다. 그 결과로, 대전에서 승리했을 때 더 많은 평점을 얻게 되며, 패배하더라도 평점 하락 폭이 줄어들게 됩니다.

물론 플레이어들이 구성하는 파티의 용병 레벨이 매번 같지는 않겠죠. 그래서 저희는 이런 상황을 평가하기 위한 공식을 만들어냈습니다. 수학 용어로 설명하면, 파티 내 용병들의 최고 레벨과 평균 레벨, 편차, 비대칭도를 이 공식으로 계산하여 특정 용병 파티가 얼마나 강한지 나타내는 "대용 수치"를 생성하게 됩니다. 이 수치를 "레벨 점수"라고 부르겠습니다.

각 게임이 종료된 후에 레벨 점수와 상대적인 내부 평점 등 이 블로그에서 소개한 여러 요소를 고려하여, 해당 게임으로 인해 평점을 얼마나 얻거나 잃는지, 즉 "평점 보상값"을 계산합니다.

용병 능력 단계

대전 상대 찾기와 평점 시스템은 각 용병의 능력 단계 또한 고려합니다. 용병들의 능력이 얼마나 강한지를 파티의 레벨 점수와 유사한 방식으로 계산하여 "능력 점수"를 산출합니다. 이 능력 점수를 비선형 함수로 변형하면 플레이어가 상대에게 승리할 확률과 게임 종료 후의 평점 변동량을 예측할 수 있습니다.

자신과 상대의 모든 용병들이 최대 레벨(출시 시점에서 최대 레벨은 30)인 경우에는 능력 점수가 미치는 영향이 크게 줄어든다는 점에 유의하세요. 이때는 상대적인 내부 평점을 비롯한 다른 요소들에 더 가중치를 두게 됩니다.

용병 장비 단계

용병 장비와 관련된 점수와 승리 확률을 계산하는 알고리즘은 앞서 말씀드린 능력 단계의 계산 방식과 유사하며, 매개 변수만이 다를 뿐입니다. 한 가지 커다란 차이점은, 용병은 반드시 장비를 장착하지 않아도 된다는 것입니다. 장비가 없는 용병은 "0단계" 장비를 장착한 것으로 간주합니다.

용병의 역할

이미 잘 알고 계시듯, 용병의 세 가지 역할은 투사, 주문술사, 수호자입니다. 각 역할은 특정 역할에게 2배의 피해를 주며, 나머지 한 역할로부터 2배의 피해를 받습니다.

용병의 역할 조합은 게임 종료 후의 평점 변동과는 관련이 없지만, 대전 상대 찾기 단계에는 영향을 줍니다. 역할 조합이 주는 영향은 파티 레벨이나 능력/장비 단계보다 덜 중요하지만, 6명의 투사와 6명의 주문술사가 맞붙거나 6명의 수호자로만 이루어진 미러전 등, "극단적인" 대전이 발생할 확률을 낮추기 위해 고려하게 됩니다. 이러한 목적을 달성하기 위해, 저희는 "정보 엔트로피"라는 수학적 개념과 매우 비슷한 개념을 창안했습니다. 즉, 엔트로피가 높을수록 용병의 역할이 다양하다는 것입니다. 그 후, 엔트로피 점수에 특성 함수를 곱해서 극단적인 대전만이 영향을 받도록 합니다. 저희의 목표는 플레이어 여러분이 원하는 용병을 자유롭게 사용하면서도 용병단의 핵심적인 역할 시스템을 활용하고 싶어지도록 만드는 절묘한 밸런스를 구현하는 것입니다.

대기 시간 AI 상대

대기 시간은 모든 대전 상대 찾기 시스템에서 중요한 자리를 차지하는 요소입니다. 게임이 재미있으려면 적절한 대전 상대를 찾아야 하지만, 대기 시간이 너무 길어지면 부정적인 플레이 경험을 얻는 경향이 있습니다. 용병단의 대전 상대 찾기 시스템은 너무 많은 변수를 고려하기 때문에, 적절한 대전 상대를 찾는 데 지나치게 오랜 시간이 걸리는 상황을 피하고자 했습니다.

현재 용병단에서 대전 상대를 찾는 데 1분~1분 30초 이상 걸린다면, 그 플레이어의 내부 및 외부 평점 모두가 특정 기준치 아래라는 뜻이며(외부 평점 기준치 7000), 이 경우에는 A.I. 상대를 만나게 됩니다. 이 기준치로 인해 비교적 가볍게 게임을 즐기는 플레이어들이 상대를 빠르게 찾을 수 있으며, 게임을 아주 깊게 파고드는 플레이어 또한 순위표 최상위 자리를 두고 치열하게 경쟁할 수도 있습니다.

현재는 A.I.의 난이도 레벨은 하나뿐이므로, 플레이어의 내부 평점에 따라 A.I. 파티의 레벨을 조정함으로써 A.I. 상대의 난이도를 맞추게 됩니다. 누군가 용병들의 레벨 차이가 매우 큰 파티를 가지고 A.I. 상대와 대결하는 경우, 해당 플레이어 파티의 평균 레벨이 아닌 각 용병의 레벨을 그대로 반영하여 A.I.의 팀을 구성한 후에, 플레이어의 평점에 따라 A.I. 파티의 레벨을 조정합니다. 게임 종료 후의 평점 변동 또한 A.I. 상대를 만났는지에 따라 달라집니다.

덧붙이는

평점을 조정하거나 대전 상대를 찾을 때, 사투장에 입장하는 용병이나 능력, 장비가 정확히 무엇인지는 고려되지 않습니다. 레벨, 능력/장비 단계, 역할이 같은 두 용병은 동일하게 계산됩니다. 티란데와 렉사르 중 누가 "본질적으로" 더 강한지나 누가 현재 메타에 더 잘 맞는지는 계산하지 않는다는 뜻이죠. 이러한 요소를 고려하는 것은 플레이어 여러분께 맡기고자 합니다.

마지막으로, 용병단의 평점/대전 상대 찾기 시스템에는 A.I.끼리의 모의 대전을 아주 많이 시행하여 얻은 하이퍼 매개 변수가 많다는 점을 알려드리고 싶습니다. 출시 이후에 평점과 대전 상대 찾기 시스템을 면밀하게 관찰해서, 실제 데이터를 통해 알고리즘과 변수를 업데이트해나갈 예정입니다. 저희는 항상 여러분의 의견을 듣고 있습니다. 평점과 대전 상대 찾기에 관한 여러분의 생각을 알려주세요.

용병 파티를 구성해서 사투장에 뛰어들어 치열하게 순위를 올릴 여러분의 모습이 기대됩니다. 그럼 선술집에서 뵙겠습니다!

HS_Blog_YearoftheGryphon_Divider_600x100_EK01.png

Mana Crystals Page Footer Image


대화에 참여하세요!
{0} 개 댓글