본문 바로가기 주메뉴 바로가기 검색 바로가기
게임 속 완벽한 보스, 머신러닝으로 완성한다?
상태바
게임 속 완벽한 보스, 머신러닝으로 완성한다?
차세대 게임 캐릭터는 인공지능을 기반으로 움직여, 사용자의 참여도를 높이는 동시에 게임 승리가 더 어려워지도록 한다.
By MATTHEW SMITH, WIRED US

바로 우리의 뒤에서 목을 무너뜨린다. 마치 모든 움직임을 인식하는 듯하다. 왼쪽, 오른쪽으로 회전하고 기둥 사이를 엮어 귀중한 공을 모으는 동시에 적이 발전하는 것을 막는다. 일시적으로는 패배한 것처럼 보인다. 그러나 이내 구석에서 적이 등장하면서 큰 폭발음을 일으킨다. 적이 우리를 포위했다.

‘게임 종료’라는 글자와 함께 익숙한 화면이 등장한다. 그리고 바로 아래 “게임 난이도 보고하기”라는 글자가 등장한다. 단 몇 초간 무시무시한 추격전을 이어가면서 아드레날린을 마구 분비한다. 그리고 게임 난이도 ‘어려움’을 선택한다. 그다음에는 게임 속에서 사용자를 쫓는 적의 공격이 조금 완화된다.

AI의 배틀 참여
비디오 게임 스튜디오 에이도스 셔브룩(Eidos-Sherbrooke) 소속 머신러닝 전문가인 로메인 트라첼(Romain Trachel)과 알렉산더 페이로트(Alexandre Peyrot)는 필자가 언리얼 페스트 2022(Unreal Fest 2022) 현장에서 설명한 게임을 개발했다. 머신러닝과 언리얼 엔진(Unreal Engine)의 특징인 ‘EQS(Environment Query System)’을 결합했다. EQS는 개발자가 인공지능(AI)의 결정 정보를 제공할 공간 데이터를 사용하도록 지원한다.

EQS는 보통 각종 변수와 그에 따라 부수적으로 등장하는 가능성을 중첩한 행동 트리(behavior tree)를 다룬다. 그러나 데모 당시 AI 행동은 머신러닝 모델을 바탕으로 다루었다. 언리얼 EQS는 AI의 눈과 귀 역할을 하면서 환경 정보를 제공한다. 머신러닝 모델은 뇌 역할을 하고, 적합한 대응 방식을 결정한다.

게임 자체는 설명을 들었을 때만큼 무시무시하지는 않다. 그 주된 원인은 하향식 프리젠테이션과 기호의 시각적 요소 때문이다. 그러나 게임 실행 자체는 플레이어가 지도에서 다루는 전 영역을 이동하면서 공을 수집하는 임무를 부여하는 쫓고 쫓기는 고전 게임과 다를 바 없다. 

트라첼과 페이로트는 “개발자가 더 강력한 쫓기 모드를 선택한다면, EQS 테스트에서 참조 가치를 높이기만 하면 된다. 게임 개발 작업 흐름을 간소화할 수 있다. 실제 게임 개발 단계에서는 변경해야 할 게임 변수를 결정해 난이도를 변경하는 것이 게임 설계자의 몫이기 때문이다”라고 말했다.

트라첼과 페이로트의 설명 중 핵심은 게임 설계자의 몫이라는 사실이다. 기존 행동 트리는 복잡한 작업을 처리할 수 있어, 게임 설계자와 프로그래머, 그 외 다수 개발자가 행동을 적합하게 변경하기 위해 협력해야 한다. 머신러닝 모델을 약간 변경하는 것이 상대적으로 쉬운 일이며, 설계자가 행동 트리의 다양한 변수를 깊이 분석하지 않더라도 난이도 모델을 생성할 방법을 제공한다.
 
[사진=Unsplash]
[사진=Unsplash]

더 훌륭한 보스가 항상 더 지능적인 보스라는 뜻은 아니다
머신러닝 모델로 게임 속 잔혹한 적을 생성할 수 있다. IBM의 딥블루(Deep Blue)와 구글의 딥마인드 알파스타(DeepMind AlphaStar)가 입증한 바이기도 하다. 그러나 머신러닝 모델로 적을 생성하는 것이 항상 바람직한 것은 아니다. 난이도를 높일 뿐만 아니라 AI의 특수 전략 때문에 누구나 즐길 게임 실행 경험에 반하는 경험을 생성할 수 있기 때문이다.

트라첼과 페이로트는 ‘멀티 아웃풋 모델(multi-output model)’을 포함해 여러 가지 게임 모드에 AI를 활용하려 했다. 멀티 아웃풋 모델은 게임 속에서 공을 수집하면서 얻을 수 있는 점수를 파악한 뒤 플레이어의 점수를 예측한 뒤 점수를 제거한다. 트라첼과 페이로트는 “멀티 아웃풋 모델을 적용한 게임 모드에서 적이 공의 위치에 따라 기지를 생성한다. 재미있지도 않고, 사용자의 참여를 유도하기 어려운 게임 실행 조건이다. 따라서 멀티 아웃풋 모델로 생성한 게임 모드의 결과물을 보여주지 않았다”라고 말했다.

공의 위치에 기지를 생성하는 것은 확고한 전략이다. 플레이어는 게임에서 이기려면 공을 수집해야만 한다. 팩맨(Pac-Man)의 유령이 지도 속 모든 구석의 출입구 근처에 자리 잡지 않았다고 생각해보아라. 게임의 재미가 줄어들 것이다. 플레이어에게는 흥미로운 추적 게임 실행 경험을 선사하지 못할 것이다. 대신, AI가 예측할 수 없는 공격을 생성한다. 트라첼과 페이로트는 “초인간적인 봇을 개발해, 신규 플레이어의 재미와 게임 참여도를 저하하는 것을 목표로 하지 않는다. 머신러닝을 이미 게임 제작 단계에 활용한 게임 AI 툴에 통합하는 것이다”라고 밝혔다.

플레이어가 더 나은 AI를 원하게 돼, 흥미롭지 않은 것처럼 들릴 수 있다. 하지만 트라첼과 페이로트가 선보인 머신러닝 기법은 게임 마지막 단계에서 마주한 적에 머신러닝을 적용하지 않더라도 난이도를 변경하는 데 유용하다. 게임 개발용 AI 엔진 기업 Modl.ai 공동 창립자 겸 연구 총괄인 줄리안 토겔리우스(Julian Togelius)는 약 5년간 AI를 이용해 게임을 테스트했다. Modl.ai는 봇을 사용해 그래픽 결함을 추적하고는 기하학 세계의 결함을 찾는다. 그리고는 플레이어가 이길 수 없는 상황을 발견한다.

토겔리우스는 “사용자는 Modl.ai에 관심이 있는 실패 상태를 알려줄 수 있다. 그리고 사용자가 알려준 상태를 기반으로 게임을 실행한다. 작업을 요청하고, 탐험하고자 하는 수준에 따라 게임을 실행한다. 물론, AI 기반 게임 제공을 위해 소규모로 모이고는 보고 내용을 전달한 뒤 문제가 발생하기 시작한 지점과 같은 여러 정보를 제공할 수 있다”라고 설명했다.

Modl.ai의 테스트 봇은 머신러닝을 사용해 각각 테스트하는 게임에 맞추어 변경한다. 다만, 현재 구축된 머신러닝은 특정 타이틀별 조건 변경을 제한한다. 토겔리우스는 Modl.ai가 여러 게임에 걸쳐 봇의 행동을 훈련할 추가 딥러닝 모델 프로토타입을 개발 중이라고 밝혔다. 현재 프로토타입 개발 단계에 있는 딥러닝 모델을 사용하면, 봇이 실제 플레이어의 행동을 모방한다. 그리고 플레이어가 접할 수 있는 문제를 더 효율적으로 찾아낸다.

게임 엔진, 진정한 머신러닝 위해 혁신 필요하다
게임 난이도와 관련, 머신러닝은 문제를 일으키는 존재가 될 수도 있고, 반대로 해결책을 제시할 수도 있다. 하지만 게임에 머신러닝을 사용하고자 하는 개발자가 직면하는 유일한 장벽은 공정하면서 재미있는 게임 개발뿐만이 아니다. 더 깊은 부분에서 문제가 발생한다. 사실, 개발자는 더 깊은 영역까지 게임 개발 방식을 재고할 수밖에 없을 것이다.

개발자가 직면하는 장벽 중 하나로 성능을 언급할 수 있다. 가치 있는 결과물을 얻으려면, 다량의 데이터 훈련 과정을 거친 머신러닝이 필요하다. 그리고 훈련 데이터는 수만 번 혹은 수십만 번 게임을 실행한 뒤에만 얻을 수 있다. (트라첼과 페이로트는 직접 공개한 데모 단계에 개발한 봇으로 머신러닝 데이터 훈련 과정의 부담을 덜 수 있다고 언급했다.) 훈련 데이터 수집 후 결과물로 생성한 모델이 실시간 작업 처리 시 어려움이 발생할 수 있다.

트라첼과 페이로트는 이메일을 통해 “머신러닝을 이용한 게임 개발 시 성능이 문제가 된다는 점은 분명한 사실이다. 특히, 각각의 게임 개발 시간 측면에서 대규모 머신러닝 모델을 활용할 때, 완벽한 성능을 구현하기 어렵다. 이에, 성능 문제를 피하려 게임 속 정확한 순간에만 개입하는 소규모 신경망을 활용했다”라고 밝혔다. 오늘날 게임 플레이어가 기대하는 바와 같이 광범위한 개방 환경으로 규모를 확장하는 일은 전혀 다른 문제이다.

토겔리우스는 현재 게임 엔진이 성능 문제를 악화하는 방식으로 작동한다고 주장했다. 그는 “게임 엔진이 성능 향상을 위해 개발된 것이 아니므로 속도 저하 문제를 일으킬 것이다. 게임 속 흥미로운 최신 개발 AI를 발견하지 못하는 이유 중 하나는 언리얼과 유니티(Unity), 그리고 기본적으로 형편없는 AI 때문이다. 여러모로 AI를 반대한다고 볼 수 있다”라고 설명했다.

또 다른 문제로 애니메이션을 언급할 수 있다. 대다수 최신 게임 엔진에는 애니메이션을 프레임별로 엄격하게 정의할 것을 기대한다. 애니메이션 제작자가 게임 캐릭터의 행동 방식을 정확히 알 때는 훌륭한 애니메이션 제작이 가능하다. 그러나 머신러닝을 이용해 AI로 통제한다면, 애니메이션 제작자가 기대한 것과는 다른 결과물을 생성할 수 있다. 애니메이션을 집중하여 다루는 게임 설계자는 애니메이션에 물리 기반 접근 방식으로 접근하면서 문제를 피할 수 있다. 그러나 게임 콘솔이나 컴퓨터 하드웨어 등에는 더 심각한 성능 문제를 일으키면서 게임 개발의 어려움이 발생한다.

한마디로 말하자면, 개발자는 게임 개발 과정에서 스스로 일으킨 문제를 직면하게 된다. 게임 엔진은 행동 트리를 이용하도록 설계되었으며, 게임 실행 조건이 최적화되지 않은 하드웨어에서도 훌륭한 성능을 지원하도록 AI가 통제하는 NPC 세계를 형성하는 행동을 사전에 작성한다. 그러나 머신러닝 활용 사례가 갈수록 흔해지는 가운데, 기존 해결책을 재고할 필요가 있다.

토겔리우스는 “게임 설계 지식이 전혀 없는 머신러닝 연구원과 이야기한다면, 새로운 요소를 이용해 생동감이 넘치면서 게임 실행 상황에 맞추어 변하는 NPC를 생성하면 된다는 의견을 제시할 것이다. 그러나 기존 게임에 연결하지 못할 수도 있다. 결국, 게임 자체를 다시 생각하게 될 것이다”라고 말했다.

** 위 기사는 와이어드US(WIRED.com)에 게재된 것을 와이어드코리아(WIRED.kr)가 번역한 것입니다. (번역 : 고다솔 에디터)

<기사원문>
Machine Learning Could Create the Perfect Game Bosses
이 기사를 공유합니다
RECOMMENDED