유니티로 배우는 게임 인공지능 [게임 개발 필수 70가지 인공지능 패턴]
- 원서명Unity 5.x Game AI Programming Cookbook (ISBN 9781783553570)
- 지은이호르헤 팔라시오스(Jorge Palacios)
- 옮긴이최동훈
- ISBN : 9788960779785
- 30,000원
- 2017년 03월 14일 펴냄 (절판)
- 페이퍼백 | 352쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
실제 유니티로 게임을 개발하는데 필요한 거의 모든 인공지능 알고리즘들을 나열한 책이다. 게임을 개발하는 개발자라면 한번쯤은 고민해봤을 A* 알고리즘에서부터 게임에 적용할법한 머신 러닝 알고리즘까지 게임 안에서 쓰이는 다양한 인공지능 기술들을 담고 있다. 또한 각 주제마다 한가지 이상의 예제가 유니티에서 사용하는 C# 형태로 제공되기 때문에, 실제 현장에서 유니티로 게임을 제작하고 있는 개발자들에게 크나큰 도움이 될 것이라고 확신한다. 그리고 각 주제별 이론적인 고찰도 다루고 있으므로, 게임 개발자가 아닌 일반 개발자에게도 여러 가지 인공지능 테크닉에 대한 교양을 쌓을 수 있을 것이다.
이 책에서 다루는 내용
■ 에이전트에게 길 찾기 능력을 부여하기 위한 A 및 Ambush 기술 사용
■ 세계의 표현법 제작 및 에이전트의 세계 탐색
■ 에이전트가 여러 행동을 취할 수 있도록 의사 결정 시스템 구축
■ 인공지능을 만드는 보드게임 기술을 개발하는 알고리즘군 학습
■ 감각 시뮬레이트 및 인식 시스템에 적용
■ 틱택토(Tic-Tac-Toe)와 체커(Checkers) 같은 보드게임에서 인공지능 설계 및 구현
이 책의 대상 독자
이 책은 유니티의 기본 지식을 이미 갖췄으며, AI와 게임 플레이 관련 문제를 해결하기 위해 더 많은 도구를 얻으려는 사람들을 대상으로 저술됐다.
이 책의 구성
1장, ‘행동: 영리한 움직임’에서는 크레이그 레이놀즈(Craig Reynolds)와 이안 밀링톤(Ian Millington)이 함께 개발한 조작 행위(steering behavior) 원리를 기반으로 한 가장 흥미로운 움직임 알고리즘들 중 일부를 탐험한다. 이 알고리즘들은 진화된 게임에서 사용하는 대부분의 AI와 길 찾기 알고리즘군처럼 움직임에 의존하는 다른 알고리즘들의 근간을 이룬다.
2장, ‘내비게이션’에서는 복잡한 시나리오에서도 잘 수행되는 길 찾기 알고리즘들을 소개한다. 여기서는 각기 다른 목적에 맞는 몇몇 종류의 그래프 구조를 사용해 세계를 표현하는 방법을 배우고, 몇 가지 길 찾기 알고리즘을 살펴본다.
3장, ‘의사 결정’에서는 다른 장르에 적용할 수 있을 정도로 탄력적일 뿐 아니라 결정 시스템 모듈을 만드는 데도 충분한 의사 결정 기법을 배운다.
4장, ‘협동과 전략’에서는 그래픽은 웨이포인트(waypoint)와 영향력 분포도(influence map) 같은 그래프 기반의 전략적 결정을 활용한 대형 및 기법을 다룬다. 또한 다른 에이전트들을 전체 유기체처럼 조절하는 몇 가지 예제를 살펴본다.
5장, ‘에이전트 인지’에서는 에이전트의 감각 자극제들을 시뮬레이션하는 몇 가지 접근 방법을 다룬다. 여기서는 이미 배운 도구들을 이용해 이러한 시뮬레이션과 콜라이더(collider), 그리고 그래프를 어떻게 만드는지 알아본다.
6장, ‘보드게임’에서는 AI 보드게임에서 사용되는 인공지능을 구현하는 데 필요한 알고리즘군들을 설명한다.
7장, ‘학습’에서는 기술 머신 러닝에 대해 알아본다. 머신 러닝 기법을 배우고 적용하는 소중한 첫걸음이 될 것이다.
8장, ‘기타’에서는 특정 상황에 잘 맞지 않는 새로운 행동을 만들기 위한 기법들을 소개하고, 이전 장들에서 배웠던 알고리즘을 사용한다
목차
목차
- 1장 행동: 영리한 움직임
- 소개
- 행위 템플릿 만들기
- 추격과 회피
- 도착하기 및 떠나기
- 객체 마주 보기
- 주변 배회
- 경로 추종
- 에이전트 회피
- 벽 피하기
- 가중치를 통한 행위 섞기
- 우선순위에 의한 행위 섞기
- 키 파이프라인을 활용한 행위 조합
- 발사체 쏘기
- 발사체의 착륙 지점 예측
- 발사체 목표 정하기
- 점프 시스템 제작
- 2장 내비게이션
- 소개
- 격자를 통한 세상 표현
- 디리클레 도메인을 통한 세계 표현
- 가시점들을 통한 세계 표현
- 수제(self-made) 내비게이션 메시를 통한 세계 표현
- DFS를 이용한 미로 탈출 경로 찾기
- BFS를 이용한 격자 내 최단 경로 찾기
- 다익스트라를 이용한 최단 경로 찾기
- A*를 활용한 가장 유망한 경로 찾기
- 메모리 사용을 개선한 A*: IDA*
- 다중 프레임 내비게이션 전략: 시분할 탐색
- 경로 부드럽게 하기
- 3장 의사 결정
- 소개
- 결정 트리를 통한 선택
- 유한 상태 기계의 작동
- FSM 향상시키기: 계층 유한 상태 기계
- 유한 상태 기계와 결정 트리 조합
- 행위 트리 구현
- 퍼지 논리 적용하기
- 마르코프 시스템: 숫자로 상태 표현하기
- 목표 지향적 행위를 통한 결정
- 4장 협동과 전략
- 소개
- 대형 다루기
- 협동을 위한 A* 확장: A*mbush
- 좋은 웨이포인트 만들기
- 가중치를 통한 웨이포인트 분석
- 커버와 가시성을 통한 웨이포인트 분석
- 결정을 위한 예시 웨이포인트
- 영향력 분포도
- 맵을 넘치게 해서 영향력 향상시키기
- 컨볼루션 필터를 활용한 영향력 향상시키기
- 싸움 주기 만들기
- 5장 에이전트 인지
- 소개
- 콜라이더 기반 시스템을 활용한 시각 기능
- 콜라이더 기반 시스템을 활용한 청각 기능
- 콜라이더 기반 시스템을 활용한 후각 기능
- 그래프 기반 시스템을 활용한 시각 기능
- 그래프 기반 시스템을 활용한 청각 기능
- 그래프 기반 시스템을 활용한 후각 기능
- 스텔스 게임의 인지 제작하기
- 6장 보드게임 AI
- 소개
- 게임 트리 클래스 활용
- 최소최대
- 역최대
- AB 역최대
- 역스카우팅
- 틱택토 라이벌 구현
- 체커 라이벌 구현
- 7장 학습 기술
- 소개
- N-Gram 예언자를 활용한 행동 예측
- 예언자 향상시키기: 계층적 N-Gram
- 나이브 베이즈 분류 사용 배우기
- 결정 트리를 사용한 학습
- 강화를 사용한 학습
- 인공 신경망을 사용한 학습
- 조화 검색을 사용한 입자 생성
- 8장 기타 알고리즘
- 소개
- 난수 세련되게 다루기
- 에어 하키 라이벌 만들기
- 테이블 풋볼 경쟁자 고안하기
- 절차적 미로 제작
- 자율주행차 구현하기