![](https://static.inven.co.kr/column/2024/03/21/news/i8257351816.jpg)
유니티는 최근 '유니티 뮤즈', '유니티 센티스' 등 AI를 활용해 게임 개발 전반의 효율을 높이는 방안을 발표해왔다. 작년 AI 솔루션을 첫 공개한 이후, 이번 GDC에서도 해당 솔루션과 관련된 강연들을 배정하면서 그 발전사와 앞으로의 방향성에 대해 언급했다.
이러한 기능들은 그냥 말만 하면 원하는 그림이나 애셋을 뚝딱 만들어주는 도깨비방망이처럼 여겨질지 모른다. 그러나 실제로 생성형 AI로 처음 그림을 그리거나 할 때 원하는 결과물이 바로 나오는 일은 드물다. AI가 인간에게 바둑을 이기고 사람이 상상도 하지 못하는 속도로 작업을 하지만, 그것이 속내까지 다 파악한다거나 현재 기계에 적용되고 있는 로직을 100% 뛰어넘는다는 것은 아니기 때문이다.
그렇다면 게임 개발에서 AI를 활용할 때 원하는 결과물을 얻으려면 어떻게 접근해야 할까, 유니티의 트레버 산타라 선임 리서치 엔지니어와 피에르-아르쥰 달라야 선임 소프트웨어 엔지니어는 유니티의 기능 이전에 현재 개발에 사용되고 있는 AI들의 기초, 이를 활용한 창작법에 대해서 언급했다.
![](https://static.inven.co.kr/column/2024/03/21/news/i8236432527.jpg)
통상 애셋을 바로 생성해주는 '생성형 AI'가 일반인들에게 가장 눈에 띄지만, 사람의 자연어를 기계에 맞춰서 코딩으로 변환해주는 언어 모델이나 그 모델을 기반으로 알맞는 행동과 조건을 지시하는 비헤이비어 트리까지 그 폭은 넓다. 심지어 개발자들 사이에서는 아직 AI의 가능성을 빙산의 일각만 사용하고 있으며, 기술이 더 발전하면 그 폭이 무궁무진할 것이라는 이야기도 있다고 덧붙였다.
그러나 이는 어디까지나 '미래'의 일이고, 현 단계에서는 그 빙산이 다 드러나기는 이른 상황이라고 강조했다. 결국 현재 AI를 잘 활용하기 위해서는 그 AI가 지시하는 '기계'가 이해할 수 있는 방향으로 접근해야 하며, 그 방식에 대해 시연을 통해 설명했다.
시연에서 두 엔지니어는 원숭이가 발판 위에 있는 바나나를 스스로 찾아서 먹고, 발판에서 떨어지지 않게 이동해서 맵 내에 있는 모든 바나나를 먹는 게임을 예고했다. 그리고 이 동작이 이루어지기 위해서 어떤 것을 지시해주고 지정해줘야 할지 되묻는 한편, 그 말을 '누구'에게 전달하면 그 행동을 '누가'하는 것인지 생각해보라고 설명했다.
![](https://static.inven.co.kr/column/2024/03/21/news/i8203904425.jpg)
![](https://static.inven.co.kr/column/2024/03/21/news/i8265956584.jpg)
![](https://static.inven.co.kr/column/2024/03/21/news/i8226760230.jpg)
![](https://static.inven.co.kr/column/2024/03/21/news/i8285280261.jpg)
여기에서 게임 개발의 오랜 격언, '기계는 주어진 명령을 그대로만 따른다'가 소개됐다. 무언가 빠진 것들을 LLM 등으로 문맥을 찾아서 공백이나 어긋난 것을 보완하지만, 즉 최종적으로 그 행동을 플레이하는 엔진에 자신이 원하는 그 안이 세세하게 전달되지 않으면 원하는 대로 움직일 수 없게 된다.
앞의 바나나 게임의 사례에서는 통상의 개발 과정에서는 바나나가 있는 방향에 대한 정보, 바나나와 물리적 충돌을 했을 때 어떤 반응이 있으며, 그 다음에 다른 바나나를 찾으라는 지시 등등 세부 사항을 코드나 노드, 비헤이비어 트리로 일일이 구현해야 했다. 자연히 벡터3, 디스턴스, 오브젝트 등 기본 개념을 이해하고 활용할 수 있어야 하지만, 그 부분 역시도 LLM 그리고 강화 학습으로 현재 보완이 되고 있다. 다만 '쿼터만큼 돌아라'라는 모호한 표현은 일반적으로는 여러 차례 이터레이션을 반복해야 원하는 결과를 얻거나, 혹은 모델에 따라서는 만족스러운 결과물을 끝내 못 얻을 여지가 있다.
이 문장을 활용해 구현한 비헤이비어 트리를 구동하기에 앞서, 객석에서는 이 단계조차 완벽하지 않다는 말이 곳곳에서 나왔다. 실제로 이 단계에서는 '점프할 때는 어느 정도의 속도로', '바나나를 먹은 뒤 어느 정도의 텀을 두고 다음 행동을 할지' 등이 빠져있다. 이 부분까지 LLM으로 처리하는 방법도 있겠지만, 현재로서는 그 모든 상황을 상정해서 AI 모델을 구축하는 것은 어렵고 굉장히 비효율적이다.
그래서 유니티에서는 프롬프트로 작성한 결과물에 변수를 입력하거나 대상을 지정하는 블랙보드를 지원하며, 여기에 LLM로 문장의 각 구성 요소를 파악, 각각 어떤 의미로 사용됐나 분석하거나 모호한 부분은 유저가 직접 지시할 수 있게끔 했다.
![](https://static.inven.co.kr/column/2024/03/21/news/i8230160443.jpg)
![](https://static.inven.co.kr/column/2024/03/21/news/i8210293116.jpg)
![](https://static.inven.co.kr/column/2024/03/21/news/i8230274537.jpg)
그렇다 해도 석연치 않은 부분들이 아직 남아있다. 예를 들어서 '적이 대상을 향해 걷는다'와 '적이 대상을 향해 이동한다' 두 문장은 분명 늬앙스 차이가 있지만, 문장 및 전후좌우 맥락까지 정교하게 파악하는 AI 모델이 아니면 이 차이를 기계가 받아들이지는 못한다. 어떤 기준으로 '이동'과 '걷기'를 구분해야 사전에 미리 정의된 것이 필요하기 때문이다.
이 한계를 극복하기 위해서 강화학습 등으로 조금 더 발전된 AI 모델이나, 인공신경망으로 다른 AI 모델과 연결하는 등 다양한 방안이 언급되고 있다. 그러나 맨땅에서 처음부터 개발하는 입장이거나 혹은 엔진 및 프로그래밍과 관련 없는 분야에 있었다면 발전된 AI 모델이 무엇이고 인공신경망이나 강화학습 같은 개념까지 확인하기가 쉽지만은 않다. 앞으로는 의사 결정 트리나 로직 프로그래밍 등 더 다양한 가능성을 보여주겠지만, 그 전까지 AI를 활용하는 과정에서 기초적인 문법과 구조를 익히면 더 쉽게 원하는 결과물을 얻을 것이라고 조언했다.
![](https://static.inven.co.kr/column/2024/03/21/news/i8254211329.jpg)
![](https://static.inven.co.kr/column/2024/03/21/news/i8283580061.jpg)