【推荐语】
除了在棋盘游戏中发威,AI技术在其他类型的游戏中也给玩家留下了深刻的印象,例如,有限状态机、路径发现(这是“寻路术”技术的代名词,本书第3章有详细介绍)、转向行为、自动编队、行为树决策、模糊逻辑决策、航点和战术分析等。这些技术都关联着大量算法,本书对这些算法行了详细的分析,并提供了伪代码(方便开发人员在不同的编程语言中实现)、实现说明和能分析等。
此外,本书还提供了许多技术和算法在游戏中的应用思路括在游戏中实现AI的中间件思想、执行管理和调度方法、游戏世界的表示方式和接口、工具链创建和脚本的开发、各种游戏类型及其AI实现技巧等。这些内容可以为开发人员实现自己的游戏AI提供很好的启发。
【目录】
第1部分 AI和游戏
第1章 导论
1.1 AI的定义
1.1.1 学术派AI
1.1.2 游戏AI
1.2 游戏AI模型
1.2.1 移动
1.2.2 决策
1.2.3 策略
1.2.4 基础架构
1.2.5 基于代理的AI
1.2.6 该模型在本书中的意义
1.3 算法和数据结构
1.3.1 算法
1.3.2 表示方式
1.3.3 实现
1.4 本书的布局结构
第2章 游戏AI
2.1 复杂度谬误
2.1.1 简单的AI也能做得很好
2.1.2 复杂的AI也可能很糟糕
2.1.3 感知窗口
2.1.4 行为的变化
2.2 游戏中的AI类型
2.2.1 借鉴技术
2.2.2 启发式方法
2.2.3 算法
2.3 速度和内存
2.3.1 处理器问题
2.3.2 低级语言问题
2.3.3 内存问题
2.3.4 台
2.4 游戏AI引擎
2.4.1 游戏AI引擎的结构
2.4.2 工具问题
2.4.3 综述
第2部分 技术
第3章 移动
3.1 移动算法基础
3.1.1 二维移动
3.1.2 静止状态
3.1.3 运动学
3.2 运动学移动算法
3.2.1 寻找
3.2.2 漫游
3.3 转向行为
3.3.1 转向基础知识
3.3.2 变量匹配
3.3.3 寻找和逃跑
3.3.4 到达
3.3.5 对齐
3.3.6 速度匹配
3.3.7 委托行为
3.3.8 追逐和躲避
3.3.9 朝向
3.3.10 直视移动的方向
3.3.11 漫游
3.3.12 路径跟随
3.3.13 分离
3.3.14 避免碰撞
3.3.15 避开障碍物和避免撞墙
3.3.16 小结
3.4 组合转向行为
3.4.1 混合和仲裁
3.4.2 加权混合
3.4.3 优先级
3.4.4 合作仲裁
3.4.5 转向管道
3.5 预测物理
3.5.1 瞄准和射击
3.5.2 抛射物轨迹
3.5.3 射击问题求解
3.5.4 具有阻力的抛射物
3.5.5 迭代定位目标
3.6 跳跃
3.6.1 跳跃点
3.6.2 着陆垫
3.6.3 坑洞填充物
3.7 协调移动
3.7.1 固定编队
3.7.2 可扩展的格式
3.7.3 自然编队
3.7.4 两级编队转向
3.7.5 实现
3.7.6 扩展到以上的级别
3.7.7 槽位的职业角色和更好的分配
3.7.8 槽位分配
3.7.9 动态槽位和队形
3.7.10 战术移动
3.8 马达控制
3.8.1 输出过滤
3.8.2 与能力匹配的转向
3.8.3 常见执行属
3.9 第三维中的移动
3.9.1 三维旋转
3.9.2 将转向行为转换为三维
3.9.3 对齐
3.9.4 对齐向量
3.9.5 朝向行为
3.9.6 直视移动的方向
3.9.7 漫游
3.9.8 假旋转轴
3.10
第4章 路径发现
4.1 路径发现图形
4.1.1 图形
4.1.2 加权图形
4.1.3 有向加权图形
4.1.4 术语
4.1.5 表示方式
4.2 迪杰斯特拉算法
4.2.1 问题
4.2.2 算法
4.2.3 伪代码
4.2.4 数据结构和接口
4.2.5 迪杰斯特拉算法的能
4.2.6 弱点
4.3 A*算法
4.3.1 问题
4.3.2 算法
4.3.3 伪代码
4.3.4 数据结构和接口
4.3.5 实现说明
4.3.6 算法能
4.3.7 节点数组A*算法
4.3.8 选择启发式算法
4.4 游戏世界的表示方式
4.4.1 图块图形
4.4.2 狄利克雷域
4.4.3 可见点
4.4.4 导航网格
4.4.5 移问题
4.4.6 成本函数
4.4.7 路滑
4.5 A*算法
4.6 分层路径发现技术
4.6.1 分层路径发现图形
4.6.2 分层图形上的路径发现
4.6.3 基于排除法的分层路径发现技术
4. 分层结构对路径发现的奇怪影响
4.6.5 实例几何
4.7 路径发现中的其他思路
4.7.1 开放目标路径发现
4.7.2 动态路径发现
4.7.3 其他类型的信息重用
4.7.4 低内存算法
4.7.5 可中断路径发现
4.7.6 汇集路径规划请求
4.8 连续时间路径发现
4.8.1 问题
4.8.2 算法
4.8.3 实现说明
4.8.4 能
4.8.5 弱点
4.9 关于移动路径规划
4.9.1 动作
4.9.2 移动路径规划
4.9.3 示例
4.9.4 脚步规划
4.10
第5章 决策
5.1 决策概述
5.2 决策树
5.2.1 问题
5.2.2 算法
5.2.3 伪代码
5.2.4 知识的表示方式
5.2.5 实现节点
5.2.6 决策树的能
5.2.7 衡决策树
5.2.8 决策树
5.2.9 决策树
5.3 状态机
5.3.1 问题
5.3.2 算法
5.3.3 伪代码
5.3.4 数据结构和接口
5.3.5 能
5.3.6 实现说明
5.3.7 硬编码的FSM
5.3.8 分层状态机
5.3.9 组合决策树和状态机
5.4 行为树
5.4.1 实现行为树
5.4.2 伪代码
5.4.3 装饰器
5.4.4 并发和计时
5.4.5 向行为树添加数据
5.4.6 重用行为树
5.4.7 行为树的局限
5.5 模糊逻辑
5.5.1 讨论之前的重要说明
5.5.2 模糊逻辑简介
5.5.3 模糊逻辑决策
5.5.4 模糊状态机
5.6 马尔可夫系统
5.6.1 马尔可夫过程
5.6.2 马尔可夫状态机
5.7 面向目标的行为
5.7.1 面向目标的行为概述
5.7.2 简单选择
5.7.3 整体效用
5.7.4 计时
5.7.5 整体效用GOAP
5.7.6 使用IDA*的GOAP
5.7.7 “散发气味”的GOB
5.8 基于规则的系统
5.8.1 问题
5.8.2 算法
5.8.3 伪代码
5.8.4 数据结构和接口
5.8.5 规则仲裁
5.8.6 统一
5.8.7 Rete算法
5.8.8 扩展
5.8.9 发展前瞻
5.9 黑板架构
5.9.1 问题
5.9.2 算法
5.9.3 伪代码
5.9.4 数据结构和接口
5.9.5 能
5.9.6 其他的黑板系统
5.10 动作执行
5.10.1 动作的类型
5.10.2 算法
5.10.3 伪代码
5.10.4 数据结构和接口
5.10.5 实现说明
5.10.6 能
5.10.7 综述
5.11 练
第6章 战略和战术AI
6.1 航点战术
6.1.1 战术位置
6.1.2 使用战术位置
6.1.3 生成航点的战术属
6.1.4 自动生成航点
6.1.5 简化算法
6.2 战术分析
6.2.1 表示游戏关卡
6.2.2 简单的影响地图
6.2.3 地形分析
6.2.4 用战术分析学
6.2.5 战术分析的结构
6.2.6 关于地图覆盖
6.2.7 卷积滤镜
6.2.8 细胞自动机
6.3 战术路径发现
6.3.1 成本函数
6.3.2 战术权重和关注事项的混合
6.3.3 修改路径发现启发式算法
6.3.4 路径发现的战术图形
6.3.5 使用战术航点
协调动作
1 多层AI
2 自发合作
3 编写群体动作的脚本
4 军事战术
6.5
第7章 学
7.1 关于机器学基础知识
7.1.1 在线或离线学
7.1.2 行为内学
7.1.3 行为间学
7.1.4 对机器学的警告
7.1.5 过度学
7.1.6 混杂的学
7.1.7 工作量衡
7.2 参数修改
7.2.1 参数地形
7.2.2 爬山算法
7.2.3 基本爬山算法的扩展
7.2.4 退火技术
7.3 动作预测
7.3.1 左还是右
7.3.2 原始概率
7.3.3 字符串匹配
7.3.4 N-Gram预测器
7.3.5 窗口大小
7.3.6 分层N-Gram
7.3.7 在格斗游戏中的应用
7.4 决策学
7.4.1 决策学结构
7.4.2 应该学东西
7.4.3 4种技术
7.5 朴素贝叶斯分类算法
7.5.1 伪代码
7.5.2 实现说明
7.6 决策树学
7.6.1 ID
7.6.2 具有连续属的ID
7.6.3 增量决策树学
7.7 强化学
7.7.1 问题
7.7.2 算法
7.7.3 伪代码
7.7.4 数据结构和接口
7.7.5 实现说明
7.7.6 能
7.7.7 适应调整参数
7.7.8 弱点和现实应用
7.7.9 强化学其他思路
7.8 人工神经网络
7.8.1 概述
7.8.2 问题
7.8.3 算法
7.8.4 伪代码
7.8.5 数据结构和接口
7.8.6 实现警告
7.8.7 能
7.8.8 其他方法
7.9 深度学
7.9.1 深度学定义
7.9.2 数据
7.10
第8章 程序化内容生成
8.1 伪数
8.1.1 数值混合和游戏种子
8.1.2 霍尔顿序列
8.1.3 叶序的角度
8.1.4 泊松圆盘
8.2 Lindenmayer系统
8.2.1 简单的L系统
8.2.2 将添加到L系统
8.2.3 特定阶段的规则
8.3 地形生成
8.3.1 修饰器和高度图
8.3.2 噪声
8.3.3 佩林噪声
8.3.4 断层
8.3.5 热侵蚀
8.3.6 水力侵蚀
8.3.7 高地过滤
8.4 地下城与迷宫的生成
8.4.1 深度优先的回溯迷宫
8.4.2 小生成树算法
8.4.3 递归细分
8.4.4 生成和测试
8.5 形状语法
8.5.1 运行语法
8.5.2 规划
8.6 练
第9章 棋盘游戏
9.1 博弈论
9.1.1 游戏类型
9.1.2 博弈树
9.2 极小极大化算法
9.2.1 静态评估函数
9.2.2 关于极小极大化
9.2.3 使用极小极大化算法
9.2.4 负值化算法
9.2.5 AB修剪
9.2.6 AB搜索窗口
9.2.7 负值侦察
9.3 置换表和内存
9.3.1 哈希游戏状态
9.3.2 哈希表中存储的内容
9.3.3 哈希表实现
9.3.4 替换策略
9.3.5 完整的置换表
9.3.6 置换表的问题
9.3.7 使用对手的思考时间
9.4 内存型测试算法
9.4.1 实现测试
9.4.2 MTD算法
9.4.3 伪代码
9.5 蒙特卡洛树搜索
9.5.1 纯蒙特卡洛树搜索
9.5.2 添加知识
9.6 开局库和其他固攻战术
9.6.1 实现开局库
9.6.2 学库
9.6.3 固攻战术库
9.7 一步优化
9.7.1 迭代加深
9.7.2 可变深度算法
9.8 游戏知识
9.8.1 创建静态评估函数
9.8.2 学评估函数
9.9 回合制策略游戏
9.9.1 不可能的树大小
9.9.2 回合制游戏中的实时AI
9.10
第3部分 支持技术
第10章 执行管理
10.1 调度
10.1.1 调度程序
10.1.2 可中程
10.1.3 负衡调度程序
10.1.4 分层调度
10.1.5 优先级调度
10.2 算法
10.3 细节层次
10.3.1 图形细节层次
10.3.2 关于AI中的细节层次技术
10.3.3 调度细节层次
10.3.4 行为细节层次
10.3.5 群体细节层次
10.3.6 结
10.4
第11章 世界接口
11.1 通信
11.1.1 轮询
11.1.2 事件
11.1.3 确定使用的方法
11.2 事件管理器
11.2.1 实现
11.2.2 事件播送
11.2.3 代理间通信
11.3 轮询站点
11.3.1 伪代码
11.3.2 能
11.3.3 实现说明
11.3.4 抽象轮询
11.4 感知管理
11.4.1 模拟才是道
11.4.2 内部知识和外部知识
11.4.3 感知形态
11.4.4 区域感知管理器
11.4.5 有限元模型感知管理器
11.5
第12章 工具和内容创建
12.1 关于工具链
12.1.1 工具链AI
12.1.2 AI知识的来源
12.2 路径发现和航点战术的知识
12.2.1 手动创建区域数据
12.2.2 自动图形创建
12.2.3 几何分析
12.2.4 数据挖掘
12.3 关于移动的知识
12.3.1 障碍问题
12.3.2 不错调度
12.4 关于决策的知识
12.4.1 对象类型
12.4.2 具体动作
12.5 工具链
12.5.1 集成游戏引擎
12.5.2 自定义数据驱动的编辑器
12.5.3 AI设计工具
12.5.4 远程调试
12.5.5 插件
12.6
第13章 游戏AI编程
13.1 实现语言
13.1.1 C
13.1.2 C
13.1.3 Swift
13.1.4 Java
13.1.5 JavaScript
13.2 脚本AI
13.2.1 脚本AI的定义
13.2.2 脚本语言的基本要件
13.2.3 嵌入
13.2.4 选择开源语言
13.2.5 语言选择
13.3 创建语言
13.3.1 优点
13.3.2 缺点
13.3.3 创建自定义语言的实际操作
13.3.4 工具:Lex和Yacc简介
第4部分 设计游戏AI
第14章 游戏AI设计
14.1 设计
14.1.1 示例
14.1.2 评估行为
14.1.3 选择技术
14.1.4 一款游戏的范围
14.2 射击类游戏
14.2.1 移动和射击
14.2.2 决策
14.2.3 感知
14.2.4 路径发现和战术AI
14.2.5 射击类风格游戏
14.2.6 战格斗类游戏
14.3 驾驶类游戏
14.3.1 移动
14.3.2 路径发现和战术AI
14.3.3 类驾驶游戏
14.4 即时战略类游戏
14.4.1 路径发现
14.4.2 群体移动
14.4.3 战术和战略AI
14.4.4 决策
14.4.5 MOBA
14.5 体育类游戏
14.5.1 物理预测
14.5.2 战术套路库和内容创建
14.6 回合制战略游戏
14.6.1 计时
14.6.2 帮助玩家
第15章 基于AI的游戏类型
15.1 游戏角色教学
15.1.1 表示动作
15.1.2 表示游戏世界
15.1.3 学
15.1.4 可预测的心理模型和病理状态
15.2 蜂拥算法和放牧游戏
15.2.1 制造生物
15.2.2 为交互调整转向行为
15.2.3 转向行为的稳定
15.2.4 生态系统设计
附录
参考资料
A.1 图书、期刊、论文和网站
A.2 游戏
返回顶部