엘든 링에는 강화학습 AI로 더 강력해진 보스가 등장할까?

게임뉴스 | 박광석 기자 | 댓글: 12개 |


▲ 프롬소프트웨어 R&D부 헨 쟝 필립 연구원

프롬 소프트웨어의 대표작인 '소울' 시리즈나 '세키로' 등의 액션 게임들은 도전욕을 자극하는 어려운 난이도로 많은 게이머들의 마음을 사로잡았다.

소울 시리즈 작품 속에는 '이걸 어떻게 깰 수 있지?'라는 생각이 들 정도로 극악의 패턴을 보여주는 악랄한 보스들이 잔뜩 등장하지만, 커뮤니티를 조금만 둘러보면 팬티 차림의 '고인물' 유저들로에게 철저히 농락당하는 보스들의 모습을 쉽게 찾아볼 수 있다. 보스들이 보여주는 모든 기믹에는 일정한 패턴이 존재하고, 절대 못 피할 것만 같은 패턴에도 숨겨진 파훼법이 꼭 존재하기 때문이다.

그렇다면 만약 프롬소프트웨어의 액션 게임에 '강화학습 AI'가 적용된 보스가 등장한다면 어떤 모습일까? 가령 현재까지도 베일에 싸여있는 프롬소프트웨어의 신작 '엘든 링' 속 보스가 알파고처럼 강화학습으로 무장한 백전노장급 노련함을 보여준다면, 고인물을 자처하는 유저들은 여전히 팬티 차림으로 보스를 농락할 수 있을까?

금일(4일), 일본 개발자 컨퍼런스 CEDEC에서 진행된 프롬소프트웨어 개발자의 강연은 이러한 즐거운 상상을 해볼 수 있는 계기가 됐다. '게임 AI 연구를 하고 싶다! 게임이 없는 R&D부서는 발매된 타이틀에서 실험장을 만들어 냈다!'라는 주제로 진행된 해당 강연에서는 강화학습 AI 연구를 위한 시설이 하나도 갖춰져 있지 않은 상황에서 AI 연구를 하기 위해 프롬 소프트웨어 개발진이 거친 시행착오에 대해 들어볼 수 있었다.

일본에서 개최된 개발자 컨퍼런스에 프롬 소프트웨어의 강연이 있기에 그들이 개발 중인 신작 '엘든 링'의 조그마한 단서라도 들을 수 있을까 기대도 해봤지만, 정작 강연 내용에서는 엘든 링의 '엘'자도 등장하지 않았다. 아래의 강연 정리 역시 AI 기술 연구 절차에 대한 소개이니, AI 기술에 별다른 관심이 없다면 여기서 뒤로가기를 추천한다.



▲ 오는 TGS에서는 엘든 링의 정보가 조금이나마 공개되길 바라며



이날 강연은 프롬 소프트웨어 R&D부서의 헨 쟝 필립 연구원이 진행했다. 지난 2018년에 프롬 소프트웨어의 R&D부서에 입사한 그는 그후로 줄곧 기계학습과 관련된 연구를 담당 중이다.

프롬 소프트웨어의 R&D부서는 타이틀 개발에 직접 참여하는 부서가 아니며, 라이브러리 및 툴의 개발, 이용할 수 있는 기술의 조사, 그리고 조사한 기술을 연구하는 부서다. 하지만 실제 타이틀에 도입할 것을 전제로 하는 기술을 연구하는 것이 주요 업무이기에, 그들의 연구는 향후 프롬 소프트웨어의 신작에 반영될 가능성이 높은 편이라고 할 수 있다.

현재 프롬 소프트웨어의 R&D부서는 여러 종류의 AI 기술에 대해 연구를 진행하고 있다. 다양한 역할을 담당할 게임 내 NPC를 위한 AI부터 디버그와 자동조정을 위한 AI는 물론, 스크립트와 Behavior Trees, 스테이트 머신, 강화학습 등의 수단에 대한 연구도 여기에 포함된다.

이러한 모든 연구 개발을 진행하기 위해 가장 먼저 필요한 것이 'AI 실험장'이다. AI 실험장은 AI를 움직여보기 위한 장소로, 간단하게 시행착오를 할 수 있으면서 범용적으로 많은 수법을 검증할 수 있어야만 한다. 필립 연구원은 AI 연구에서 가장 먼저 마주하게 되는 첫 번째 허들이 위와 같은 조건을 충족하는 '실험장을 마련하는 것'이라고 소개했다.




그러나 R&D부서에서 직접 AI를 위한 실험장을 만드는 것은 쉬운 일이 아니다. AI 실험에 적합한 환경을 만드는 것에는 별다른 무리가 없으나, 그것을 실제 게임 타이틀에 도입할 수 있도록 구현하는 것이 난제다. 그는 '실험을 위해 준비된 환경'에서만 검증된 AI는 복잡한 기술들이 얽혀있는 실제 게임 타이틀에서 예상치 못한 문제를 발생시킬 수 있으며, 이를 수정하기 위해 많은 비용이 들 수 있다고 설명했다.

그러므로 AI 적용 과정에서 발생할 수 있는 실패를 줄이기 위해서는 개발 중인 타이틀과 가까운 환경을 가진 '실천적'인 실험장이 필요하다. 타이틀 개발 시의 문제와 제약이 충분히 고려되어있기에 개발에 적용할 수 있는 것과 없는 것의 구분이 쉽기 때문이다.




물론 개발 중인 타이틀과 비슷한 환경을 가진 '실천적'인 실험장을 찾는 것 역시 어려운 일이다. 독자적으로 이를 개발하려고 해도 타이틀 개발에 직접 참여하는 팀이 아니기에 노하우는 전혀 없는 상태이고, 어떻게든 무리해서 환경을 조성했다 하더라도 무시무시한 양의 공수가 필요할 것이 분명하기에 현실적이지 않은 이야기가 된다. 이때 1)이미 만들어져있는 기성의 개발 환경을 이용하거나, 2)직접 타이틀 개발 과정에 참여하는 방안을 떠올릴 수 있는데, 필립 연구원은 두 방법 모두 쉽지 않은 일이라고 설명했다.

먼저 이미 만들어져있는 기성의 AI 환경으로는 딥마인드에서 사용한 것으로 잘 알려진 ALE, 유니티의 ML-Agents, 그리고 AI용 API를 제공하는 게임 '스타크래프트2' 등이 있다. 이러한 환경을 이용할 경우 독자적인 환경을 새로 만들 필요가 없다는 이점이 있으나, 앞서 언급했던 '실천적'인 환경을 조성하는 것은 어렵게 된다. 애초에 공개되어 있지 않은 경우가 대부분이고, 공개되어 있더라도 권리상 사용할 수 없을 수가 있으며, 대부분 미니게임 수준에 그치는 경우가 많아 범용적이지 못한 편이다.



▲ 기성 환경은 쉽게 찾아볼 수 있으나, 개발 중인 타이틀에 맞는 '실천적' 환경을 조성하기는 어렵다

직접 AI 담당으로서 타이틀 개발 과정에 참여하는 것은 어떨까? 이때는 AI 관련 기능을 갖추면서 개발 중인 타이틀을 통해 AI 실험과 검증을 할 수 있다. 기성 환경을 사용하는 것과 동일하게 독자적으로 환경을 개발할 필요가 없고, 실천적인 환경이 갖춰지기 때문에 얼핏 보면 가능성이 가장 높은 것처럼 보이는 방안이다.

하지만 이때는 타이틀 개발 작업에 전념해야 하므로 연구의 진척이 더딜 수 밖에 없고, 개발 중인 빌드이기 때문에 안정성이 떨어지는 문제도 발생한다. 버그의 영향은 물론, 계속되는 사양의 변화로 AI 연구 환경도 빈번하게 바뀌게 된다. 결국 개발 중인 타이틀에서 AI 연구를 하는 것 또한 현실적이지 않은 방법인 셈이다.




그렇다면 결국, 프롬 소프트웨어의 R&D팀은 이러한 허들을 어떻게 극복했을까? 필립 연구원은 이미 발매된 타이틀을 활용하는 것에서 답을 찾았다고 설명했다. 이미 발매된 타이틀을 활용하면 독자적으로 새로운 환경을 만들 필요가 없을뿐더러 실천적인 환경도 갖춰지고, 개발이 이미 마무리된 상태이기에 안정적인 것은 물론, R&D가 하고 싶은 대로 연구를 우선시할 수 있게 된다.

이미 발매된 타이틀 중에서도 다양한 역할의 AI를 연구하기 위해선 많은 상황을 작성할 수 있는 타이틀을 따로 선발해야만 했고, 그 결과 '다크소울3'와 '아머드 코어 버딕트 데이(이하 아머드코어)'가 AI 연구를 위한 최종 후보로 선정됐다. 두 게임 모두 다크소울 시리즈, 그리고 아머드 코어 시리즈의 최신작이다.

여기서 이동 지역이 지상으로 한정된 다크소울3보다 지상과 공중, 수상, 수중까지 이동할 수 있는 아머드코어가 AI 연구의 '다양한 상황 설정'에서 더 적합했고, 장비의 영향이 반영되는 것 역시 아머드코어 쪽이 월등했기에 최종 실험장으로는 아머드코어가 선정됐다. 필립 연구원은 그후 PC판이 존재하지 않았던 아머드코어를 PC판으로 일부 포팅하고 여러 수단을 활용할 수 있게 하는 등, AI 연구에 적합하도록 부족한 부분을 보강하고 확장하는 작업이 필요했다고 설명했다.






▲ 더 다양한 데이터를 추출할 수 있는 아머드코어가 AI 연구에 적합했다고

본래의 아머드코어는 게임 환경과 AI가 너무 밀접했기에 코드 역시 복잡하게 얽혀있었고, 원활한 연구를 위해 AI와 관련된 부분을 따로 분리해야만 했다. 이렇게 하면 향후 다른 타이틀에의 이식이 수월해지므로 사용 편의성과 장래성을 동시에 챙길 수 있게 된다.

프롬 소프트웨어 R&D팀은 이때 '중간층'을 활용했다. 해당 개념을 활용하면 게임환경에서는 여전히 AI와 연결된 것처럼 보이나, 실제로는 게임환경이 중간층과 연결되어 완전히 분리된 AI의 사양을 언제나 간단히 변경할 수 있게 된다.

중간층은 AI 대신 패드 조작과도 연결할 수 있기 때문에 향후 디버깅이나 동작 확인에도 큰 도움을 준다. 이외에도 로그와 리플레이 기능을 적용하여 게임 환경의 시각과 지역 정보 등을 따로 수집할 수 있도록 하는 등, 실행 결과 가시화와 분석용 데이터 집중을 위한 편의에도 신경을 썼다.



▲ 게임 환경과 AI를 분리하여 안정성과 편의성을 높였다

AI 실험장을 R&D팀은 먼저 일반적으로 게임에서 쓰이고 있는 스크립트, Behavior Trees, 스테이트 머신을 활용한 고전적인 AI 대응 연구를 시작했다. 이때는 시행착오가 적어 이전부터 프롬 소프트웨어 사내에서 자주 사용되어온 Lua가 활용됐다.

Lua가 새롭게 고안한 아머드코어 AI 실험장에 별다른 문제 없이 대응하는 것을 확인한 R&D팀은 팀 멤버 전원에게 AI 작성을 지시한 뒤, 'R&D팀 내 AI 대회'를 진행했다. 팀원들이 작성한 AI를 사용하여 대전을 진행한 뒤, 대전 데이터를 수집하기 위함이었다. 필립 연구원은 이 과정을 통해 모은 로그 데이터를 사내 웹페이지에 올려 가시화했으며, 어떤 AI가 승리하고, 패배했는지 한 눈에 확인하는 것이 가능했다고 소개했다.



▲ "Lua를 활용한 고전적 AI 대응은 별다른 문제 없이 진행됐다"

고전적 AI 대응을 성공적으로 마친 R&D팀은 드디어 강화학습을 활용한 NPC 조작 연구에 돌입했다. 여기서 강화학습이란 최근 바둑과 도타2, 스타크래프트2 등 몇몇 게임에서도 성과를 보인 바 있는 분야로, 아직 상용 게임에 일반적으로 적용되지는 못한 AI 기술이다. 고전적인 방식의 AI와 다르게 환경을 전체적으로 이해할 필요는 없지만, 사전에 학습을 시행해야만 하며, 컨트롤이 비교적 어렵고, 연구의 속도가 빠르다는 특징이 있다.

먼저 강화학습을 위한 최첨단 알고리즘에 자력으로 대응하는 것은 어려운 일이기에, R&D팀은 파이선(Python)에서 공개된 것을 사용하기로 했다. 필립 연구원은 이때 OpenAI사에서 공개한 파이선 강화학습 툴킷인 'Gym' 대응이 꼭 필요했다고 설명했다. 환경과 알고리즘의 교환을 표준화하고, 대량의 알고리즘 구현이 Gym을 사용하기 때문이다.

C++언어를 사용하는 게임, 그리고 파이선을 사용하는 Gym과 학습 알고리즘을 연결하는 데에는 구글에서 제공하는 네트워크 통신 라이브러리인 gRPC가 활용됐다. 사용 사례가 많고, 다양한 언어로 쉽게 사용할 수 있으며, 고속으로 동작한다는 점이 gRPC의 강점이다.

이후 실시간으로 대량의 데이터를 얻기 위해 스케일 업이 가능한 병렬실행과 코스트 삭감을 위한 그리기 무효화가 대책으로 활용됐다. 이 두 가지 방법을 활용하면 일반적인 머신으로도 어떻게든 학습을 진행하는 것이 가능케 된다. 그는 이러한 노력을 통해 Core i7-8700와 지포스 GTX 1060 환경에서 별문제 없이 128개의 인스턴스, 12시간의 강화학습 동작 확인이 가능했다며 실제 학습 결과가 담긴 시연 영상을 공개했다.

▲ (개발자의 음성이 포함된 gif입니다. 영상 부분 소개가 듣고 싶다면 음소거를 풀어주세요.)

영상에는 학습 초반의 AI와 약 12시간의 학습이 진행된 후의 AI의 모습이 담겼다. 학습 초반의 AI는 맵에 적이 있어도 공격하지 않고 무작위로 움직이지만, 약 12시간의 학습 후에는 적 기체를 향하여 사격하고 공격을 피하는 등, 일정 수준의 학습이 진행된 모습을 확인할 수 있다.

프롬 소프트웨어의 R&D부서는 NPC는 물론, 출시용 타이틀의 디버그에 AI를 활용하는 등, 아머드코어 이외에 여러 프롬 소프트웨어의 작품들에 AI 실험장을 도입해나갈 계획이다. 필립 연구원은 지금보다 더 다양한 결과를 도출하기 위해 본격적인 AI 기술 연구를 계속 이어나갈 것이라고 소개하며 자신의 발표를 마무리했다.



댓글

새로고침
새로고침

기사 목록

1 2 3 4 5