소스 코드 파일은여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/unity-game-ai-2e
유니티로 게임을 개발하는데 필요한 거의 모든 인공지능 알고리즘들을 나열한 책이다. 게임을 개발하는 개발자라면 한번쯤은 고민해봤을 A* 알고리즘부터 게임에 적용할 수 있는 머신러닝 알고리즘까지 게임에서 쓰이는 다양한 인공지능 기술을 다룬다. 또한 각 주제마다 한 가지 이상의 예제를 유니티에서 사용하는 C# 형태로 제공하기 때문에, 실무에서 유니티로 게임을 제작하는 개발자에게 큰 도움이 될 것이다. 그리고 각 주제별로 이론적인 고찰도 다루므로, 게임 개발자가 아닌 일반 개발자도 여러 가지 인공지능 기술에 대한 교양을 쌓을 수 있을 것이다.
■ A, Ambush와 같은 유명 AI 기술로 지능적인 경로를 탐색하는 에이전트 제작
■ 에이전트와 다양한 목적의 전략 알고리즘 사이에 협동 기능을 제공하는 알고리즘 구현
■ 에이전트가 환경을 고려하면서 더 나은 의사결정을 할 수 있도록 감각 흉내내기
■ 단순한 행동과 움직임을 넘어서는 의사결정 에이전트를 제작하는 데 사용하는 알고리즘 탐색
■ 그래프 자료구조나 지형지물을 다룰 때 에이전트 간의 협동 구현과 전략 조율
■ 수동 셀렉터를 만들면서 웨이포인트 구현
유니티 기본 지식을 갖췄으며, AI와 게임플레이 관련 문제들을 해결하는 데 필요한 더 많은 도구를 얻고 싶은 사람들을 대상으로 한다.
1장, ‘행위 - 영리한 움직임’에서는 크레이그 레이놀즈(Craig Reynolds)와 랜 밀링톤(Ian Millington)이 함께 개발한 조작 행위(steering behavior) 원리를 기반으로 한 가장 흥미로운 움직임 알고리즘들의 일부를 탐험한다. 이 알고리즘들은 진보된 게임에서 사용하는 대부분의 AI와 길 찾기 알고리즘군 같이 움직임에 의존하는 다른 알고리즘의 근간을 이룬다.
2장, ‘내비게이션’에서는 복잡한 시나리오에서도 잘 수행되는 길 찾기 알고리즘을 소개한다. 각 목적에 맞는 그래프 구조를 사용해 세계를 표현하는 방법을 배우고, 여러 종류의 길 찾기 알고리즘을 배운다.
3장, ‘의사 결정’에서는 여러 장르에 적용할 수 있을 정도로 탄력적이고, 결정 시스템 모듈을 만들기 충분한 의사 결정 기술을 설명한다.
4장, ‘신규 NavMesh API’에서는 유니티 5.6에서 등장한 신규 NavMesh API의 내부 동작을 보여준다. 그리고 NavMesh 엔진의 파워에 대한 감을 잡을 수 있게 설명하고 NavMesh를 실시간으로 조작한다.
5장, ‘협동과 전략’에서는 그래픽은 웨이포인트와 인플루언스맵과 같은 그래프 기반 전략적 결정을 활용한 포메이션 및 기술을 다룬다. 다른 에이전트들을 전체 유기체처럼 조절하는 레시피를 다룬다.
6장, ‘에이전트 인지’에서는 에이전트의 감각 자극에 대한 시뮬레이션을 전개하는 방법을 살펴본다. 이미 알고 있는 도구(콜라이더, 그래프)를 활용해 이러한 시뮬레이션들을 만드는 방법을 알아본다.
7장, ‘보드게임과 응용 탐색 AI’에서는 턴 기반 게임 AI과 보드게임을 개발하는 데 필요한 알고리즘을 다룬다.
8장, ‘학습 기술’에서는 머신러닝을 알아본다. 머신러닝 기술을 배우고 적용하는 첫걸음이 될 것이다.
9장, ‘절차적 콘텐츠 생성’에서는 절차적으로 콘텐츠를 생성해 게임을 여러 번 플레이할 수 있도록 돕는 여러 가지 기술을 살펴본다. 다양한 종류의 콘텐츠를 생성하는 데 적합한 기준을 제시할 것이다.
10장, ‘기타 알고리즘’에서는 몇 가지 새로운 기술을 소개하고 명확한 범주에 딱 들어맞지 않는 새로운 행동을 생성하는 데 이전 장에서 배운 알고리즘을 사용한다.
인공지능(AI)을 생각하면 플레이어에게서 탈출하거나 플레이어를 따라가는 것과 같은 간단한 행동부터 전통 AI 체스라이벌, 머신러닝의 상태를 다루는(state-of-the-art) 기술 혹은 절차적 콘텐츠 제작까지 많은 주제가 떠오른다.
유니티에 대해 이야기하는 것은 게임 개발의 민주화에 대해 이야기하는 것을 의미한다. 손쉬운 사용법, 빠른 신기술 대응, 개발자 커뮤니티의 지속적인 성장과 새로운 클라우드 서비스 덕분에 유니티는 게임 산업에서 가장 중요한 소프트웨어 중 하나가 됐다.
이 책을 쓴 주요 목표는 최상의 예제와 규약을 통해 여러분에게 유니티에 대한 기술적 통찰력과 AI 개념과 기술 파악을 위한 이론적 지식을 제공하는 것이다. 그렇게 함으로써 개인과 프로 개발 무대에서 최고의 실력을 갖출 수 있을 것이다.
이 책은 훌륭한 AI를 만드는 데 필요한 도구를 소개한다. 그 도구는 더 나은 적을 만들거나 최종 보스를 빛나게 하거나 심지어 자신만의 AI 엔진을 제작하기 위한 것이다. 이 책의 목표는 유니티로 AI 기술을 개발하기 위한 최고의 참고 자료(one-stop reference)가 되는 것이다.
신나는 여정에 온 것을 환영한다. 이 여정은 프로게이머이자 인간으로서 나에게 많은 의미가 있는 것들이 조합돼 있다. 프로그래밍, 게임 개발, AI, 다른 개발자들과 함께 공유하는 여러 가지를 의미한다. 여러분이 이 책을 읽어준다는 기쁨을 어떻게 억눌러야 할지 모르겠다. 이 책이 유니티와 AI 기술 향상에 도움을 주는 것뿐만 아니라, 여러분이 만든 게임 안에서 플레이어들에게 새로운 경험을 전달하는 데 도움을 주길 희망한다.
소프트웨어 개발자이자 게임 개발자다. 컴퓨터 과학을 전공했으며 8년의 실무 경력이 있다. 5년 동안 개발 도구 개발부터 리드 프로그래머에 이르기까지 다양한 역할을 수행하며 게임을 개발했다. 주로 인공지능 개발과 게임 플레이 프로그래밍에 집중했다. 현재는 유니티와 HTML5 관련된 작업을 진행 중이며, 게임 프로그래밍 강사, 연사, 게임잼(game-jam) 창시자이기도 하다.
『유니티로 배우는 AI 프로그래밍 쿡북 2/e』이 출간됐습니다. 1판 번역에 이어 2판까지 번역하게 돼 큰 영광입니다.
1판이 나온 지 4년이 돼갑니다. 1판 옮긴이의 말에서 알파고에 대한 이야기를 했었는데, 그동안 IT계에도 많은 일들이 있었습니다. 이제 더이상 딥러닝은 대기업의 전유물이 아닙니다. 누구나 딥러닝과 관련된 지식을 습득하고, 실제 데이터셋을 구해서 직접 딥러닝을 본인의 애플리케이션에 이식할 수 있는 세상이 됐습니다. 앞으로의 세상은 또 어떻게 변해 갈지 궁금합니다.
이 책의 형식은 1판에서 크게 바뀌지 않고, 몇 가지 레시피가 추가되고 빠졌습니다. 전체적으로 보면 더 실무에 적합한 레시피들로 구성됐습니다. 각 레시피별 상세 설명이 부족하다고 느끼는 분들이 있을 수도 있습니다. 사실 각 레시피마다 나오는 이론을 제대로 다룬다면, 챕터 하나 이상을 할애해야 할 정도의 양이 나올 수 있습니다. 이 책은 레시피 위주의 책으로 잘 이해가 되지 않는 부분이 있거나 더 알고 싶은 내용이 있는 경우, 참고 사항에 나온 자료를 참고하거나 별도의 이론 서적을 참고하면 이해하는 데 도움이 될 것입니다. 모쪼록 이 책이 여러모로 여러분에게 도움이 됐으면 합니다.
고려대학교 기계공학과, 컴퓨터학과(이중전공)를 졸업했으며 현재는 캄아일랜드에 근무하고 있다. 웹 기술과 데브옵스(DevOps) 기술에 관심이 많다. 현재 회사의 인프라를 쿠버네티스 클러스터로 전환/구축해 운영하고 있다.