游戏开发中涉及到人工智能算法

游戏中的人工智能和我们一般用于大数据或棋盘类的人工智能非常不同。游戏中的人工智能为了方便的控制和体现游戏演出效果,一般使用较简单的算法。

总体而言,游戏工业中涉及到的人工智能更多的是有多少智能就需要多少人工。下面将罗列出游戏人工智能的常用算法。

 

  1. 寻路

Dijkstra算法 最短路径算法。遍历路径中所有可能的及节点。效率低,没有启发式函数。

Asta算法 在静态网格中寻找最短路径的算法。有启发式函数。

Dstar算法 在动态网格中寻找最短路径的算法。有启发式函数

 

启发式函数:是否在寻路的过程中使用一些预估用的函数。

动态静态网格:我们在寻路的移动过程中,路径上环境是否会改变。

 

基于上述的算法。可以修改出带层级的寻路,基于网格的寻路。

 

  1. 决策

游戏中的NPC决策

状态机:AI的行为是基于一个个状态的。通过改变参数或环境触发状态转移来转换行动,在维护状态方面需要大量的人力,单单因为这一点,就限制了状态机在游戏中的应用场景。有许多开发者也通过创建层级状态机降低了维护难度,但不过无法从根本上来改变状态机难以维护的缺点

游戏开发中涉及到人工智能算法_第1张图片

行为树:通过一个树形结构图和特定的筛选节点,执行一个带有顺序的行为。其树的节点最有4类,顺序,选择,装饰,动作。通过组合这4类节点就能制作一个灵活的AI

游戏开发中涉及到人工智能算法_第2张图片

 

模糊逻辑:根据条件,不单纯的给出是否,而是给出一个隶属度权重的算法。通常用于避免AI在参数边缘上的抖动。

经典抖动案例:MOBA类游戏中低血量的AI在是否回城和是否继续攻击玩家上来回决策不定。直到被玩家击杀。

 

GOAP:Goal Oriented Action Planning

目标驱动的行动规划不仅仅能帮助AI知道做什么还能帮助其了解如何做。

在这套系统中,每个行动节点,不仅仅包含行动内容,还包括执行行动的可行性及执行完之后的效果。比如装弹这个动作,他的可行性为,枪膛是否已满及是否有多余子弹。结果是填满枪膛。通过Astar算法能将角色的行动节点串成一个行动序列,之后,AI就遵循这套行动序列执行对应的动作即可

游戏开发中涉及到人工智能算法_第3张图片

你可能感兴趣的:(unity,unity,游戏开发)