게임에 적용되는 AI 기술을 알아봅니다 안녕하세요, 구독자님.
이번 한주도 잘 보내고 계신가요?
벌써 3월입니다. 새해가 시작된 것을 기념하던 것이 엊그제 같은데 말입니다. 누군가 '인간은 태어나자마자 죽음을 향해 달려간다'고 한 말이 생각납니다. 태어나는 순간 정해진 운명의 모래시계가 작동하기 시작하면 각자는 자신의 남은 시간을 소진해 가면서 사는건데 이 과정에서 '시간친구'라는 길동무가 인생 여정을 함께 걸어 가게 되는거죠. 인생 초반에는 천천히 주변도 둘러보고 다양한 것에 관심을 가지고 시도도 해보지만 남은 시간이 얼마 없다는 것을 깨닫는 순간 함께 걷던 길동무는 나를 두고 인생마감을 향해 달려갑니다. 나는 아직 마음의 준비가 되지 않았는데 말이죠. T^T
그런데... 우리가 일상에서 시간이 더디게 가는 느낌을 갖는 경우가 가끔 있습니다. 그건 바로 '몰두'할 때인데요... 게임이나 인기 드라마를 정주행 하느라 밤을 꼴딱 새는 그런 경우를 들 수 있겠죠. 아마도 그건 뇌가 처리하는 속도가 운명의 시간 초침이 움직이는 속도를 훨씬 앞서기 때문이지 않을까요?
이번 소식에서는 대부분(?)의 사람들이 좋아하는 '게임'과 관련된 인공지능 기술에 대해 알아보도록 하겠습니다. |
|
|
게임과 인공지능, 둘 간에는 어떤 관계가 있을까요?
2023년 현재 혹은 약간 더 미래에는, 인공지능이 스며들지 않는 영역이 없을 정도로 대중화가 되어 있거나 되고 있을겁니다. 게임은 그런 것들 중 하나이면서 동시에 인공지능이 적용되기 가장 좋은 분야이기도 합니다. 게임은 컴퓨팅 세계라는 가상의 공간 속에 존재하며 그 속에서 낮은 비용으로 대량의 데이터를 생성, 수집할 수 있고 현실에서는 불가능한 테스트를 손쉽게 할 수 있다는 공통점이 있는데 이러한 토대는 인공지능 기술을 개발하기 위해 꼭 필요한 사항들입니다. 아무래도 '인간을 닮아가는' 인공지능과, 획일화된 기계 대신 '인간 상대와의 플레이'를 원하는 게이머는 언젠가는 만날 수 밖에 없는 운명인 것 같습니다.
인공지능은 게임의 어떤 곳에 활용될 수 있을까요?
인공지능이 게임에 접목될 수 있는 분야는 다양합니다. 대략 뽑아 보면 ......
- 게임 내 사용되는 이미지, 영상, 2D/3D 배경 등등의 디자인 혹은 생성
생성모델을 이용해 장면, 게임 배경 등을 생성할 수 있습니다. 최근에는 게임에서 사용 가능한 3D 환경을 텍스트 프롬프트로 바로 생성해 주는 서비스도 출시되었습니다. (예) Blockade Labs의 skybox , 그 외에도 생성AI를 통해 게임 내 콘텐츠를 직접 제작하는 케이스도 생기고 있다네요. (기사)
- Avatar 캐릭터, 모션, 립싱크 생성
자신을 꼭 닮은 2D/3D 캐릭터를 생성할 수 있습니다. 캐릭터 커스터마이징은 예전에도 게임 상에서 제공되던 기능입니다. 인공지능이 게이머의 사진이나 영상을 이용하면서 사용자가 지정한 특징 (텍스트 또는 스케치)을 가미한 캐릭터를 생성해 주는 기능들이 곧 게임들에 도입되지 않을까 생각해 봅니다. 당연히 캐릭터의 다양한 움직임이나 발성에 따른 입술 모방 에니메이션을 생성할 수 있겠죠. 어쩌면 어딘가에선 이미 하고 있을지도 모르겠네요.
- 그래픽 렌더링 고도화, 특수효과 구현
게임에서 사용되는 영상 제작 시 저해상도 그래픽를 고해상도로 변환하거나 낮은 프레임 영상을 높은 프레임으로 변환하는데 활용될 수 있습니다. 예) DLSS (Deep Learning Super Sampling)
- 시놉시스 (레벨, 퀘스트, 시나리오 등등) 자동 생성
GPT 등과 같은 언어모델을 이용해 게임시나리오를 만들 수 있습니다. 점차 이런 사례가 더 많이 나오리라 생각됩니다.
- 상호 작용 가능한 NPC (Non-Player Character) 생성
실제 사람처럼 생성하는 NPC인데 그 형태가 텍스트 챗봇일 수도 있고 버추얼 휴먼처럼 시각적인 형태일 수도 있습니다. 이미 게임 상에서 보신 분들도 있을 것 같습니다.
- 지능화된 몬스터나 캐릭터 생성
정형화된 전투, 대화 대신 게이머에게 적절한 난이도를 제공하여 몰입감을 높일 수 있습니다.
- 컨텍스트 기반 실시간 컨텐츠 생성
사용자의 접속 수나 사용패턴, 시나리오 등에 따라 실시간으로 변하는 게임 내 컨텐츠를 생성하는 데 활용될 수 있습니다.
- 게임 테스트를 통한 버그, 결함 식별
- 게임 음악 자동 생성
최근 게임에서 사용되는 음악을 작곡 AI를 이용해서 생성하는 사례도 나오고 있습니다. 예) XdMind '적응형 AI' 기술을 이용한 '게임DJ' 개발 (관련기사)
- 동작 분석을 통한 개인화 지원
게임 플레이에서의 사용자 경험 개선을 위해 사용 패턴 등을 식별하여 난이도, 스토리라인 등 변경하는 쪽에 활용될 수 있죠.
- 영상 기반 모션캡처
모션 캡처 사전작업에 활용하여 캐릭터 움직임을 보정하는 곳에도 사용될 수 있습니다.
- 동작 정교화
인공지능 모델을 이용해서 캐릭터의 움직임을 실제 움직임처럼 정교하게 만들 수 있습니다. (관련영상)
- 언어 및 커뮤니케이션 지원
음성이나 모션, 아이트래킹, 제스쳐 등을 통한 게이머와의 상호작용 지원 다국어 사용자를 위한 자동 번역 (예: 엔씨소프트 리니지W에 실시간 번역) 욕설이나 금칙어 사용 등을 탐지해서 블라인드 처리 등등을 지원합니다.
- 부정행위 탐지
버그를 악용한 어뷰징, 불법 프로그램이나 게임 핵 탐지 등에 활용될 수 있습니다. 예) 넥슨의 플랫폼쉴드
- 마케팅 및 광고
사용자 캐릭터, 구매성향, 플레이 패턴 등의 데이터 분석을 통한 피드백, 추천, 캠페인, 광고 전략 개발에도 적용 가능합니다.
많이 나열되긴 했지만 요약하면 게임 업체 입장에서 인공지능은 게임을 즐기는 게이머에게 더 좋은 사용자 경험을 줄 수 있도록 더 나은 완성도의 게임과 게이밍 환경을 제공하는 좋은 도구인 셈입니다.
|
|
|
사진: BlockadeLabs의 skybox를 이용해서 생성해 본 Fantasy Landscape |
|
|
이렇게나 많은 분야에 적용되면 사람이 할 일이 없어지는거 아닌가요?
일자리가 사라질 수 있다는 걱정은 게임 업계에만이 아니라 대다수의 현재 직업들에 공통적으로 해당되며 인공지능 이제까지 발전해 온 속도를 고려하면 일부 영역에 대해서는 그런 현상은 피할 수 없을 거라 생각합니다. 하지만, 게임만큼 창의력이 중요하게 여겨지는 분야도 드문만큼 그 시점은 다른 영역보다는 나중이 아닐까 하는 생각을 해 봅니다.
하지만 위기에는 항상 기회도 함께 찾아오는 법이라고 했습니다. 인공지능을 두려워하기 보다는 어떻게 하면 업무에 잘 활용할 수 있는지를 지금부터라도 열심히 고민해봐야 할 것 같고 그런 노력들이 잘만 결합되면 지금보다 훨씬 더 많은 다양한 시도들과 결과물이 나오고 그로 인한 새로운 일자리도 생길 수 있다고 생각합니다.
|
|
|
게임을 하는 인공지능이 있다던데요...
구글의 딥마인드가 개발한 강화학습 기반 신경망으로 알파고의 전신으로도 알려진 DQN (Deep Q-Network)이라는 것이 있습니다. 이것으로 훈련된 모델은 현재 수십 개의 아타리 비디오게임에서 사람보다 더 잘 한다는 평가를 받고 있습니다. 처음 2014년 소개되었을 때 절반 정도의 승률이었다는데 현재는 거의 완벽하게 승리한다죠. 이후 2016년 알파고가 나타나 바둑(일종의 게임이라고 볼 수 있을 듯...)에서 이세돌 9단을 이겼고 알파고를 업그레이드 한 알파스타는 2019년 스타크래프트-2로 인간 프로게이머와 2:2 대결해서 10:1로 승리했습니다. 맨 마지막 한번 인간의 승리 부분은 10 경기를 내리 이긴 알파스타에게 인간과 비슷한 시야를 갖도록 제약을 건 상태에서 진행되었다고 합니다 ( 관련글)
인공지능이 바둑이 아닌 게임에서 사람을 이긴다고요?
이제까지의 인공지능 발전 속도를 보면 앞으로 거의 모든 게임에서 인간을 이길 날이 머지 않았다고 생각됩니다. 그렇다고 게임을 즐기는 입장에서는 큰일이 일어나는 것이냐 하면 그건 아닐 것 같습니다. 게임은 '승부'보다는 아니라 '재미', '흥미' 측면이 더 중요하기 때문일 것 같습니다. 바둑의 예를 봐도 알파고 사건 이후에도 여전히 많은 사람들이 바둑을 즐기며 심지어는 인공지능과의 대전은 사람들로 하여금 더 많은 가능성 있는 바둑 수를 생각하게 만들고 있습니다. 앞으로는 게임을 하면서 게임 속의 인공지능과 농담을 포함한 다양한 얘기를 사람 친구에게 하듯 하고, 게임사에서 제공해 주는 것만 사용하던 패턴에서 내가 직접 도구나 방식을 만들어내가면서 하는 패턴으로 바뀔 것으로 기대됩니다.
게임을 훈련하는데 사용되는 기술은 어떤 것이 있나요?
게임을 훈련할 때는 기존 비전이나 자연어 쪽에 사용되는 CNN, RNN 등과는 다른 강화학습 (Reinforcement Learning)이라는 기술이 사용됩니다. 위키백과에는 '어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상(Reward)을 최대화하는 행동 혹은 행동 순서를 선택하는 방법'이라고 정의되어 있습니다. 반려견에 대해 자신이 원하는 행동을 하면 보상으로 먹이를 줘가면서 훈련을 시키는 것과 유사하다고 보시면 되는데, 인공지능으로 하여금 최대한의 보상(Reward)를 얻을 수 있는 행동을 하도록 반복해서 학습을 시키는 거죠. 어떤 분은 강화학습을 '맛집찾기'로 설명을 하고 계시더군요. ( 링크)
강화학습을 이용해서 게임을 훈련하는 사례를 알려주세요.
강화학습을 이용해서 게임 훈련을 하는 것을, 상용 혹은 공개 게임을 이용하는 경우와 시뮬레이션을 위해 자체 제작된 게임의 사례를 나눠 봤습니다.
공개(혹은 상용) 게임을 이용하는 경우의 사례
- 콘솔게임
강화학습을 이용해서 마리오, 둠, 스트리트 파이터 등의 과거 콘솔게임을 학습하는 것을 python 코드로 진행하는 과정을 설명합니다. 쭉 따라해보면... 된답니다! (Reinforcement Learning for Gaming | Full Python Course in 9 Hours: 링크)
- 마인크래프트
OpenAI에서 개발한 Video PreTraining (VPT)라는 방법을 이용해서 유튜브 등에 올라온 마인크래프트 영상으로부터 액션(action)을 예측하도록 한 후 이 모델을 이용해서 게임 상에서 다양한 작업들을 수행하도록 합니다. (링크)
- 배틀그라운드
튜토리얼 모드 가운데 'AI훈련매치' 모드를 이용하면 99명의 봇을 상대로 실습할 수 있고, 해외(스팀의 아시아서버)에서는 'AI로얄' 모드를 이용해서 20명의 플레이어와 80명의 AI봇이 함께 하는 것이 가능하다고 합니다. (제가 이 게임을 하진 않아 지금도 되는지는 모릅니다... ^^;) (링크)
이외에도 많은 다른 케이스가 있었는데 예를 들어 넥슨에서 축구게임에 AI가 게임 중계를 해 주는 기능을 준비하고 있다는 소식도 있었습니다.
자체 시뮬레이션을 이용하는 경우
- OpenAI 숨바꼭질...그리고 게임 해체하기! (링크)
OpenAI에서 만든 것인데요... 강화학습 기반 모델과 이를 이용한 시뮬레이션입니다. 캐릭터가 엄청 귀엽습니다. 시뮬 자체의 버그를 이용해 룰을 깨뜨리는 갖은 시도를 인공지능이 한다는 것이 놀라웠습니다.
- AI 알버트의 방탈출 (딥러닝) (링크)
Albert라는 인공지능이 방탈출을 하는 방법을 학습하는 것인데 보고 있으면 재미있습니다. 제작자가 직접 Unity로 만든 것이라 귀엽기도 하구요.
- DeepMind’s AI Trained For 5 Years... But Why? (링크)
딥마인드에서 강화학습을 통해 2:2 축구 시뮬레이션을 한 케이스를 소개합니다. 처음에는 제대로 서지도 못했는데 학습을 계속하면서 팀플레이도 하고 다양한 동작(예: 드리블, 킥, 패스 및 협동동작) 등을 할 수 있었다고 하네요. 영상을 보면 이 또한 놀랍습니다.
|
|
|
사진 : OpenAI의 강화학습 시뮬레이션 (출처) |
|
|
그 외에 읽어 볼만한 내용이 있으면 알려주세요?
제가 찾아본 읽어볼 만한 몇 가지는 다음과 같습니다.
|
|
|
인공지능 서비스의 배포와 운영 시 도움이 필요하신가요?
(주)소이넷은 인공지능 서비스를 제공하는 기업들 가운데 서비스 배포와 운영에서 어려움을 겪고 계신 곳에 도움을 드릴 수 있습니다.
혹시 구독자님의 회사는 다음과 같은 어려움을 겪고 계시지 않나요?
- AI 모델을 개발하고 학습 후 서비스를 위한 성능 (Accuracy)는 달성했는데, 정작 최적화 엔지니어가 없어서 어플리케이션, 서비스로의 배포를 위한 실행최적화를 못하고 있어요!
- AI 서비스를 이미 제공하고 있지만, 비싼 클라우드 GPU 서버 인스턴스 사용료가 부담이 되네요. 흠... 경비를 절감할 수 있는 방안이 없을까?
- 서비스에 적합한 공개 SOTA 모델이 있지만 그대로 가져다 쓰기에는 우리 쪽 어플리케이션에 접목하기도 어렵고 운영 비용도 많이 들 것 같은데 어쩌지?
- 서비스에 사용되는 AI 모델을 통합적으로 관리, 배포, 모니터링을 하고 싶은데 그렇다고 비싸고 너무 복잡한 솔루션을 쓸 수는 없고 어쩌지?
그렇다면 언제든 아래 연락처로 문의 주세요. 함께 해결책을 고민해 드리겠습니다.
|
|
|
오늘의 뉴스레터는 여기까지 구독자님, 또 다른 재미난 정보를 찾아
다시 찾아뵙겠습니다. |
|
|
구독해 주시면 좋은 소식, 정보로 보답하겠습니다. |
|
|
주식회사 소이넷 sales@soynet.io 경기 성남시 분당구 성남대로331번길 8 (킨스타워) 1503호
대표전화 : 031-8039-5377
|
|
|
|
|