Unity 검색

Metric Validation을 이용한 게임 밸런스 최적화

2020년 11월 13일 테크놀로지 | 7 분 소요
다루는 주제
공유

지난 해에 개발자들은 Unity Game Simulation을 활용해 클라우드에서 여러 게임플레이를 동시에 실행하여 보다 균형감 있는 게임을 개발했습니다. 이제 유니티는 현재 개발 단계에 있는 최적화 기능 중 하나인 Metric Validation을 출시하여 게임 밸런싱 워크플로를 자동화하는 단계에 이르렀습니다. 이번 블로그 포스팅에서는 Unity Game Simulation의 게임 밸런싱 프레임워크를 검토하고, Metric Validation의 기능을 소개하며, 유니티 파트너사인 Furyion의 활용 사례를 살펴보도록 하겠습니다. Furyion은 공개 예정인 Unity의 최적화 기능을 활용하여 게임 밸런스를 10배 더 빠르게 맞출 수 있었습니다.

여기에서 Game Simulation을 무료 체험해 보실 수 있습니다.

게임을 출시할 때 플레이어의 관심을 유도하는 방법 중 하나는 소프트 론치, 대규모 플레이 테스트, 조기 베타 버전 등을 통해 플레이어를 디자인 과정에 참여시키는 것입니다.

하지만 게임이 더욱 복잡해지면 매번 플레이어에게 게임 내의 다양한 경로와 전략을 확인해 달라고 요청하는 것은 매우 번거롭고 비용이 많이 들거나, 때로는 불가능할 수도 있습니다. Unity Game Simulation 팀은 자동화된 게임플레이를 통해 게임의 밸런스를 측정하는 강력한 프레임워크를 활용하면 플레이 테스트에 요구되는 데이터를 크게 줄일 수 있다고 생각합니다.

게임 밸런스를 위한 프레임워크

세 가지 주요 요소

현재 개발 중인 프레임워크는 게임의 세 가지 주요 요소인 지표(metrics), 테스트 사례(test cases), 파라미터(parameters)에 초점을 맞추고 있습니다. 지표는 게임플레이의 결과로서, 게임의 균형을 유지하는 데 매우 중요합니다. 테스트 사례는 게임 내에서 측정하고자 하는 다양한 시나리오를 말하며, 파라미터는 게임을 변경할 수 있는 설정으로 지표에 직접적인 영향을 미칩니다.

여러 차량이 등장하는 간단한 레이싱 게임의 밸런스를 맞춘다고 가정해 보겠습니다. 이번 게임 밸런싱의 목표는 플레이어가 선택한 차량과 관계없이 재미있고 차별화된 게임플레이 경험을 제공하는 것입니다. 특정 차량이 경주에 유리한지 살펴보려면 유사한 실력을 가진 봇이나 다른 플레이어가 서로 경주할 때 완주 시간을 측정합니다. 완주 시간의 차이가 차량의 유리함을 평가하는 지표가 됩니다. 이 지표를 사용하여 모든 차량을 평가하는 과정을 설명해 보겠습니다. 먼저 두 종류의 차량이 경주하는 모든 경우에 대한 일련의 테스트 사례를 설정합니다. 테스트 사례가 기대치에 미치지 못하는 경우 해당 차량의 성능을 변경합니다. 각 차량의 속도, 가속도 또는 성능 향상에 특별히 영향을 미치는 모드 등의 파라미터를 만든 후 더 만족스러운 결과를 얻을 때까지 차량의 성능을 변경하면 됩니다. 이 세 가지 요소를 함께 고려하면 디자인 목표에 부합하도록 게임의 균형을 맞추고 평가할 수 있습니다.

Unity Game Simulation에는 단일 실험 내에서 모든 테스트 사례와 파라미터를 나열할 수 있는 기능이 있으므로 이러한 종류의 실험을 쉽게 진행할 수 있습니다. 그런 다음 그리드 검색을 수행하여 테스트 사례별로 파라미터 조합을 만들고 조건에 맞는 자동화된 게임플레이를 실행합니다. 마지막으로 각 지표와 함께 테스트 사례와 파라미터가 반환되어 모든 결과가 해당 설정에 연결됩니다.

지표를 활용하여 밸런스 수정하기

위에서 소개한 설계 목표를 간단한 표현식으로 나타내면 다음과 같습니다. ‘두 차량 간의 완주 시간 차이는 항상 0초에서 20초 사이가 되어야 한다.’ 새로운 기능인 Metric Validation을 사용하면 간단히 표현식을 정의하고 자동으로 평가할 수 있습니다. 자동화된 게임플레이에서 생성된 지표는 그 값이 범위 내에 있는지 여부에 따라 1 또는 0으로 평가하는 부울(boolean) 시스템으로 점수가 매겨집니다. 보다 일반적으로 표현하자면, 개발자는 각 지표의 상한과 하한을 설정할 수 있습니다. 이처럼 간단하고 일관된 값을 사용하면 지표 범위를 만족하는 파라미터 조합을 찾기가 한층 쉬워집니다. 각 테스트 사례에서 가장 이상적인 파라미터 조합에는 1이라는 점수가 매겨집니다. 이상적인 파라미터는 이후 플레이 테스터에게 전달되어 더욱 심도 있게 분석되거나 실제 플레이어를 통해 A/B 테스트를 거칩니다. 또한 게임의 변경 사항에 따른 반복적인 밸런스 테스트를 설정하면 선택한 파라미터 조합을 다시 실행하고 점수가 1점으로 유지되는지 간단히 확인할 수 있습니다.

Metric Validation이 부여하는 점수는 그리드 검색보다 효율적이며 향후 공개될 최적화 기능에도 포함될 예정입니다. 점수를 실시간으로 처리하면 파라미터와 지표 간의 관계를 파악할 수 있습니다. 이 관계를 활용하면 최적화 시스템이 무작위 탐색에서 목표 지향적 탐색으로 전환되며 모든 테스트 사례를 통과시킬 가능성이 가장 높은 파라미터에 집중하게 됩니다. 따라서 최적화를 활용하면 초기 또는 반복적인 밸런스 테스트의 효율성이 크게 향상됩니다. 또한 최적화 시스템을 통해 게임을 밸런스 설정 프레임워크에 보다 긴밀하게 연결할 수 있어 초기 개발부터 출시까지 모든 단계에서 쉽게 게임 밸런스를 확인할 수 있습니다.

활용 사례: Furyion의 Death Carnival

유니티는 게임 밸런스에 대한 이해도를 높이기 위해 iLLOGIKA와 Furyion을 비롯한 여러 스튜디오와 활용 사례를 연구했습니다. 프레임워크 개발을 진행하는 동안, 밸런스 프레임워크의 세 가지 주요 요소가 어떻게 상호 작용하여 게임의 밸런스를 향상시키는지 시연하기 위해 Furiyon의 Death Carnival 사례를 다시 살펴봤습니다.

Death Carnival의 지표는 샘플 레벨에서의 NPC 사망 횟수와 샘플 레벨을 완료하는 데 소요되는 시간이었습니다. Furiyon은 16~22회의 사망 횟수와 500~750초 범위의 레벨 완료 시간 기준을 제공했습니다. 이 범위는 게임플레이 경험에 부정적인 영향을 미치지 않으면서, 플레이어가 자신의 선택이 게임플레이에 영향을 미친다는 느낌을 받기에 충분한 수치입니다. 파라미터로는 무기 데미지, 특수 무기 효과, 서로 다른 무기 조정값에서 오는 보너스 수준 등이 있었습니다. 이러한 파라미터는 무기의 세기에 영향을 미쳤고 레벨 완료 시간과 사망 횟수를 줄였습니다. 테스트 사례에는 탄의 범위, 관통, 화염과 같은 무기 조정값이 포함되었습니다. Furiyon은 모든 무기 조정값이 설정한 지표 경계 내에 있기를 원했습니다. 그 결과 진행된 실험에서는 110,000회가 넘는 게임플레이에 점수를 매기고(22,000개의 조합, 각 조합에 대해 5회씩 실험 실시) 모든 테스트 사례에서 유효한 지표를 산출한 파라미터 조합을 200개 이상 찾아냈습니다.

실제 플레이 테스터를 활용할 경우 Furiyon의 활용 사례는 최소 3,650시간의 게임플레이가 필요하며, 이는 새로운 콘텐츠나 주요 변경 사항에 따른 재실험을 포함하지 않은 수치로 인디 게임 스튜디오의 경우 도저히 실현할 수 없는 테스트 시간입니다. Unity Game Simulation은 유니티의 클라우드 시뮬레이션 플랫폼에 다수의 동시 빌드를 배포하는 방법으로 이러한 모든 게임플레이 데이터를 측정할 수 있으며, 수백만 개의 서로 다른 파라미터 조합을 지원합니다. Furiyon의 경우 3,650시간의 게임플레이를 단 4시간만에 완료했으며, 같은 날에 데이터 분석도 진행할 수 있었습니다. Metric Validation은 플레이어가 고를 수 있는 모든 선택지를 바탕으로 게임의 균형과 재미를 측정하는 보다 비용 효율적인 솔루션입니다.

유니티는 더 나아가 프레임워크의 최종 요소를 측정하고자 Death Carnival에서 최적화 시스템을 평가했습니다. 유니티는 실시간으로 점수를 수집하고 그 결과를 사용하여 어떤 파라미터 조합이 테스트를 진행할 만큼 이상적인지 판단했습니다. 이를 통해 22,000개의 조합 중 5개의 유효한 파라미터 조합을 식별해낼 수 있었습니다. 이 5개의 유효한 조합을 찾아내는 데 실행한 게임플레이는 2,000회에 불과했습니다. 그 결과 시뮬레이션 비용이 그리드 검색에 비해 10배, 무작위 검색에 비해 2~3배 감소했습니다. 시스템의 효율성을 높이면 개발자는 게임 내에 존재하는 무한한 수의 경로를 탐색할 수 있으며, 각 빌드마다 게임의 밸런스를 새롭게 설정할 수 있습니다.

최적화 시스템은 아직 개발 단계이며 먼저 소수의 스튜디오에 공개하여 체험해 보도록 하고 있습니다. 최적화 시스템을 사용해보고 싶다면 gamesimulation@unity3d.com으로 문의하시기 바랍니다.

더 우수한 게임 밸런스 실현을 위한 Metric Validation

Metric Validation은 자동화된 게임플레이를 사용하여 게임 밸런스를 측정합니다. 따라서 플레이 테스트를 진행하는 데 필요한 에너지와 시간을 크게 절약할 수 있습니다. 개발자가 적은 소규모 스튜디오도 플레이 테스트를 진행할 수 있고, 대규모 스튜디오의 경우 소프트 론치 횟수를 줄일 수 있으며, 플레이 테스터는 게임의 흥미도와 같이 사람만이 할 수 있는 요소에 집중할 수 있습니다. 다양한 게임 스튜디오와 함께 Metric Validation을 사용해 더 많은 밸런스 테스트를 진행할 수 있기를 기대합니다.

지금 Metric Validation을 체험해 보세요.

2020년 11월 13일 테크놀로지 | 7 분 소요
다루는 주제