게임 AI 기법들을 게임에서 가장 많이 사용되고 있는 언어인 C++로 설명하고 있으며, 게임개발에서 최근에 각광받고 있는 스크립트 언어인 Lua에 대한 소개까지 다루는 등 실전적 프로그래밍 예제들로 구성되어 있어 현직 게임프로그래머들 뿐만 아니라 게임 프로그래머를 꿈꾸는 학생들에게도 매우 유용한 책이 될 것이다.
목차
추천사|IV
서문|VI
감사의 말|X
역자 머리말|XI
소 개|XIII
Chapter 1 수학 및 물리학 입문|1
수 학|1
직교 좌표|2
함수 및 수식|3
삼각법|10
벡 터|18
지역 공간 및 세계 공간|27
물리학|29
시 간|30
거 리|30
질 량|31
위 치|31
속 도|31
가속도|34
힘|39
요 약|42
Chapter 2 상태구동형 에이전트의 디자인|45
유한상태기계란 정확하게 무엇일까?|46
유한상태기계 구현하기|48
상태 전환표|50
내장된 규칙들|51
West World 프로젝트|54
BaseGameEntity 클래스|55
Miner 클래스|56
Miner 상태들|58
상태 디자인 패턴에 대해 자세히 알아보기|59
상태의 기본 클래스를 재사용할 수 있게 만들기|67
전역 상태 및 상태 블립|67
상태기계 클래스 생성하기|69
Elsa 소개하기|72
FSM에 메시지 처리 기능 추가하기|74
전보 구조|75
광부 Bob과 Elsa의 통신|76
메시지 급송 및 관리|77
메시지 처리하기|82
Elsa는 저녁을 준비한다|85
요 약|91
Chapter 3 자동적으로 움직이는 게임 에이전트 생성법|93
자동적 에이전트란?|93
운반기 모델|95
운반기의 물리적 현상 갱신하기|98
조종 행동|100
찾 기|100
달아나기|101
도착하기|102
추격하기|103
도피하기|106
배회하기|107
장애물 피하기|110
벽 피하기|116
끼워 넣기|118
숨기기|120
경로 따라가기|123
오프셋 추격하기|125
집단 행동|127
분 리|129
정 렬|130
결 합|131
무리짓기|132
조종 행동들을 조합하기|134
가중 절단된 합|135
우선순위와 함께 가중 절단된 연속합|136
우선순위가 주어진 디더링|139
겹침이 전혀 없게 하기|141
대량의 운반기들에 대처하기 : 공간 분할하기|142
평활화|147
Chapter 4 스포츠 시뮬레이션 - 단순 축구|151
단순 축구 환경과 규칙|152
축구장|153
골|156
축구공|157
SoccerBall::FuturePosition|159
AI 디자인|163
SoccerTeam 클래스|164
필드 선수들|175
골키퍼|193
AI가 사용하는 주요 메소드|201
추정 및 가정하기|213
요 약|214
Chapter 5 그래프의 비밀|217
그래프|217
좀더 형식적인 기술|219
트 리|220
그래프 밀도|220
다이그래프|221
게임 AI에서의 그래프|222
그래프 클래스 구현하기|227
GraphNode 클래스|229
GraphEdge 클래스|230
SparseGraph 클래스|232
그래프 탐색 알고리즘|235
무정보 그래프 탐색|236
비용 기반 그래프 탐색|257
요 약|275
Chapter 6 스크립트를 쓸 것이냐 쓰지 말 것이냐, 그것이 문제로다|277
스크립트 언어란?|278
스크립트 언어의 용도|279
대화 흐름|281
단계 연출|282
AI 논리|284
Lua에서의 스크립팅|285
컴파일러를 Lua와 함께 동작하도록 설정하기|286
시작하기|286
Lua로 가위바위보|297
C/C`++`과 인터페이스하기|300
구세주 Luabind!|311
스크립트 유한상태기계 생성하기|322
동작 방법|323
상태들|328
유용한 URL|330
모든 것이 쉽지는 않다|331
요 약|332
Chapter 7 Raven: 개관|333
게 임|333
게임 아키텍처 개관|334
Raven_Game 클래스|335
Raven 맵|337
Raven 무기|339
탄 환|341
트리거|342
AI 디자인 고려사항|353
AI 구현|355
의사 결정|355
이 동|356
길 계획하기|356
지 각|356
목표 선택|362
무기 다루기|364
모두 통합하기|369
AI 구성요소의 갱신|370
요 약|373
Chapter 8 실질적인 길 계획하기|375
내비게이션 그래프 구축|375
타일 기반|375
가시점|376
확장 지형|377
NavMesh|378
Raven 내비게이션 그래프|378
성기게 과립화된 그래프|379
정교하게 과립화된 그래프|381
Raven 내비게이션 그래프에 아이템 추가하기|383
접근 질의의 속도를 향상시키기 위해서 공간 분할 사용하기|385
경로 계획자 클래스 만들기|385
특정 위치까지의 경로 계획하기|387
어떤 아이템 타입까지의 경로 계획하기|389
노드로서의 경로 또는 에지로서의 경로?|393
주석이 달린 에지 클래스의 예|394
주석 달린 에지를 수용하기 위해서 경로 계획자 클래스 수정하기|395
경로 부드럽게 하기|398
CPU 오버헤드를 줄이는 방법|404
난처한 상황에서 빠져 나오기|422
요 약|424
Chapter 9 목적이 부여된 에이전트 행동|427
용감한 Eric의 귀환|428
구 현|430
Goal_Composite::RemoveAllSubgoals|434
Raven Bot에서 사용되는 목적의 예|435
Goal_Wander|436
Goal_TraverseEdge|437
Goal_FollowPath|440
Goal_MoveToPosition|443
Goal_AttackTarget|446
목적 중재|448
건강 아이템의 위치를 찾는 바람직함을 계산하기|451
특정 무기의 위치를 찾는 바람직함을 계산하기|452
목표를 공격하는 바람직함을 계산하기|454
맵을 탐험하는 바람직함을 계산하기|455
모두 통합하기|456
부산물|457
개 성|457
상태 메모리|459
명령 큐잉|464
스크립트 행동에 큐를 사용하기|466
요 약|468
Chapter 10 퍼지 논리|469
전통적인 집합|472
집합 연산자|473
퍼지 집합|473
소속 함수로 퍼지 경계 정의하기|474
퍼지 집합 연산자|476
경 계|477
퍼지 언어 변수|478
퍼지 규칙|479
무기 선택을 위한 FLV 디자인|480
무기 선택을 위한 규칙 집합 디자인|484
퍼지 추론|484
이론에서 응용으로 : 퍼지 논리 모듈의 코딩|493
FuzzyModule 클래스|493
FuzzySet 기본 클래스|494
삼각형 퍼지 집합 클래스|495
오른쪽 어깨 퍼지 집합 클래스|497
퍼지 언어 변수 클래스 만들기|499
퍼지 규칙을 만드는 클래스의 디자인|502
Raven이 퍼지 논리 클래스를 사용하는 방법|509
Combs 메소드|510
퍼지 추론과 Combs 메소드|513
구 현|514
요 약|514
'Book > Wish List' 카테고리의 다른 글
AI Game Programming Wisdom (2) (0) | 2009.11.12 |
---|---|
Game Coding Complete Game coding complete (0) | 2009.11.12 |