서브메뉴

본문

유니티로 배우는 AI 프로그래밍 쿡북 (게임 개발에서 자주 사용되는 인공지능 패턴)
유니티로 배우는 AI 프로그래밍 쿡북 (게임 개발에서 자주 사용되는 인공지능 패턴)
저자 : 호르헤 팔라시오스
출판사 : 에이콘출판
출판년 : 2020
ISBN : 9791161754512

책소개

유니티로 게임을 개발하는데 필요한 거의 모든 인공지능 알고리즘들을 나열한 책이다. 게임을 개발하는 개발자라면 한번쯤은 고민해봤을 A* 알고리즘부터 게임에 적용할 수 있는 머신러닝 알고리즘까지 게임에서 쓰이는 다양한 인공지능 기술을 다룬다.



또한 각 주제마다 한 가지 이상의 예제를 유니티에서 사용하는 C# 형태로 제공하기 때문에, 실무에서 유니티로 게임을 제작하는 개발자에게 큰 도움이 될 것이다. 그리고 각 주제별로 이론적인 고찰도 다루므로, 게임 개발자가 아닌 일반 개발자도 여러 가지 인공지능 기술에 대한 교양을 쌓을 수 있을 것이다.
[알라딘에서 제공한 정보입니다.]

출판사 서평

★ 이 책에서 다루는 내용 ★

- A*, A*mbush와 같은 유명 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 기술 향상에 도움을 주는 것뿐만 아니라, 여러분이 만든 게임 안에서 플레이어들에게 새로운 경험을 전달하는 데 도움을 주길 희망한다.
- 호르헤 팔라시오스


『유니티로 배우는 AI 프로그래밍 쿡북 2/e』이 출간됐습니다. 1판 번역에 이어 2판까지 번역하게 돼 큰 영광입니다.

1판이 나온 지 4년이 돼갑니다. 1판 옮긴이의 말에서 알파고에 대한 이야기를 했었는데, 그동안 IT계에도 많은 일들이 있었습니다. 이제 더이상 딥러닝은 대기업의 전유물이 아닙니다. 누구나 딥러닝과 관련된 지식을 습득하고, 실제 데이터셋을 구해서 직접 딥러닝을 본인의 애플리케이션에 이식할 수 있는 세상이 됐습니다. 앞으로의 세상은 또 어떻게 변해 갈지 궁금합니다.

이 책의 형식은 1판에서 크게 바뀌지 않고, 몇 가지 레시피가 추가되고 빠졌습니다. 전체적으로 보면 더 실무에 적합한 레시피들로 구성됐습니다. 각 레시피별 상세 설명이 부족하다고 느끼는 분들이 있을 수도 있습니다. 사실 각 레시피마다 나오는 이론을 제대로 다룬다면, 챕터 하나 이상을 할애해야 할 정도의 양이 나올 수 있습니다. 이 책은 레시피 위주의 책으로 잘 이해가 되지 않는 부분이 있거나 더 알고 싶은 내용이 있는 경우, 참고 사항에 나온 자료를 참고하거나 별도의 이론 서적을 참고하면 이해하는 데 도움이 될 것입니다. 모쪼록 이 책이 여러모로 여러분에게 도움이 됐으면 합니다.
- 최동훈
[예스24에서 제공한 정보입니다.]

목차정보

1장. 행동 - 영리한 움직임

__소개

__행위 템플릿 만들기

__추격과 회피

__물리적으로 올바르게 에이전트 조정하기

__도착하기 및 떠나기

__객체 마주보기

__주변 배회

__경로 추종

__에이전트 회피

__벽 피하기

__가중치를 통한 행위 섞기

__우선순위에 의한 행위 섞기

__발사체 쏘기

__발사체의 착륙 지점 예측

__발사체 목표 정하기

__점프 시스템 제작



2장. 네비게이션

__소개

__격자를 통한 세상 표현

__가시점을 통한 세계 표현

__수제(self-made) 네비게이션 메쉬를 통한 세계 표현

__DFS를 이용한 미로 탈출 경로 찾기

__BFS를 이용한 격자 내 최단 경로 찾기

__다익스트라를 이용한 최단 경로 찾기

__A*를 활용한 가장 유망한 경로 찾기

__메모리 사용을 개선한 A* : IDA*

__다중 프레임 네비게이션 전략: 시분할 탐색

__경로 부드럽게 하기



3장. 의사 결정

__소개

__결정 트리를 통한 선택

__유한 상태 기계 구현

__FSM 향상시키기: 계층 유한 상태 기계

__행위 트리 구현

__퍼지 논리 적용하기

__목표지향적 행위를 통한 결정

__블랙보드 아키텍처 구현

__유니티 애니메이션 상태 기계 실험



4장. 신규 NavMash API

__소개

__NavMesh 구성 요소 설정

__다양한 에이전트를 위한 NavMesh 생성 및 관리

__실시간 NavMesh 데이터 생성 및 갱신

__NavMesh 인스턴스 생애 관리

__다중 NavMesh 인스턴스 연결하기

__장애물 관련 동적 NavMesh 생성

__NavMesh API를 활용한 행동 구현



5장. 협동과 전략

__소개

__대형 다루기

__협동을 위한 A* 확장: A*mbush

__높이를 통한 웨이포인트 분석

__커버와 가시성을 통한 웨이포인트 분석

__웨이포인트 자동으로 생성하기

__웨이포인트 의사 결정 예시

__영향력 분포도(Influence maps) 구현

__맵 플루딩으로 영향력 개선하기

__컨볼루션 필터를 활용한 영향력 향상시키기

__싸움 주기 만들기



6장. 에이전트 인지

__소개

__콜라이더 기반 시스템을 활용한 시각 기능

__콜라이더 기반 시스템을 활용한 청각 기능

__콜라이더 기반 시스템을 활용한 후각 기능

__그래프 기반 시스템을 활용한 시각 기능

__그래프 기반 시스템을 활용한 청각 기능

__그래프 기반 시스템을 활용한 후각 기능

__스텔스 게임의 인지 제작하기



7장. 보드게임과 응용 탐색 AI

__소개

__게임트리 클래스 활용

__최소최대 구현

__역최대 구현

__AB 역최대 구현

__역스카우팅 구현

__틱택토 인공지능 상대 구현

__체커 인공지능 상대 구현

__UCB1로 가위바위보 AI 구현

__리그렛 매칭 구현

__소개



8장. 학습기술

__N-Gram 예언자를 활용한 행동 예측

__예언자 향상시키기: 계층적 N-Gram

__나이브 베이즈 분류기를 활용한 학습

__강화 학습 구현

__인공 신경망 구현



9장. 절차적 콘텐츠 생성

__소개

__깊이 우선 탐색 활용 미로 생성

__던전 및 섬 건설 알고리즘 구현

__풍경 생성

__N-Gram 활용 콘텐츠 생성

__진화 알고리즘을 활용한 적 생성

__소개



10장. 기타 알고리즘

__스크립트 객체 생성 및 관리

__난수 세련되게 다루기

__에어하키 상대 만들기

__레이싱 게임 아키텍처 구현

__러버밴딩 시스템을 활용한 레이스 난이도 관리
[알라딘에서 제공한 정보입니다.]