Lua游戏AI开发指南

Lua游戏AI开发指南

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

利用Lua编程开发,专注于动作、动画和战术的游戏AI。

内容简介

游戏人工智能(游戏AI)是游戏开发的一个重要方面,在很大程度上决定了游戏产品的逼真程度和对玩家的吸引力,由此也得到游戏开发工程师越来越多的重视。

本书秉承把动画和运动系统直接集成到AI系统的方法,详细介绍了如何使用Lua语言及相关的技术和工具,编写和实现高质量的游戏AI。全书共9章,分别介绍了沙箱基础、创建和移动智能体、角色动画、意识控制、导航、决策制定、知识表达、感知和策略等主题。

本书适合于游戏开发工程师,特别是想要详细了解游戏AI开发的程序员阅读参考。

作者简介

章节目录

版权信息

内容提要

作者简介

技术评审简介

前言

第1章 从构建沙箱开始

1.1 AI沙箱简介

1.1.1 理解沙箱

1.1.2 项目文件组织

1.1.3 预先做好的构建

1.1.4 使用Visual Studio 2008/2010/2012/2013编译沙箱项目

1.1.5 开源库

1.1.6 开源工具

1.1.7 Lua IDE-Decoda

1.1.8 在Decoda中运行AI沙箱

1.1.9 创建一个新的Decoda项目

1.1.10 调试Lua脚本

1.1.11 Decoda的Watch窗口

1.1.12 Decoda的Call Stack窗口

1.1.13 Decoda的Virtual Machines窗口

1.1.14 同时调试Lua与C++代码

1.1.15 Visual Studio——附加到进程

1.1.16 Decoda——附加到进程

1.1.17 Decoda——附加到系统调试器

1.1.18 关联Lua脚本代码到Decoda

1.1.19 Lua虚拟机

1.1.20 Lua堆栈

1.1.21 Lua基础类型

1.1.22 元表

1.1.23 元方法

1.1.24 自定义类型

1.1.25 C/C++调用Lua函数

1.1.26 Lua调用C/C++函数

1.1.27 创建自定义数据类型

1.1.28 Demo框架

1.2 小结

第2章 创建并移动智能体

2.1 新建一个沙箱项目

2.2 创建文件结构

2.3 扩展SandboxApplication类

2.4 首次运行沙箱

2.5 新建一个Decoda项目

2.6 配置Decoda运行的可执行程序

2.7 创建一个沙箱Lua脚本

2.7.1 创建地板

2.7.2 添加光源

2.7.3 添加天空盒

2.7.4 在沙箱中添加网格

2.7.5 创建沙箱对象

2.8 发射方块

2.9 创建智能体Lua脚本

2.9.1 创建视觉表象

2.9.2 更新智能体的位置

2.9.3 更新智能体的朝向

2.10 智能体的属性

2.10.1 朝向

2.10.2 定位

2.10.3 大小

2.10.4 物理

2.10.5 知识

2.10.6 智能体的移动

2.10.7 智能体转向力

2.10.8 规避

2.10.9 规避障碍物和其他智能体

2.10.10 群组移动

2.10.11 创建一群追随者

2.10.12 转向力合计

2.11 小结

第3章 角色动画

3.1 骨骼和网格

3.1.1 网格骨骼

3.1.2 加载一个动画网格

3.1.3 显示骨骼

3.2 附加网格到骨骼上

给战士附加武器

3.3 动画片段

3.3.1 播放战士动画

3.3.2 战士动画

3.4 战士的姿势

武器姿势

3.5 操作动画

3.5.1 启用和禁用动画

3.5.2 循环动画

3.5.3 动画的长度

3.5.4 动画时间

3.5.5 归一化时间

3.5.6 重新开始动画

3.5.7 播放非循环动画

3.5.8 动画速率

3.6 动画混合

3.6.1 动画权重

3.6.2 混合窗口

3.6.3 混合曲线

3.6.4 线性混合

3.6.5 处理混合权重

3.7 动画状态机(ASM)

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.7.11 处理状态转换和状态请求

3.7.12 更新运行中的动画

3.7.13 动画状态机实例

3.8 构造一个武器动画状态机

3.9 构建战士的动画状态机

3.10 更新动画状态机

3.11 处理状态

3.12 小结

第4章 意识体控制

4.1 创建身体

4.1.1 创建战士

4.1.2 附加动画网格到智能体

4.1.3 创建障碍训练场

4.2 为动画状态机添加回调

4.2.1 处理回调

4.2.2 为ASM添加回调

4.2.3 更新ASM以调用回调函数

4.3 让战士射击

4.3.1 骨骼位置

4.3.2 骨骼旋转

4.3.3 创建粒子效果

4.3.4 粒子方向

4.3.5 对象删除

4.3.6 碰撞效果回调

4.3.7 发射子弹

4.3.8 处理子弹碰撞效果

4.3.9 射击

4.4 让战士奔跑

4.4.1 设置穿越障碍训练场的路线

4.4.2 跑过障碍训练场

4.5 创建大脑

实现意识体控制的方法

4.6 直接动画控制

4.6.1 死亡状态

4.6.2 空闲状态

4.6.3 下落状态

4.6.4 移动状态

4.6.5 射击状态

4.7 一个简单的有限状态机

4.7.1 初始化智能体

4.7.2 智能体FSM状态处理

4.8 间接动画控制

4.8.1 动画控制器

4.8.2 命令

4.8.3 命令队列

4.8.4 操作命令

4.8.5 姿势改变命令

4.8.6 死亡命令

4.8.7 下落命令

4.8.8 空闲命令

4.8.9 移动命令

4.8.10 射击命令

4.8.11 赋值成员函数

4.8.12 初始化控制器

4.8.13 添加命令处理函数

4.8.14 更新控制器

4.9 运行障碍训练场

4.9.1 创建直接控制智能体

4.9.2 创建间接控制智能体

4.9.3 间接控制智能体初始化

4.9.4 间接控制智能体更新

4.9.5 间接控制智能体的控制

4.9.6 产生一个间接控制的智能体

4.10 动作延迟

4.11 小结

第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.3 在导航网格中寻路

5.3.1 路径查询

5.3.2 查询结果

5.3.3 随机导航路点

5.4 路径信息

5.5 为战士添加随机寻路

5.5.1 更新智能体的路径

5.5.2 绘制路径

5.5.3 初始化导航网格

5.5.4 随意移动的智能体

5.6 创建更多的导航网格

5.7 小结

第6章 决策制定

6.1 创建自定义类型

6.2 智能体动作

6.2.1 添加数据成员

6.2.2 动作初始化

6.2.3 动作更新

6.2.4 动作清理

6.2.5 动作的成员函数

6.3 创建动作

6.3.1 空闲动作

6.3.2 死亡动作

6.3.3 换弹药动作

6.3.4 射击动作

6.3.5 随机移动动作

6.3.6 移动动作

6.3.7 逃跑动作

6.3.8 追逐动作

6.4 求值器

6.5 创建求值器

6.5.1 常数求值器

6.5.2 是否拥有弹药求值器

6.5.3 是否有生命危险求值器

6.5.4 是否有敌人求值器

6.5.5 是否移动求值器

6.5.6 是否存活求值器

6.5.7 能否射击敌人求值器

6.5.8 50比50机会求值器

6.6 决策结构

6.7 决策树

6.7.1 分支

6.7.2 决策叶节点

6.7.3 分支求值

6.8 构造一棵决策树

创建分支

6.9 创建一个决策树智能体

6.9.1 决策树的优点

6.9.2 决策树的缺点

6.10 有限状态机

6.10.1 状态

6.10.2 转换

6.10.3 有限状态机结构

6.10.4 辅助函数

6.10.5 添加状态和转换

6.10.6 更新有限状态机

6.10.7 添加实例函数

6.11 构造有限状态机

6.11.1 空闲状态

6.11.2 移动状态

6.11.3 随机移动状态

6.11.4 射击状态

6.11.5 逃跑状态

6.11.6 死亡状态

6.11.7 追逐状态

6.11.8 换子弹状态

6.12 创建一个有限状态机智能体

6.13 有限状态机的优点

6.14 有限状态机的缺点

6.15 行为树

6.15.1 行为树节点

6.15.2 辅助函数

6.15.3 更新行为树节点

6.16 动作

6.17 条件

6.18 选择器

6.19 序列

6.20 创建行为树对象

6.20.1 行为树辅助函数

6.20.2 选择器计算

6.20.3 序列计算

6.20.4 节点计算

6.20.5 继续行为树计算

6.20.6 行为树的更新循环

6.20.7 更新行为树

6.21 构造一颗行为树

6.21.1 死亡行为

6.21.2 逃跑行为

6.21.3 战斗行为

6.21.4 换子弹行为

6.21.5 射击行为

6.21.6 追逐行为

6.21.7 移动行为

6.21.8 随机移动行为

6.21.9 空闲行为

6.22 创建行为树智能体

6.23 行为树的优点

6.24 行为树的缺点

6.25 小结

第7章 知识表达

7.1 知识源

7.1.1 创建知识源

7.1.2 知识源求值

7.2 黑板

7.2.1 创建黑板

7.2.2 添加和删除知识源

7.2.3 知识源求值

7.2.4 设置和返回黑板属性

7.2.5 黑板的成员函数

7.3 创建战士的知识源

7.3.1 选择敌人

7.3.2 选择逃离位置

7.4 构造战士的黑板

7.5 更新决策求值器

7.6 更新行为动作

7.6.1 死亡动作

7.6.2 逃离动作

7.6.3 空闲动作

7.6.4 移动动作

7.6.5 追逐动作

7.6.6 换子弹动作

7.6.7 射击动作

7.7 小结

第8章 感知

8.1 事件

8.1.1 属性

8.1.2 发送事件

8.1.3 接收事件

8.2 管理事件

8.2.1 分配智能体团队

8.2.2 处理智能体通信

8.2.3 事件类型

8.3 创建智能体的感官

8.3.1 初始化感官

8.3.2 更新感官

8.4 智能体视觉

检测其他可见智能体

8.5 智能体视觉事件

8.5.1 看到新敌人的事件

8.5.2 看到新的敌人死尸事件

8.5.3 看到新的死亡队友事件

8.6 处理新看到的智能体

8.6.1 间歇性可见的智能体

8.6.2 限制智能体可视性的更新

8.6.3 创建事件处理

8.6.4 添加事件处理函数

8.7 智能体的听觉

8.8 听觉事件

8.8.1 子弹发射事件

8.8.2 子弹碰撞事件

8.9 处理听觉事件

8.10 清理黑板中的事件

8.11 清理听觉事件

8.12 团队交流

8.12.1 选择敌人事件

8.12.2 位置更新事件

8.12.3 撤退位置事件

8.13 更新智能体行为

8.13.1 选择敌人

8.13.2 评估危险位置

8.13.3 计算最佳逃离位置

8.14 小结

第9章 策略

9.1 影响力地图

9.1.1 单元格高度

9.1.2 单元格宽度

9.2 构造影响力地图

9.2.1 配置

9.2.2 导航网格的立体像素化

9.3 绘制影响力地图

9.4 访问影响力

9.4.1 设置影响力

9.4.2 获取影响力

9.5 清除影响力

9.6 传播影响力

9.6.1 单元格惯性

9.6.2 单元格衰减

9.7 影响力地图的图层

9.8 更新影响力地图

9.9 战士的策略

初始化和更新策略

9.10 团队影响力评分

9.10.1 初始化团队影响力

9.10.2 更新团队影响力

9.10.3 配置团队影响力

9.11 危险区域评分

9.11.1 利用智能体事件

9.11.2 添加事件处理器

9.11.3 初始化危险影响力

9.11.4 更新危险影响力

9.11.5 配置团队影响力

9.12 小结

Lua游戏AI开发指南是2017年由人民邮电出版社出版,作者David。

得书感谢您对《Lua游戏AI开发指南》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
DirectX 12 3D 游戏开发实战 电子书
本书讲解如何使用DirectX12进行3D游戏的开发,从基础开始,由浅入深地引导你进行学习。
libGDX移动游戏开发从入门到精通 电子书
随着移动互联网的快速发展,移动端的游戏开发已经成为发展迅速、市场潜力巨大、前景诱人的开发方向。作为一种游戏引擎,libGDX让更多梦想加入游戏开发的人圆梦。本书全面介绍了使用libGDX进行游戏开发时所需要用到的知识,其中包括libGDX的详细介绍、libGDX的UI编程、libGDX的配套开发工具、libGDX中所遇到的一些问题的解决方案。本书并不局限于介绍libGDX编程的各种理论知识,而是从
HTML5游戏开发案例教程 电子书
本书是HTML5游戏开发课程教材。全书分为6章,内容包括构建Canvas开发环境、Canvas基本功能、CreateJS函数库、简单效果案例、HTML5小型游戏、太空英雄大战游戏。全书每章内容与实例紧密结合,并与极客学院网站视频教学课程相结合,学生可以扫描二维码进行视频课程学习,有助于学生随时理解知识、应用知识,使得视频、书籍和课堂紧密配合,达到学以致用的目的。
Unity 游戏开发技术详解与典型案例 电子书
本书对Unity3D集成开发环境界面、脚本的编写和众多特效的实现进行了详细介绍。全书共分16章。主要内容包括:Unity3D基础、Unity3D集成开发环境、Unity脚本的开发、Unity图形用户界面基础、物理引擎、着色器、常用着色器特效、3D游戏开发的常用技术、光影效果的使用、模型与动画、地形与寻路技术、游戏资源的更新、多线程技术与网络开发、Unity2D游戏开发、常用性能优化技术、休闲游戏等
Unity 3D游戏开发(第2版) 电子书
本书涵盖了Unity 3D实际应用中的各类功能,全方面讲解了其运行原理。