|
2018-12-01 00:04
조회: 19,076
추천: 13
과학을 통한 투기장 밸런스 조정안녕하세요! 저는 하스스톤의 선임 데이터 과학자인 티앤입니다. 오늘은 여러분께 과학적으로 투기장 밸런스를 조정하는 방법에 대해 말씀 드리고자 합니다. 여러분의 많은 투기장 플레이를 통해 생성된 많은 데이터로 투기장의 밸런스를 조절할 수 있습니다. 만약 제가 붐 연구소에 근무한다면 아마 수리 과학 부서에서 근무하고 있겠네요! 게임의 밸런스 조절
그 다음, 아홉 개 직업의 승률을 서로 비교하여 조절합니다. 모든 직업의 승률이 최대한 50%에 가까워지는 것이 이상적이라고 보고, 각 카드에 주어진 가중치를 조절해서 밸런스를 맞춥니다. 가중치란 선택 단계의 카드가 나타나는 상대적인 확률을 뜻합니다. 가중치가 높을수록 선택할 카드에 등장할 확률이 높습니다. 카드의 가중치를 변경하면, 그 카드가 속하는 유형과 등장할 확률도 달라집니다. 이 시스템이 원활히 돌아가기 위해서는 많은 데이터가 필요하지만, 매일 많은 분들께서 투기장을 즐겨주셔서 데이터를 충분히 얻을 수 있습니다.
이 데이터를 활용해서 게임 밸런스를 조정하려면 다음의 세 단계를 거쳐야 합니다.
이 작업을 마친 후에는 긴급 수정을 통해 변경 사항을 적용해야 합니다. 모델 구축투기장을 자주 즐기신다면, 승률 계산에 익숙하실거라 생각합니다. 아시는 것처럼 카드에 따라서 승리 확률에 미치는 영향도 다릅니다. 예를 들어 게임에서 리치 왕 카드를 뽑는 경우, 눈발바닥 펭귄을 뽑는 경우보다 승률에 큰 변화가 생기게 되죠.
만약 게임 중에 리치 왕을 뽑았다면, "리치 왕을 뽑으면 승률은 얼마나 될까? 60%? 50%? 이 카드를 정량적으로 평가하려면 어떻게 해야 할까?" 아마 이런 생각을 하게 되겠죠. 하지만 다음 턴에 얼음 보호막을 선택한다고 하면, 승률을 다시 계산해 보고 싶으실 겁니다. 저희는 이런 의문에 답해 주는 기계 학습 모델을 구축했습니다. 이 학습 모델에 대량의 데이터를 입력하게 되면, 컴퓨터는 접근이 가능한 모든 투기장 게임의 데이터를 바탕으로 승률을 예측하는 법을 학습합니다. 좀 더 전문적인 용어를 사용하자면, 구축한 모델을 "훈련"시키는 것입니다. 이 모델은 정보를 요청할 때 마다, 어떤 카드를 뽑았을 경우의 승률을 계산해 줍니다. 제약 최적화 문제 해결
손잡이를 돌리기 전에, 이 상자의 현재 승리 확률이 40%로 가정해 봅니다. 여기서 손잡이를 돌리면 예상 승률이 46%로 조정됩니다. 이 시점에서 손잡이 여러 개를 조절하면, 승률을 원하는 수치로 변경할 수 있는지에 대해, 아주 흥미로운 의문이 생깁니다. 이런 의문을 해결하려면 최적화 문제를 해결해야 합니다. 이 문제를 해결하기 위해 수학적으로 다가가면, 현실적으로 가능한 모든 방법 중에서 가장 최선의 방법을 찾아야합니다. "손잡이 여러 개"를 한꺼번에 돌려서 승리 확률을 최대한 목표에 가깝게 바꿔야하는데, 전문 용어로 표현하자면 고차원 벡터에서 목적함수 값을 최소화하고 싶은 것 입니다. 투기장 밸런스를 조절할 때는 모든 직업의 예상 승률이 최대한 50%에 가까워지도록 각 카드의 수치들을 변경합니다. 하지만 손잡이는 제약이 있기 때문에 마음대로 돌릴 수가 없습니다. 저희가 이 "상자"에 프로그램한 제약은 다음과 같습니다.
가중치 계산
공정한 게임을 위해밸런스 조절이 지금 단계까지 마무리되고 나면, 아홉 직업의 평균적인 승률이 +/-50%에 최대한 가까워지는 것이 가장 바람직합니다. 하지만 드물게 밸런스 조절 후에도 승률이 최적화가 어려운 경우가 있습니다. 이런 경우는 조절하기 전보다는 적절한 수치이지만, 가중치 조절 전에 특정 직업의 승률이 50% 보다 더 높았기 때문에 목표 수치를 달성하지 못한 것입니다. 저희는 감사하게도 이 시스템을 통해 투기장 데이터를 고급 전산 수학과 기계 학습에 활용함으로써, 특정 직업을 조정해야 하는지를 판단하고 각 직업의 카드 하나하나에 최적의 가중치를 부여하는 방법으로 투기장 밸런스 조정을 하고 있습니다.
투기장 밸런스를 과학적으로 조절하는 방법에 대한 정보가 흥미로웠으면 좋겠습니다!
EXP
286,447
(5%)
/ 310,001
|






시아쿠리스