목차 일부
추천사 ... ⅳ
서문 ... ⅵ
감사의 말 ... ⅹ
역자 머리말 ... xi
소개 ... xiii
Chapter 1 수학 및 물리학 입문 ... 1
수학 ... 1
직교 좌표 ... 2
함수 및 수식 ... 3
삼각법 ... 10
벡터 ... 18
지역 공간 및 세계 공간 ... 27
물리...
더보기
목차 전체
추천사 ... ⅳ
서문 ... ⅵ
감사의 말 ... ⅹ
역자 머리말 ... 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
더보기 닫기