너무 뛰어난 성능 안 돼, ‘재미’있어야
게임 인공지능 경진대회 등으로 연구 동기 자극
여러분이 게임을 하는 상황을 생각해 보자. 예를 들어, 오목을 두는 경우를 생각해 보자. 여러분 차례에서 둘 수 있는 자리가 몇 군데 있을 것이다. 그 중에서 가장 좋은 곳이 어딜까 고민한 후에 최종 결정을 내릴 것이다. 초보자의 경우에는 현재 놓여 있는 돌들만 바라보고 판단을 내릴 것이고, 조금 잘 두는 사람이라면, 한 수 앞이나 두 수 앞 정도를 미리 내다보고 결정을 내릴 것이다. 고수라면 적어도 몇 수 앞을 내다보고 결정을 내릴 수 있을 것이다. 머릿속으로 내가 여기에 두면, 상대는 어디에 두고, 그럼 어떻게 될까? 이런 식으로 몇 수 앞을 내다보는 방식이다. 컴퓨터도 유사한 방법을 사용한다. 다만 차이점이라면, 사람의 경우 가능성 높은 몇 개(보통 2~3개 정도)만 집중적으로 깊이 있게 생각한다면, 컴퓨터의 경우, 사람이라면 고려하지 않을 의미 없는 경우를 포함한 모든 가능성에 대해 몇 수 앞을 내다보는 과정을 거친다.
예를 들어 바둑은 현재 널리 사용하고 있는 탐색기반 기술로는 해결이 불가능해 보인다. 다른 보드 게임들과 달리 현재 컴퓨터 프로그램의 수준과 전문 선수들의 실력차이가 큰 상황이다. 이러한 문제의 원인은 바둑의 경우의 수가 다른 게임과 비교할 수 없을 정도로 크기 때문이다. 바둑은 19X19 보드 판에서 이루어지며, 이는 무수히 많은 경우의 수를 만들어 낸다. 단 몇 수 앞만 고려해 본다고 해도, 경우의 수는 기하급수적으로 증가하기 때문에, 모든 경우의 수를 평가하는 것을 근간으로 하는 기존의 방법으로는 해결이 어렵다. 바둑의 경우 돌들이 놓인 모양이나 패턴이 중요하기 때문에, 이를 인식하고 활용하려는 연구가 진행 중이다.
사람이 게임을 하는 이유는 재미 때문이다. 즉, 재미있으려고 하는 것이지 자기보다 훨씬 잘 하는 컴퓨터와 게임을 하고 싶어 하지는 않는다. 사람은 때론 실수를 하거나 좀 약하더라도 자신과 재미있게 게임을 하는 프로그램을 더 선호할 것이다. 여기에서 어떻게 하면 사람들이 컴퓨터와 게임을 하면서 보다 재미를 느낄 수 있을까라는 어려운 문제가 등장하였다. 단순히 게임을 잘하고 못하고를 떠나서 상대방의 수준을 파악하는 일, 사람처럼 게임을 하는 것 등에 대한 연구가 필요하다. 대표적으로, 포커와 같은 게임은 서로가 어떤 카드를 가지고 있는지 불확실한 상황에서 돈을 걸면서 진행하기 때문에 상대가 허풍을 잘 떠는지 아닌지와 같은 성향을 파악하는 것이 매우 중요하다.
현재의 게임 인공지능을 만드는 방식은 사람이 게임을 배워 나가는 과정과는 매우 다르다. 사람은 게임의 규칙을 이해한 이후에 스스로 또는 다른 사람과 게임을 하면서 자신의 실력을 늘려 나간다. 처음에는 실력이 낮더라도 반복적인 연습을 통해 실력을 점점 향상하는 방식이다. 게임 인공지능 분야에서도 컴퓨터공학의 기계학습 기술을 토대로 전략을 학습하려는 시도가 이루어지고 있다. 컴퓨터가 자신 또는 다른 프로그램과 게임을 지속적으로 하면서 경기의 결과(승/패/무승부)를 토대로 자신의 전략을 수정해 나가는 방식이다.
미국 Natural Selection Inc.의 데이빗 포겔 박사는 자연계 진화 현상을 모방한 “진화 연산”을 이용하여 컴퓨터가 스스로 체커게임을 잘 두도록 만들었다. 처음에 컴퓨터는 임의로 15개의 체커 전략을 만들어낸다. 아무런 지식 없이 임의로 만들어 내었기 때문에 당연히 체커를 엉망으로 둔다. 그리고 각 전략은 자신과 유사하지만 조금 다른 전략 15개를(마치 자연계의 돌연변이처럼) 만들어낸다. 30개의 전략들은 서로 경기를 가지며, 경기 결과에 따라 평가점수를 부여받는다. 성적이 좋은 15개의 전략이 선택되고, 이들을 대상으로 앞에서와 동일하게 새로운 전략 15개를 돌연변이를 통해 만들어낸다. 연구자들에 따르면, 앞의 평가겮궈횁돌연변이를 250번 반복하여 나온 전략이 www.zone.com에서 마스터 수준의 체커 플레이어와 상대해서 승리하였다고 한다. 흥미로운 점은 데이빗 포겔 박사는 체커 초보라는 점이다.
연구자들이 생각하는 게임 인공지능과 게임회사에서 생각하는 그것과는 차이가 있을 수 있다. 게임 회사의 경우 게임의 상업성이 중요하기 때문에, 마케팅 측면에서 중요한 부분에 많은 자원을 투자한다. 현재까지는 화려한 3차원 그래픽, 게임의 재미요소, 완성도, 게임의 세계관 등을 중시해 왔다. 이러한 부분들이 만족된 상태에서 여유자원을 게임 인공지능에 투자하는 형태라고 볼 수 있다. 하지만, 기술의 발전으로 그래픽적인 부분에서 큰 차이를 두기가 점점 어려워지고 있고, 고급 인공지능 기술을 구현할 만큼 컴퓨팅 자원도 많이 늘어난 상황이라, 인공지능 기술의 활용에 대한 가능성이 점점 커지고 있다.
게임 회사들이 게임 인공지능을 구현할 때 가장 중요하게 고려하는 것은 “재미”이다. 그렇기 때문에, 인공지능 기술을 최대한 활용하여 이상적이고 최적의 행동을 보이는 캐릭터를 만드는 것을 목표로 하진 않는다. 대신 사용자가 게임에 몰입하고 사실적으로 느끼며, 게임을 하면서 재미를 느낄 수 있도록 도움을 주는 정도의 기술개발을 목표로 한다. 예를 들어 Unreal Tournament에서 컴퓨터 프로그램은 실수 없이 완벽한 조준 및 사격을 매우 빠르게 할 수 있지만 이를 그대로 구현한다면, 사용자는 게임에 흥미를 잃을 것이다.
오늘 하고 있는 게임을 잠시 멈추고 다음과 같은 생각을 해보도록 하자. 만약 여러분이라면 어떤 형태의 게임 인공지능을 만들겠는가? 컴퓨터가 나만큼 게임을 하도록 만들 수 있을까? 컴퓨터가 내 실력에 맞춰서 플레이하면서 나를 즐겁게 해 줄 수 있을까? 게임 중독에 빠지지 않도록 컴퓨터가 지능적으로 게임을 조정할 수 있을까? 아직 해결되지 않은 다양한 주제들이 젊은 연구자 및 개발자의 창의적인 아이디어를 요구하고 있다.