封面图
目录
- 前言
- 第1章人工智能导论1
- 1.1人工智能1
- 1.2游戏中的人工智能2
- 1.3人工智能技术3
- 1.3.1有限状态机3
- 1.3.2人工智能中的随机性和概率5
- 1.3.3感应器系统6
- 1.3.4群组、蜂拥和羊群效应7
- 1.3.5路径跟随和引导8
- 1.3.6A*寻路算法9
- 1.3.7导航网格16
- 1.3.8行为树18
- 1.3.9运动20
- 1.3.10Dijkstra算法23
- 1.4本章小结23
- 第2章有限状态机24
- 2.1玩家的坦克24
- 2.1.1 PlayerTankController类25
- 2.1.2初始化26
- 2.2子弹类29
- 2.3设置航点31
- 2.4抽象有限状态机类32
- 2.5敌方坦克的人工智能34
- 2.5.1巡逻状态36
- 2.5.2追逐状态38
- 2.5.3攻击状态38
- 2.5.4死亡状态40
- 2.6使用有限状态机框架42
- 2.6.1AdvanceFSM类42
- 2.6.2FSMState类43
- 2.6.3状态类44
- 2.6.4NPCTankController 类46
- 2.7本章小结48
- 第3章随机性和概率49
- 3.1随机性50
- 3.2概率的定义52
- 3.2.1独立与关联事件53
- 3.2.2条件概率53
- 3.3人物个性56
- 3.4有限状态机和概率57
- 3.5动态人工智能59
- 3.6示例老虎机60
- 3.6.1 随机老虎机60
- 3.6.2加权概率63
- 3.7本章小结68
- 第4章感应器的实现 70
- 4.1基本的感觉系统71
- 4.2场景设置72
- 4.3玩家的坦克与切面73
- 4.3.1玩家的坦克74
- 4.3.2切面75
- 4.4人工智能角色76
- 4.4.1感观77
- 4.4.2视觉78
- 4.4.3触觉80
- 4.5测试82
- 4.6本章小结83
- 第5章群组行为84
- 5.1岛屿示例中的群组行为84
- 5.1.1个体的行为85
- 5.1.2控制器90
- 5.2替代实现92
- 5.3本章小结99
- 第6章路径跟随和引导行为100
- 6.1跟随一条路径100
- 6.1.1路径脚本102
- 6.1.2路径跟随103
- 6.2避开障碍物106
- 6.2.1添加定制图层107
- 6.2.2避开障碍108
- 6.3本章小结113
- 第7章A*寻路算法114
- 7.1回顾A*寻路算法114
- 7.2实现116
- 7.2.1Node116
- 7.2.2PriorityQueue117
- 7.2.3GridManager118
- 7.2.4AStar123
- 7.2.5TestCode类126
- 7.3场景设置128
- 7.4测试131
- 7.5本章小结132
- 第8章导航网格133
- 8.1简介134
- 8.2设置地图134
- 8.2.1Navigation Static 135
- 8.2.2烘焙导航网格135
- 8.2.3导航网格代理136
- 8.3有斜坡的场景139
- 8.4NavMeshLayers141
- 8.5分离网格链接144
- 8.5.1生成分离网格链接145
- 8.5.2手动生成分离网格链接146
- 8.6本章小结148
- 第9章行为树149
- 9.1Behave插件149
- 9.2工作流151
- 9.3行为节点153
- 9.4与脚本的接口155
- 9.5装饰节点158
- 9.6Behave调试器160
- 9.7顺序节点160
- 9.8探索Behave的结果162
- 9.9选择节点163
- 9.10优先级选择节点166
- 9.11并行节点168
- 9.12引用169
- 9.13机器人与外星人项目170
- 9.14本章小结173
- 第10章融会贯通174
- 10.1场景设置175
- 10.2车辆177
- 10.2.1玩家控制的车辆178
- 10.2.2人工智能车辆控制器180
- 10.2.3有限状态机182
- 10.3武器187
- 10.3.1枪187
- 10.3.2子弹189
- 10.3.3发射器191
- 10.3.4导弹193
- 10.4本章小结195