▲(좌) 신승백 프로그래머 (우) 구지은 디자이너

[강연자 소개] 신승백 강연자는 매버릭 게임즈에서 기계 학습을 사용한 게임 콘텐츠 생성을 연구 개발 중인 프로그래머로, 과거 엔씨소프트와 바닐라브리즈 등에서 3D 게임 엔진과 크로스 플랫폼 모바일 게임 엔진을 개발한 이력이 있다.

보통 게임에는 보이지 않는 끝이 있다. 그 끝은 스토리일 수도 있으며, 때로는 콘텐츠일 수도 있다. 플레이어가 더 이상 즐길거리가 없거나, 즐길 의향이 없을 때 게임은 암묵적인 끝을 맞이한다.

그렇다면 '끝나지 않는 게임'은 없을까? 이 질문에 국내 스타트업 매버릭 게임즈는 '신경망'이라는 단어로 답했다. 딥러닝을 통해 자동으로 창조되는 세계 속에서 무한히 놀 수 있는 게임을, 그들은 꿈꾸고 있다.

신경망을 이용한 게임은 이미 역사에 몇 번 모습을 드러낸 바 있다. 과거 1980년작 로그라이크 장르의 시초가 된 ‘로그(Rogue)’가 그 대표적인 예다. 이 외에도 최근 로그라이크 장르에서 두각을 나타낸 스펠렁키(spelunky) 역시 유명하다.


만약 이러한 로그라이크 장르에 확률적 요소를 잔뜩 추가하면 어떻게 될까? 신승백 프로그래머는 ‘노맨즈 스카이’를 그 대표적인 예로 꼽았다. 노맨즈 스카이는 ‘누구도 도달해본 적 없는 행성을 탐험한다’는 컨셉에 맞게 10의 19승 가량의 경우의 수가 존재한다. 이는 1분에 하나씩 행성을 살펴봐도 10조년가량이 걸리는 수치다.

문제는 다양성의 부족이었다. 경우의 수는 많았지만, 막상 착륙해서 보면 즐길 수 있는 콘텐츠가 비슷하다는 문제가 고질적으로 남았다. 이렇듯 로그라이크 게임에는 전통적인 문제점이 있다. 하나는 알고리즘으로 스테이지가 자동생성이 된다해도, 그 알고리즘을 개발자가 직접 만들어야 한다는 점. 또 하나는 결과에 대한 평가가 어렵다는 점이다.

▲ 입력 - 출력의 간단한 함수

이러한 문제를 해결하기 매버릭 게임스가 꺼내든 카드는 신경망이었다. 신경망은 특정한 입력을 출력으로 바꿔주는 일종의 함수로 볼 수 있다. 수학적으로 어떤 함수든 모방할 수 있다는 게 증명되어있으며, 구조와 데이터만 주어지면 자동으로 값을 찾아내는 편리한 기능을 갖추고 있다.

그렇다면 신경망은 게임의 ‘레벨’도 이해할 수 있을까? 몇년 전, 전 세계를 들썩이게 만든 알파고가 그 증인이다. 바둑은 10의 71승에 해당되는 경우의 수를 지니고 있다. 이는 노맨즈 스카이를 한참 넘어서는 수치로, 컴퓨터가 바둑으로 인간을 이기는 게 불가능하다고 여겨진 원인이기도 하다. 하지만, 알파고는 프로 바둑기사들을 차례로 이겨나가며 그 편견을 보란듯이 깨부쉈다.

알파고가 갖춘 강함의 비결은 바로 신경망이다. 앞서 말했듯 신경망은 특정한 입력값을 특정한 출력값으로 바꿔준다. 알파고의 입력값은 ‘현재 바둑판의 이미지’, 그리고 출력값은 ‘다음 수'가 된다.

▲ 알파고 승리의 비결

신승백 프로그래머는 자사가 개발중인 판타지 레이더스가 바둑과 유사한 측면을 갖췄다고 말했다. 판타지 레이더스는 가로 16칸, 세로 16칸, 총 256칸의 필드를 갖추고 있으며 1부터 5까지의 난이도가 각각 배정된다. 신경망을 이용한 분석을 통해 각 스테이지에는 난이도 구성을 위한 ‘오브젝트’들이 배치된다.

하지만 문제가 있었다. 그는 본격적인 개발에 착수하면서 기본적인 분석을 할 만한 데이터가 너무 부족하다는 걸 느꼈다고 토로했다. 알파고는 수십년간 쌓여온 바둑 기사들의 기보를 분석 및 학습할 수 있었지만, 판타지 레이더스는 그야말로 아무 것도 없었다.

결과적으로 그들이 택한 방법은 ‘맨 땅에 헤딩’이었다. 직원들 몇 명이 하루에 한 시간씩 게임 레벨 20개를 플레이해가며 난이도를 1부터 5까지 전부 분류했다. 이 데이터를 넣어 게임 내 난이도를 측정하니, 62%의 정확도를 보였다. 긍정적인 수치였지만, 정식 출시를 위해선 정확도를 한층 끌어올릴 필요가 있었다.

▲ 게임 내 중요 정보를 추출한 모습

신승백 프로그래머는 다시금 알파고를 언급하며 ‘핵심 정보’가 중요하다고 강조했다. 알파고는 과거 기보에서 중요한 흑백의 돌 세력 상황, 시간 경과 등을 데이터로 추출해 별도 학습을 진행한 바 있다. 그 역시 ‘판타지 레이더스’에서 가장 중요한 특징적 요소를 회의를 통해 추출해냈고, 이를 하나의 이미지로 만들어 신경망에 도입했다. 그리고 정확도는 71%까지 상승했다.

그는 한 차원 더 나아가기 위해 다양한 딥러닝 관련 연구결과를 찾아봤다고 말했다. 그 중 그의 흥미를 끈 것은 미국과 중국의 대학생이 만든 미소녀 이미지 자동생성 기능이었다. 웹 상에 존재하는 다양한 미소녀의 이미지를 데이터 베이스 삼아 새로운 결과값을 창조하는 데 성공한 자동 생성 구조였다.

▲ 딥러닝으로 만들어진 미소녀 이미지

신승백 프로그래머는 해당 구조를 이용하기로 결심하고 '생성자'와 '구별자'를 이용해 시스템의 정교함을 한층 끌어올리고자 노력했다. 생성자는 말 그대로 이미지를 생성하는 역할을 맡고 있으며, 구별자는 생성된 이미지가 인간이 만든 것인지 기계가 만든 것인지를 구분한다. 구별자가 가짜 이미지를 인간이 만든 것으로 간주할 경우, 생성자에게 긍정적인 피드백이 돌아가며, 구별자가 제대로 구분해냈을 경우에는 구별자에게 긍정적 피드백이 돌아간다. 이런 경쟁관계를 통해 상호간의 시너지를 만들어냈으며, 충분한 신경망 학습이 이루어진 뒤 구별자를 제거했다.

문제는 이 과정 이후에도 인간이 만든 것 같은 결과값이 도출되질 않았다. 무의미한 노이즈만이 스테이지에 가득차 있었다. 결국 신승백 프로그래머는 딥마인드의 또 다른 연구결과를 적용하기로 결정했다. 신경망의 불안정성을 극복하고 안정적인 학습을 진행하는 방법에 관한 연구였는데, 이를 적용하고 시간이 지나니 점차 그럴듯한 이미지가 나오기 시작했다.

▲(좌) 인간이 생성한 스테이지 (우) 자동 생성된 스테이지

로그라이크다운 스테이지가 등장하기 시작했지만, 또 다른 문제가 발견됐다. 사각형 나무 울타리를 만들어야 하는데, 목재가 아닌 잡동사니로 울타리가 구현됐다. 어떻게 보면 창의적이긴 했지만, 인간답지는 않은 결과였다.

신승백 프로그래머는 이에 대한 답을 RNN에서 찾았다. RNN은 앞의 데이터를 기억하고 있다가 출력값에 반영하는 특성이 있다. 이를 이용해 울타리의 연속성을 적용했더니 인간이 만든 것과 유사한 형태의 울타리가 구현되기 시작했다. 하지만, 산발적인 일직선 형태가 나올 뿐, 정사각형 형태가 무너져버렸다. 앞의 기억을 반영하는 RNN 특성상, 몇 번 반복된 이후에는 더 이상 출력에 반영하지 않는 문제가 있었다.


이에 그는 또 다른 딥마인드의 연구결과를 적용했다. RNN의 새로운 지점이 생길 때 2차원으로 전후좌우를 파악해 입체적인 데이터를 재생성해내는 방식이었다. 이를 통해 게임 내에 완벽한 정사각형이 구현되기 시작했으며, 울타리 중앙에는 작동 스위치가 배치되기도 하는 등 긍정적인 결과값이 도출됐다.

매버릭 게임즈는 현재 신경망을 기반으로 한 자동 생성 프로그램 ‘하나’를 운용하고 있다. 하나는 일종의 게임 에디터로 입력-변경 과정을 반복하며 원하는 결과값을 만들어준다. ‘추천’ 기능을 통해 단번에 스테이지를 자동생성 할 수도 있고, 편집자가 개입해 적절한 디자인을 만들어낼 수도 있다.

강연 말미에 신승백 프로그래머는 "신경망을 이용해 ‘끝나지 않는 게임’을 만들 수 있지 않을까 기대한다”며, “판타지 레이더스는 그 여정에 있다고 생각한다”고 말했다.