아무리 재미있는 게임이라도 똑같은 게임을 여러번 즐기면 질리게 되어 재미를 잃게 된다. 이 문제를 해결하기 위해 게임 제작자들은 매번 다른 경험을 할 수 있는 게임을 만드는 방법을 연구해왔고, 흔히 이를 Procedural Content Generation(PCG)이라고 한다. AI 기술의 발전은 PCG에 있어서도 기술의 발전을 예고하고 있으며, 강화학습을 접목하여 PCGRL이 탄생하기도 하였다. 또한 ChatGPT, Stable Diffusion 등 생성 AI의 등장은 AI-based Content Generation의 발전을 더욱 촉발할 것으로 예상된다. 만약 당신이 게임 콘텐츠 자동 생성에 관심이 있다면, 이 논문은 그 접근 방법과 이슈들을 알려줄 것이다.
제목: [2018] Orchestrating Game Generation
출처: IEEE Transactions on Games (You can google it!)
주요 내용 및 평가
이 논문은 새로운 방법론을 제시하는 논문이라기 보다 Game Content Generation이라는 분야를 체계적으로 정리한 서베이 페이퍼로 볼 수 있다. 이 논문은 Game Content의 구성 요소와 자동 생성 방법론, 그리고 각 구성 요소의 자동 생성 사례 및 이들을 Orchestration한 사례를 보여주고 있다. 특히 Content의 Orchestration을 합주로 비유하여 이해를 돕고 있는 점이 인상 깊다.
Game Content의 구성요소(game facets)는 Audio, Visual, Narrative, Level, Rule, Gameplay가 있다. Audio와 Visual은 말 그대로 게임을 표현하는 청각적, 시각적 표현을 의미하고, Narrative는 게임의 흐름, 스토리를 의미하며, Level은 플레이의 대상이 되는 환경(맵, NPC 등으로 구성)을 의미한다. Rule은 게임 세계가 작동하는 방식, 즉 dynamics를 의미하며, 플레이어의 조작에 해당하는 mechanics를 포함한다. Gameplay는 게임을 플레이하는 "사용자 경험"을 의미한다. 사용자 경험은 게임내 다른 Content에 의해 결정되기도 하지만, 개개인의 성향, 배경, 게임 외부 환경(커뮤니티 등)에 의해 달라지기도 한다. 이를 미리 확인하고 최적화하기 위해 automated playtesting이 필요하며 AI Agent가 할 수 있는 역할이기도 하다.
이 논문에서 중요하게 다루는 내용은 Orchestration Process이다. 즉, 6가지 요소를 어떤 방식으로 조합할 것인지이다. 이 부분을 이 논문은 합주와 소프트웨어 개발 프로세스에 빗대어서 설명하고 있다. Orchestration Process는 Top-down, Bottom-up, Hybrid로 구분된다. Top-down은 소프트웨어 개발의 Waterfall process처럼, 악기 합주를 작곡가가 작곡한 악보에 따라 하는 것처럼, 상위의 관리자가 전체 생성 방식을 정하면 각 요소를 담당하는 Generator가 지시에 맞추어 순차적으로 생성하는 것이다. Botton-up은 사전에 합의된 지시(악보) 없이 각 Generator가 담당한 요소를 생성하고, 다른 요소와 조화를 이루도록 각자 맞춰가는 방식이다. Hybrid는 이를 절충한 방식으로 생각하면 된다. 정해진 답은 없지만, 결국 어떤 방식이든 제대로 Orchestration이 되었는지 측정하는 기능이 필요하며, 각각의 Generator가 측정하기 보다는 중앙에서 이를 측정하여 수정 지시를 내리는 방식이 적절하다고 생각된다. 즉, Top-down이나 Hybrid가 실전에 있어 바람직한 접근 방법이 될 것이다. 이 대목에서 간파하였겠지만, 콘텐츠 생성에서 "컨텐츠의 품질 평가"는 매우 중요하고 가장 어려운 기능이다. Content Generator를 연구한다면 이 문제를 최우선적으로 고려하여야 할 것이다.
이 논문은 수많은 사례를 통해 콘텐츠의 어떤 요소들이 생성될 수 있고, 어떻게 Orchestration 될 수 있는지 보여 주고 있다. 이 논문에서 보여주는 사례들은 AI-based Content Generator를 만들고자 하는 이들에게 많은 영감을 줄 수 있을 것이다.
기타 참고 사항
6가지 구성 요소는 그 경계의 구분이 모호하기도 하고, 때로는 두가지 이상의 요소가 깊게 결합되거나 의존적인 경우도 많다. 따라서 하나의 구성요소를 생성 혹은 변경하면 그에 따라 다른 구성 요소도 변경해 줘야 최적의 콘텐츠가 생성될 수 있으며, 이로 인해 Orchestration이 중요해 진다.
6가지 구성 요소가 자동 생성 또는 Manage의 대상이므로 단순히 Map 생성 정도에만 Game Content Generation을 생각하지 말고 생각의 지평을 넓혀서 고민해 보시길 권한다.
Gameplay 관리를 고려할 때는 Personalization을 잊지 말아야 한다. 같은 컨텐츠라도 사람마다 느끼는 것이 다르므로 플레이어의 피드백을 캐치하여 몰입을 유지할 수 있도록 콘텐츠를 지속적으로 변화 시켜야 한다.
집단 지성에 의해 생성되는 콘텐츠, 외부 데이터(뉴스, 검색 데이터)에 의해 변화하는 컨텐츠 생성 아이디어는 매우 흥미롭다. 세련된 기획과 맞물리면 매번 변화하는 컨텐츠를 즐길 수 있는 방법이라고 생각한다.
생성된 콘텐츠의 품질 평가의 난이도를 감안해, 사람과 함께 생성하는 Framework도 고려해볼 가치가 있다. 특히 심미적인 요소가 중요하다면 자동화된 평가는 매우 어려울 수 있기 때문이다. 경우에 따라 AI Generator와 사람의 협업 자체가 게임 컨텐츠가 될 수 있을 것이다.
Bottom-up 방식 채용시 품질 평가의 어려움을 회피하는 방법 중 하나는 Generator에 제약 조건을 거능 것이다. 어지간하면 다른 요소와 잘 어우러질 수 있도록 제약 조건을 걸면 각 Generator가 다른 Generator의 생성 결과를 신경쓰지 않을 수 있다. 생성된 콘텐츠가 단조로와 질 수 있다는 점은 약점.
생성된 콘텐츠의 Post-process(Repair로 칭함)도 콘텐츠 생성에 있어 중요하다. 즉, 생성된 콘텐츠가 플레이 불가능하거나 요구조건을 충족시키지 못하면 후처리 필터링을 통해 이를 교정해 주어야 한다.