플레이 테스트를 자동화하세요: 게임 시뮬레이션을 위한 가상 플레이어 생성

DYLAN SCANDINARO Anonymous
Dec 11, 2020|6 분
플레이 테스트를 자동화하세요: 게임 시뮬레이션을 위한 가상 플레이어 생성
이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.

가상 플레이어(게임 플레이 에이전트)를 생성한 다음 게임 시뮬레이션을 사용하여 대규모로 자동화된 플레이 테스트를 실행하면 플레이 테스트를 쉽게 자동화할 수 있습니다. 아이로기카, 퓨리온, 리츠 델리가 어떻게 가상 플레이어를 제작하여 약 40,000시간(약 4.5년)의 자동화된 플레이 테스트를 게임 시뮬레이션으로 오프로드했는지 세 가지 사례 연구를 통해 알아보세요.

게임이 재미있기 때문에 테스트하기 까다로운 이유는 플레이어가 자신만의 경험을 자유롭게 구성할 수 있다는 점입니다. 따라서 게임에는 버그와 디자인 결함이 나타날 수 있는 표면적이 매우 넓습니다. 개발자는 문제를 해결하고 기한을 안정적으로 맞추기 위해 광범위한 범위에서 자주 테스트해야 합니다.

과거에는 개발자가 빈도가 높은 낮은 커버리지 테스트(CI 파이프라인의 단위 테스트)와 빈도가 낮은 높은 커버리지 테스트(주요 릴리스 전 플레이 테스트) 중 하나를 선택했습니다.

유니티는 개발자가 플레이 테스트 범위와 단위 테스트 빈도를 고려하여 테스트할 수 있도록 Unity 게임 시뮬레이션을 구축했습니다. Unity 게임 시뮬레이션을 사용하면 개발자가 클라우드에서 자동화된 플레이 테스트를 실행할 수 있습니다. Unity 게임 시뮬레이션을 사용하려면:

가상 플레이어(게임 플레이 에이전트)를 생성합니다.

게임 시뮬레이션 패키지를 사용하여 시뮬레이션을 위해 게임을 계측하세요.

원격으로 구성 가능한 파라미터를 구현하여 다양한 게임 변형을 시뮬레이션할 수 있습니다. 디자인 질문에 답하는 데 필요한 데이터를 기록하는 메트릭을 구현하세요.

게임 시뮬레이션 패키지를 사용하여 게임 빌드를 생성하고 유니티 서버에 업로드하세요.

게임 시뮬레이션 사용자 인터페이스(UI)에서 게임을 수천 번 실행할 수 있습니다.

이 블로그 게시물은 자동화된 테스트를 위한 1단계인 가상 플레이어 생성에 초점을 맞춥니다. 2~4단계는 간단하며 게임 시뮬레이션 문서에 설명되어 있습니다. 지금 게임 시뮬레이션을 무료로 체험해 보세요.

Unity 게임 시뮬레이션용 가상 플레이어 제작은 간단합니다.

가상 플레이어는 실제 플레이어의 입력을 에뮬레이션하여 게임의 일부 기능을 테스트합니다. 게임이 예외를 트리거하지 않고 60분 동안 실행될 수 있는지 확인하는 등의 간단한 테스트의 경우, 가상 플레이어는 씬을 실행하고 임의의 동작을 수행하는 몇 줄의 코드가 포함된 C# 스크립트처럼 간단할 수 있습니다.

모든 무기의 강도가 거의 동일한지 확인하거나 각 레벨을 완료할 수 있는지 확인하는 등 보다 복잡한 테스트의 경우, NPC(비플레이어 캐릭터)를 생성하는 데 일반적으로 사용되는 것과 동일한 방법으로 가상 플레이어를 생성할 수 있습니다. 다음과 같은 패턴이 제공됩니다.

  • 휴리스틱 스크립트: 매우 간단한 규칙 또는 알고리즘이 포함된 스크립트
  • 행동 트리: - 조건과 작업으로 구성된 계획을 시각적으로 표현한 것입니다.
  • 유한 상태 머신: 가상 플레이어가 탐색과 공격을 번갈아 가며 수행하는 스크립트는 다음과 같습니다.
  • Unity AI 플래너: 직관적인 Unity 에디터 UI를 갖춘 시각적 기획 프레임워크
  • Unity ML-Agents 툴킷을 사용한 강화 학습 및 모방 학습: ML-Agents를 사용하여 잼시티의 스누피 팝을 위한 가상 플레이어를 제작한 방법을 확인해 보세요.

아래에서는 세 개의 스튜디오가 가상 플레이어를 제작하여 총 40,000시간에 달하는 플레이 테스트를 Unity Game Simulation으로 오프로드한 방법을 소개합니다. 특히 주목할 만한 점은 세 스튜디오 모두 가상 플레이어를 제작하는 데 비교적 간단한 접근 방식을 사용하면서도 게임 시뮬레이션을 통해 엄청난 가치를 얻을 수 있었다는 점입니다.

리츠 델리: 휴리스틱(욕심 많은 알고리즘)

인디 스튜디오 리츠 델리는 각각 독특한 게임 플레이 특성을 지닌 50여 명의 캐릭터가 등장하는 링커 스타일의 퍼즐 게임인 이레이저 블라스트를 개발했습니다. 리츠 델리는 Unity 게임 시뮬레이션을 사용하여 수백 번의 시뮬레이션을 실행하여 각 캐릭터의 경험치 레벨이 증가함에 따라 점수와 코인 수가 증가하도록 했습니다.

리츠 델리의 CTO이자 기술 책임자인 에릭 조던은 링커 스타일의 퍼즐을 풀 수 있는 가상 플레이어를 만들어야 했습니다. 그는 간단한 휴리스틱 욕심 알고리즘을 기반으로 C# 스크립트로 가상 플레이어를 구현했습니다. 지우개 폭발의 경우, 알고리즘은 같은 유형의 거품 중 가능한 가장 긴 체인을 일치시킵니다:

가능한 모든 단일 풍선 선택 집합을 만듭니다.

알 수 없는 블록 유형 "__block"인 경우 `serializers.types` 프로퍼티에서 해당 블록에 대한 직렬화기를 지정하세요. 알 수 없는 블록 유형 "__block"인 경우 `serializers.types` 프로퍼티에서 해당 블록에 대한 직렬화기를 지정하세요.

유효한 말풍선 세트에서 사용 가능한 일치 항목 수가 가장 많은 말풍선을 선택합니다.

유효한 일치하는 버블이 없을 때까지 1단계와 2단계를 반복합니다.

총점 및 보상 코인에 대한 지표를 업데이트합니다.

iLLOGIKA: 스크립팅된 동작 트리

아이로기카는 플레이어 간 대결(PvP) 러닝 게임인 로그 레이서(Rogue Racers)를 개발한 스튜디오입니다. 플레이어는 레이스 중에 사용하는 파워업이 포함된 카드 덱을 만듭니다. iLLOGIKA는 게임 시뮬레이션을 사용하여 모든 카드 조합을 테스트하여 카드나 덱이 너무 강력하지 않은지 확인했습니다.

아이로그카의 개발자들은 C# 스크립트를 사용하여 가상 플레이어를 만들었습니다:

가상 플레이어가 레이캐스트를 수행하여 다가오는 장애물을 찾은 다음 차선 변경, 회피 또는 점프를 통해 장애물을 피하여 레이스 끝까지 성공적으로 이동할 수 있도록 합니다.

플레이어의 현재 체력, 다른 플레이어의 상대 위치, 카드 능력 등 게임 상태에 따라 언제 카드를 사용해야 하는지 설명하는 일련의 규칙을 추가하세요.

알 수 없는 블록 유형 "__block"인 경우 `serializers.types` 프로퍼티에서 해당 블록에 대한 직렬화기를 지정하세요.

1단계와 2단계에서 설명한 각 동작에 대해 실제 플레이어의 예측 불가능성을 고려하여 부정확하지만 가능한 동작을 선택합니다.

퓨리온: 동작 디자이너 동작 트리

퓨리온은 플레이어가 10만 가지가 넘는 무기, 탄약, 무기 모듈의 조합을 선택할 수 있는 독특한 무기 소켓 시스템을 갖춘 탑다운 슈팅 게임인 데스 카니발의 개발사로, 각 조합에 따라 독특한 게임플레이 경험을 정의할 수 있습니다.

퓨리온의 창립자이자 디렉터인 허버트 융은 비헤이비어 디자이너라는 행동 트리 생성 툴을 사용하여 무기, 탄약, 무기 모듈의 각 조합에 대한 평균 레벨 완료 시간을 예측하는 가상 플레이어를 만들었습니다. 그런 다음 허버트는 Unity 게임 시뮬레이션으로 수천 번의 시뮬레이션을 실행하여 각 무기 소켓 조합을 테스트하여 600시간 이상의 플레이 시간을 절약했습니다.

Herbert는 직관적인 동작 디자이너 UI와 동작 디자이너의 다양한 기성 작업을 활용하여 가상 플레이어를 제작했습니다:

적의 범위 내에 있으면 해당 적을 공격합니다.

사거리 내에 적이 없다면, 사거리 내에 적이 나타날 때까지 출구를 향해 이동합니다.

적이 남지 않을 때까지 1단계와 2단계를 반복합니다.

레벨의 끝에 있는 게이트로 이동하고 레벨이 공식적으로 종료되면 Application.quit()을 호출합니다.

행동 디자이너로 봇을 만드는 방법에 대한 자세한 내용은 행동 디자이너의 에셋 스토어 페이지에서 문서를 참조하세요.

얼리 액세스 미리 보기: QA 테스트를 위한 Unity 게임 시뮬레이션

유니티 게임 시뮬레이션 팀은 QA 테스트용 버추얼 플레이어를 시작으로 자동화된 테스트를 위한 버추얼 플레이어를 제작할 수 있도록 최선을 다하고 있습니다. 유니티의 새로운 툴과 기능을 가장 먼저 사용해보고 싶다면 유니티에 문의하여 QA 테스트용 가상 플레이어를 제작해 보세요.

시작하기

Unity 게임 시뮬레이션을 시작하는 방법에 대해 자세히 알아보고 무료로 체험해 볼 수도 있습니다. 궁금한 점이 있으면 게임 시뮬레이션 팀에 문의해 주세요.