电子游戏设计与制作 第六章 游戏中的人工智能
文章目录
- 1 游戏人工智能发展
- 2 游戏AI技术的分类
- 确定型AI算法
- 行为型AI算法
- 3 智能体agent与基本感官系统
- Agent基本感官系统
- 智能体感官系统组成
- 智能体感官系统设计
- 4 路径规划
- 路点法
- A*启发搜索
- NavMesh
- 5 有限状态机(FSM)
- 6 群体行为的模拟
- 7 模糊逻辑
- 传送门
考试内容
一、填空题(每空1分,共16分)
二、名词解释(每题3分,共18分)
三、简答题(每题4分,共16分)
四.设计题(10分)
1 游戏人工智能发展
- 硬编码(早期)
- Pong(游戏中最早使用)
- 格斗类游戏(推动了游戏AI的发展,预判玩家位置和行动)
- 策略类游戏(极大推动)
- 强化学习
2 游戏AI技术的分类
- 确定型:基于固定领域知识,模拟简单的固定行为
- 行为型:基于行为模式来模拟智能行为
- 策略型:策略模拟
确定型AI算法
预先编入代码当中的可预测的行为(例如:物体的运动轨迹)
跟踪追逐:在每一帧中,智能体计算其到目标的前进方向,并根据其速度,前进一段距离
逃避算法:与前面的chasing算法基本相同,唯一区别是智能体沿着远离物体的方向移动
行为型AI算法
例如:吃豆人
3 智能体agent与基本感官系统
智能体需要对其周围的事件、环境、玩家控制角色及其他智能体做出反应。
Agent基本感官系统
智能体感官系统组成
- 所在队伍
- 感觉(视觉、触觉。。。)
视觉:基于光线投射实现(缺点:并不是对视觉过程准确建模)
视锥:检测游戏对象与视锥是否重叠;从视野中心区到视野周边区域,游戏对象被检测到的可能性降低。
触觉:使用碰撞器检测
智能体感官系统设计
创新性组合(例如设计一个能感知魔法但没有视觉的NPC)
4 路径规划
路点法
物体移动路径事先确定
简单,是复杂寻路算法的基础。
使用该方法更容易微调AI智能体的行为
应用广泛(如TD类,祖玛)
A*启发搜索
总结
- 将起始位置添加到Open表.
- 重复做以下步骤:
a) 将Open表中具有F最小值的节点设为当前节点.
b) 将该节点从Open表中移至Closed表.
c) 对于当前节点的八个相邻节点:
如果相邻节点为不可走区域或已经在Closed表中,对这些节点不做任何操作. 否则作如下操作:
1)如果相邻节点没在Open表中,则添加入Open表。并将新加入Open表中的节点的父节点设为当前节点,并计算F、G、H值。
2)如果相邻节点已经在Open表中, 比较新路径到该节点的G’与原G的大小:如果G’<G,则更改该相邻节点的G值为G’,重新计算F,并设其父节点为当前节点.
d) 程序终止条件为:
当目标节点被添加到Closed节点(标志路径已经被找到),或
没有找到路径,并且开放列表已为空。 - 保存路径。 从目标节点开始,遍历所有父节点,直到起点为止。
NavMesh
- 设置静态导航Navigation Static
- 烘焙导航网格
- 为玩家控制角色或NPC添加导航网格代理组件NavMesh agent
- 通过脚本设置目的地
5 有限状态机(FSM)
自定义有限状态机行为
- 为状态添加行为脚本
- 行为脚本的事件函数
总结
- 状态规模很大时,设计非常复杂。
- 有限状态机一旦设计完成,难于动态变化。
- 应用于游戏当中的可预测行为。
6 群体行为的模拟
核心:群聚算法
三条规则:
- 凝聚:个体都在其邻近个体的平均位置上运动。
- 对齐:个体按其邻近个体的平均方向移动。
- 分割:个体都要避免与其邻近个体发生碰撞。
7 模糊逻辑
模糊逻辑起源
1965年,美国著名控制论专家Lotfi Zadeh教授----模糊数学
基础为:模糊集合论
模糊逻辑的运算符
模糊逻辑的应用
- 决策
- 行为选择
使用模糊逻辑帮你的人工智能角色做出模糊的判断。
传送门
上一章:电子游戏设计与制作 第五章 三维游戏中的场景管理技术
下一章:电子游戏设计与制作 重点回顾
电子游戏设计与制作 第六章 游戏中的人工智能相关推荐
- 电子游戏设计与制作 第一章 计算机游戏概述
文章目录 1 计算机游戏/游戏设计 2 计算机游戏发展简史 2.1 家用游戏机游戏的发展 2.2 计算机游戏的发展 3 计算机游戏的分类 RPG ACT ARPG FPS AVG 冒险类 STA 策略 ...
- 游戏设计的艺术:一本透镜的书——第六章 游戏以一个创意开始
这是一本游戏设计方面的好书 转自天之虹的博客:http://blog.sina.com.cn/jackiechueng 感谢天之虹的无私奉献 Word版可到本人的资源中下载 第六章 游戏以一个创意开始 ...
- Javascript第六章JavaScript中构造器创建对象第二课
Javascript第六章JavaScript用new创建对象第一课 https://blog.csdn.net/qq_30225725/article/details/89304586 Javasc ...
- 第六章 jQuery中的Ajax应用
第六章 jQuery中的Ajax应用 1.Ajax:客户端javascript所发起的http请求的代号,无刷新的数据更新. 2.编程模型: (1).同步代码:按钮按下 执行耗时操作 等待执行返回 ...
- 漫谈游戏中的人工智能
今天我们来谈一下游戏中的人工智能.当然,内容可能不仅仅限于游戏人工智能,还会扩展一些其他的话题. 游戏中的人工智能,其实还是算是游戏开发中有点挑战性的模块,说简单点呢,是状态机,说复杂点呢,是可以帮你 ...
- 《百面机器学习》试读 | AI热门应用之游戏中的人工智能
小编温馨提示 首先掌声恭喜上周第五个留言获得福利的幸运小伙伴 @羊????????????,请通过后台联系我们,我们会将奖品尽快寄出噢- 铛铛铛,本周将会连载<百面机器学习>人工智能领域热 ...
- 游戏中的人工智能(一)
人工智能的本质:让计算机能够像生物体一样,具有思考和决定的能力来执行某些特定操作. 人工智能研究的三个主大类领域: ① 计算机视觉: 从视觉输入源获取信息并对它们进行分析,以执行特定操作.(ex:脸部 ...
- 学习5 游戏中的人工智能(迷宫寻宝)
说明: <学习>系列所有的源代码均由<计算机游戏程序设计>提供.本人会在这些代码中融入自己的想法,对其进行迭代优化,旨在个人学习. 实现效果: (因为雾效粒子太逼真导致gif动 ...
- 基于虚拟现实的游戏中的人工智能:如何使用Python和Pygame实现人工智能
作者:禅与计算机程序设计艺术 <基于虚拟现实的游戏中的人工智能:如何使用Python和Pygame实现人工智能> 1. 引言 1.1. 背景介绍 随着虚拟现实 (VR) 和增强现实 (AR ...
最新文章
- script 录制终端会话
- OpenJudge/Poj 2001 Shortest Prefixes
- 跌宕起伏之windows 7安装
- linux常用命令:系统目录说明及命令ls,cp,touch,history,gparted分区
- docker修改容器映射的端口_解密 Docker 挂载文件,宿主机修改后容器里文件没有修改...
- 如何选择基于 Kubernetes 的 PaaS?
- 配置nginx作为静态资源服务器 css,js,image等资源直接访问
- 信息学奥赛一本通 1071:菲波那契数 | OpenJudge NOI 1.5 17:菲波那契数列
- IDEA UML图 实战
- vscode 多行 行尾_vscode 常用快捷键
- 大数据之-Hadoop优势_(4高)---大数据之hadoop工作笔记0011
- 117. php empty()函数坑
- 华为html如何自动换行,华为交换机不分页显示screen-length命令和screen-width每屏显示宽度-老肖的博客-51CTO博客,length怎么用...
- Win7安装Mysql8.0步骤
- 数据类型--Number类型
- 函数与Lambda表达式
- AR体感大屏互动系统解决方案
- 备战数学建模23-数据包络分析
- iOS 九年,技术迭代迅捷下如何保持核心竞争力?
- 大连先河计算机学校什么时候黄的,黑带联盟_235