▲ 율리안 토겔리우스(Julian Togelius) Modl.ai 리서치 디렉터

게임업계는 일찍이 어느 산업보다 AI를 빠르게, 다양한 곳에서 활용해 왔지만, 이제 콘텐츠를 생성하는 단계까지 온 AI 기술을 통해 더 많은 것을 기대할 수 있게 됐다. 그만큼 거의 모든 산업에서 각광받고 있는 AI 화두는 이번 게임 개발자 회의에서도 뜨거운 감자일 수밖에 없었다.

60개가 넘는 AI 관련 강연은 물론, 강연장마다 한 명씩은 꼭 Q&A 시간에 생성형 AI에 대한 질문을 던진다. 아무것도 모르는 이들에게 AI는 직업을 잃게 하는 공포스러운 존재처럼 보일 수 있지만, 개발자들에게는 그렇지 않았다. 오히려 지금의 작업을 어떤 식으로든 더욱 쉽고 빠르게 해결해 주는 도구라고 여기는 시선이 주를 이뤘다고 할까.

Modl.ai에서 연구진을 이끌고 있는 율리안 토겔리우스(Julian Togelius) 교수는 이번 GDC를 통해 '레벨 디자인'에 생성형 AI의 도움을 받을 수 있을지 연구한 결과를 소개했다. 텍스트로 된 프롬프트만 입력해 게임의 바탕이 되는 레벨을 뚝딱 만들 수 있다면, 게임 개발의 진입 장벽은 또 한 단계 낮아지는 결과로 이어지지 않을까? 하지만, 레벨 디자인이란 것은 생각보다도 더욱 복잡한 것이었고, 웬만한 접근으로는 생성형 AI에게 이를 모두 맡기는 것이 쉽지 않았다.

▲ 다짜고짜 만들어달라고 하면 챗 GPT도 당황한다구

하지만, 토겔리우스 교수는 "AI의 강점과 취약점만 제대로 이해할 수 있다면 여러 가지 접근을 통해 기존의 작업을 획기적으로 단축할 수 있을 것으로 본다"며 대규모 언어 모델(LLM)을 활용한 레벨 디자인 연구의 성과를 이야기해 나갔다.

강연을 시작하며, 토겔리우스 교수는 오픈AI의 대규모 언어 모델, 챗 GPT에게 레벨을 디자인해 보라고 주문한 사례를 먼저 소개했다. 아주 간단한, "소코반 레벨을 만들어 줘"라는 주문이었다. '소코반'은 상자를 밀어 특정 타일까지 밀어야 하는, 아주 기본적이면서도 클래식한 퍼즐 게임이다.

먼저, 챗 GPT에게 소코반 레벨을 소개하면 GPT는 이를 보고 어떤 문자가 벽을 의미하고, 어떤 기호가 상자를 의미하는지를 빠르게 습득하는 모습을 보여준다. 그러나, 직접 레벨을 제작해보라는 주문을 해 보면 정상적으로 게임을 할 수 있는 결과물은 나오지 않았다. 상자는 하나인데, 목적지는 2개가 표시되어 있거나 하는 식이다.

토겔리우스 교수는 대규모 언어 모델이 웹 수준의 방대한 지식을 동원해 명령어를 추론하는 데는 매우 높은 성능을 보이나, 무언가의 숫자를 세거나 길을 찾는 등에서는 대단히 취약한 모습을 보인다고 전했다. 물론 이들 AI를 훈련하는 방향에 따라 다르겠지만, 대중을 상정하고 훈련된 AI를 통해 레벨을 디자인하는 것은 매우 어려운 접근 방식이다.

▲ 그러나 LLM을 활용해 레벨을 제작하는 여러 대안을 찾아볼 수는 있다

이러한 LLM의 단점을 토대로, 토겔리우스 교수는 레벨 디자인 과정에서 대규모 언어 모델을 활용하는 예시를 몇 가지 공유했다. 그 첫 번째는 레벨을 파인튜닝하는 데 사용하는 것이다.

상당히 직관적으로 대규모 언어 모델을 레벨 디자인에 활용하는 사례로, 이를 사용하는 사람이 레벨 디자인이라는 목적에 맞게 LLM을 훈련 시킨 뒤 특정 상황에 따라 파라미터를 세밀하게 조정하는 방식이다. 소코반을 예로 들면, 맵 전체에 비어 있는 타일의 갯수나 정답을 완성하는 데 걸리는 솔루션의 길이 등을 프롬프트에 넣어 레벨을 제작하는 것으로 꽤나 유의미한 결과를 얻을 수 있었다는 것이 토겔리우스 교수의 설명이다.

하지만, 이러한 파인 튜닝 방식에는 단점이 있었는데, LLM의 모델에 따라 학습에 필요한 레벨의 수가 많게는 수천 개에 달한다는 것이었다. 토겔리우스 교수는 "AI에게 학습시킬 수 있는 수천 개의 레벨이 이미 준비되어 있다면, AI더러 레벨을 제작하라고 필요가 있을까" 라고 농담을 던진 뒤 '부트스트래핑' 사례를 설명했다.

부트스트래핑(Bootstraping)이란, LLM에게 여러 차례 다른 레벨을 훈련시킨 뒤, 결과값 중 '가장 플레이 가능한 레벨'에 가까운 결과들을 모아 이를 다시 훈련시키는 과정을 의미한다. 토겔리우스의 연구진 중 한 명이 개발한 헤비 메탈 로그라이트 게임 '메타보이달(Metavoidal)'에 이러한 과정이 적용되었다고 전한다.

▲ 쓸만하게 파인 튜닝된 결과물을 모아 다시 훈련을 반복시키는 '부트스트래핑'을 거치면

▲ 더 낫지는 않지만, 웬만큼 쓸만한 레벨이 만들어지기도 한다고

연구는 메타보이달의 기본 데이터셋에 포함된 60여 개의 레벨을 토대로 '프롬프트'를 작성한 뒤, 몇몇 구성 요소들이 반복적으로 훈련하는 것으로 진행됐다. 그렇게 구현된 AI가 만든 레벨은 게임의 테마와 비슷한 주변 환경을 갖추거나, 오리지널 레벨과 유사한 수준에서 플레이가 가능했다. 하지만, 토대가 된 기존 레벨보다 '나아질 수는 없었다'는 한계를 갖는다.

토겔리우스 교수가 설명한 세 번째 접근 방법은 레벨 디자인을 하는 '모든 과정이 LLM일 필요는 없다'는 명제에서 시작한다. 우리가 궁극적으로 원하는 것은 대규모 언어 모델을 활용한다는 것이 중요한 게 아니라, 텍스트를 기반으로 하는 레벨 생성을 바라는 것이기 때문입니다. 따라서 아웃풋은 다른 형태를 취할 수도 있다는 것이 세 번째 접근 방향의 특징이라고 할 수 있다.

이것에 바탕이 된 것은 2023년 논문으로 공개된 '5달러 모델'이다. 문장 임베딩(자연어를 기계가 이해할 수 있도록 숫자형태인 vector로 바꾸는 과정 혹은 일련의 전체 과정)으로부터 게임 맵과 스프라이트를 생성하는 것으로, 훈련이 상대적으로 빠르고, 가볍다는 특징을 같은다. 그러나 제한적인 타일셋만을 활용한다는 단점이 있기 때문에 더욱 복잡한 타일셋을 필요로 할 경우에는 추가적인 튜닝이 필요하다. 지난 23년 개발자 샤암 수드하카란이 공개한 마리오 GPT도 이러한 종류로 볼 수 있다. 프롬프트가 단순하기 때문에 디테일한 요소를 맵에 추가하는 것은 힘들지만 말이다.

▲ 바다에 떠 있는 돌로 된 섬 맵을 만들어 줘

▲ 짜잔!

제너레이터 증류 방법(distilling generator)에 대한도 설명도 있었다. 거대한 신경망을 좀 더 빠르고, 사용자가 컨트롤하기 용이한 작은 신경망으로 변환하는 방법이다. 이미 존재하는 좋은 성능의 레벨 생성기를 왜 굳이 증류하는 과정을 거치는지에 대한 의문이 생길 수 있지만, 이를 통해 창작자가 더 많은 컨트롤 권한을 갖게 할 수 있다는 것이 토겔리우스 교수의 설명이다.

마지막으로 토겔리우스 교수가 제안한, 그리고 현재 연구가 진행중인 분야는 세계관과 스토리를 함께 생성해내는 레벨 디자인 방식이다. 단순히 레벨만을 만드는 것이 아니라, 레벨의 배경이 될 스토리와 캐릭터, 그에 부합하는 타일셋 등을 순차적으로 생성해내는 것이다. 이후에 작성된 세계관에 맞는 공간과 레벨을 생성하는 하나의 거대한 파이프라인을 개발하는 것이 그의 연구 과제 중 하나다.

물론 이 과정은 아직 험난한 관문이 많이 남아 있다. 길찾기와 오브젝트 갯수를 세는 데 취약점을 가진 대규모 언어 모델을 바탕으로 하기에 손도 많이 간다. 하지만, 토겔리우스 교수와 연구진들은 그 속에서 게임을 구성하는 거의 대부분의 요소를 '텍스트' 와 관련하게 만드는 일종의 실마리를 찾아낸 셈이다.

이날 그의 설명은 텍스트 기반 레벨 디자인은 그렇게 크지 않은 규모(50x 50정도의 타일셋)의 레벨을 중점적으로 했다. 만약 그 규모가 스카이림 정도가 된다면, 오늘 설명한 방식으로 레벨을 만든다는 것이 불가능에 가깝게 느껴질 지도 모른다. 하지만, AI가 눈에 띄게 발전하고 있는 만큼, 언젠가는 또 다시 신선한 충격을 선사할 것이 분명해 보인다.

▲ 연구진의 목표 중 하나는 스토리부터 캐릭터, 레벨에 이르는 모든 과정을 대규모 언어 모델로 구현하는 것이다