Post List

[실용적 예제로 본 게임 인공지능 프로그램하기] 0. 개요

0. 개요




 19학년도 여름방학을 맞아 예전부터 기다려왔던 게임 인공지능을 공부하였습니다.
요즘 게임에 적용되는 여러가지 유명한 기술들(강화학습, 머신러닝, 딥러닝 ...) 등이 있지만, 게임 인공지능 개발자를 목표로 하려면 역시 Game AI 의 기본이 되는 기술을 알아야 한다는 생각으로 학교 중앙도서관에서 실용적 예제로 본 게임 인공지능 프로그램하기 책을 대여하여 1장부터 마지막장까지 정독하며 실습도 진행하였습니다.

 이 책은 게임 프로그래머님들 사이에서 추천이 많이 되는 책이고, 출판년도가 2005년경이므로(무려 14년 전 입니다!) 소스코드를 보며 예전엔 이렇게 코딩을 했구나 하는 느낌이 들었습니다. 아무래도 강화학습이나 머신러닝 등 최신의 기술을 학습하는 것 보단 게임 인공지능의 초보자로서 기본서 먼저 보는 것이 먼저라는 생각으로 이 책을 선택하였습니다.

 아무튼, 9월 개강 전까지 제가 학습한 Game AI 기술을 블로그에 포스팅 하려고 합니다.
저는 C#과 Unity Engine으로 C++로 짜여진 이 책의 내용을 재구현하였고, 프로젝트 전체 파일과 소스코드는 제 Git hub 링크 에서 확인할 수 있습니다.

원본 C++ 소스코드와 프로젝트는 이 링크 에서 확인할 수 있습니다.


학문적 AI와 게임AI의 구분

학문적 AI에 비해 게임 AI의 자원은 제한적이며 실시간으로 처리되어야 한다는 점이 다릅니다. 또한 게임 AI는 환상을 제공하고 엔터테이닝을 목적으로 하므로 극도록 완벽하지 않아도 됩니다. 즉, 교활해야 합니다. 만약 유저의 눈을 가릴 수 있다면 기저에 수많은 연산을 전혀 수고할 필요 없이 코드 한줄로 대체해도 된다고 합니다. 

하지만 중요한 것은, 절대로 게임이 유저에게 주는 환상을 깨뜨리면 안된다는 점 입니다. 

유저의 환상이 깨지면 실망이 커질테고 믿음이 증발하면 게임의 재미가 없어집니다.

게임 프로그래머는 이 점을 염두에 두고 개발 해야할 것입니다.


댓글