New

유니티로 배우는 게임 인공지능 [게임 개발 필수 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장, ‘기타’에서는 특정 상황에 잘 맞지 않는 새로운 행동을 만들기 위한 기법들을 소개하고, 이전 장들에서 배웠던 알고리즘을 사용한다

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

저자/역자 소개

지은이의 말

신나는 여정에 온 것을 환영한다. 이 여정은 내게 프로이자 인간으로서 많은 의미가 있는 여러 가지 것들로 조합돼 있다. 그것들은 프로그래밍, 게임 개발, 인공지능, 그리고 다른 개발자들과 함께 공유하는 지식을 의미한다. 이 책이 유니티와 인공지능 관련 기술을 향상시킬 뿐 아니라, 독자들이 만든 게임 안에서 플레이어들에게 새로운 경험을 전달하는 데 도움을 주길 희망한다.

지은이 소개

호르헤 팔라시오스(Jorge Palacios)

경력 7년 차의 소프트웨어 개발자다. 지난 4년간 툴 개발자부터 리드 프로그래머까지 다양한 위치에서 게임 개발 작업을 수행해왔다. 주요 관심사는 AI와 게임 플레이 프로그래밍이며, 현재 유니티와 HTML5로 작업한다. 게임 개발 전문가이자 연설가, 게임 잼(game jam) 창시자다.
더 자세한 내용은 웹페이지 http://jorge.palacios.co에서 볼 수 있다.

옮긴이의 말

2016년 3월 컴퓨터는 바둑에서 공식적으로 인간을 꺾었다. 구글이 개발한 인공지능 ‘알파고’가 이세돌 9단을 4:1이라는 믿을 수 없는 스코어로 제압한 것이다. 바둑에 대해 잘 알지 못하는 나에게도 이 사건은 매우 충격적으로 다가왔다.
이처럼 인공지능은 우리 가까이에 이미 수년 전부터 존재하고 있다. 가전 기기에서부터 항상 곁에 두는 스마트폰에 이르기까지 장치를 통해 인공지능을 전혀 사용하지 않고 있는 사람을 만나기는 어렵다. 조만간 자율주행 자동차가 대중화될 것이라고 한다. 앞으로는 현재 사람이 하고 있는 일들 중 상당수를 인공지능이 차지할 가능성이 높다고 생각한다.
이 책은 게임 개발자라면 한 번쯤은 고민해봤을 A* 알고리즘에서부터 게임에 적용할 법한 머신 러닝 알고리즘까지 게임에서 쓰이는 다양한 인공지능 기술들을 담고 있다. 또한 각 주제마다 한 가지 이상의 예제가 유니티에서 사용하는 C# 형태로 제공되므로 실제 현장에서 유니티로 게임을 제작하는 개발자들에게 크나큰 도움이 될 것이라고 확신한다. 그리고 각 주제별로 이론적인 고찰도 다루므로, 게임 개발자가 아닌 일반 개발자도 여러 가지 인공지능 테크닉에 대한 교양을 쌓을 수 있다.
이 책을 읽은 독자가 여러 사람을 행복하게 만드는 게임을 개발할 수 있도록 조금이나마 도움을 주는 것이 이 책의 저자가 밝힌 목표이자 내가 이 책을 번역한 이유다. 부디 이 책이 독자에게 가뭄 속의 단비 같은 존재가 됐으면 한다.

옮긴이 소개

최동훈

전역 후 생활고에 시달리며 갖은 아르바이트 자리를 전전하다가 우연히 프리랜서가 됐다. 이후 게임 회사에 들어가서 <터치터치> 제작 프로젝트에 리드 프로그래머로 참여했다. 그 후 사업에 뛰어들었으며, 이로 인해 고려대학교 기계공학과를 정말 힘겹게 졸업했다. 졸업 후에 사업이 어려워져서 막대한 빚을 떠안았지만, 말 그대로 닥치는 대로 일을 받아 해내며 결국 모두 갚았다. 항상 배우는 것을 좋아하며, 현재 영어 말하기와 듣기를 2년째 독학 중이다. 더 구체적인 이력은 링크드인(www.linkedin.com/in/sapsaldog)에서 확인할 수 있다.

목차

목차
  • 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장 기타 알고리즘
    • 소개
    • 난수 세련되게 다루기
    • 에어 하키 라이벌 만들기
    • 테이블 풋볼 경쟁자 고안하기
    • 절차적 미로 제작
    • 자율주행차 구현하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안