유니티로 배우는 AI 프로그래밍 쿡북 2/e [게임 개발에서 자주 사용되는 인공지능 패턴]
- 원서명Unity 2018 Artificial Intelligence Cookbook: Over 90 recipes to build and customize AI entities for your games with Unity, 2nd Edition (ISBN 9781788626170)
- 지은이호르헤 팔라시오스(Jorge Palacios)
- 옮긴이최동훈
- ISBN : 9791161754512
- 33,000원
- 2020년 10월 21일 펴냄
- 페이퍼백 | 412쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 게임 개발 프로그래밍
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
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장, ‘기타 알고리즘’에서는 몇 가지 새로운 기술을 소개하고 명확한 범주에 딱 들어맞지 않는 새로운 행동을 생성하는 데 이전 장에서 배운 알고리즘을 사용한다.
상세 이미지
목차
목차
- 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장. 기타 알고리즘
- 스크립트 객체 생성 및 관리
- 난수 세련되게 다루기
- 에어하키 상대 만들기
- 레이싱 게임 아키텍처 구현
- 러버밴딩 시스템을 활용한 레이스 난이도 관리