游戏AI的生命力源自哪里?为你揭开MOBA AI的秘密!

英雄AI的目的主要有:

1.新手过渡局,让玩家刚进入到游戏时,和较弱电脑对战,培养成就感,避免尚未熟悉游戏导致的挫折流失。

2.人机对战,给玩家练习新英雄或者挑战高难度电脑的机会。

3.温暖局,对连败玩家,匹配机器人去补偿一场胜利,舒缓连败挫折。

4.掉线托管,用强度合理的AI来补位掉线玩家,减少其他在线玩家的掉线局有损体验。

英雄AI的设计原则是:优秀的AI并不要求是尽量的和人表现一致,也不是多么的精准和无懈可击,而是能够和玩家进行很好的交互,提升游戏体验。

1.2 设计思路

我们的AI实现分为四个阶段,正好类似于玩家的成长。

第一阶段是基本战术AI,主要包括:混线,买装备,逃避危险,回城,补兵。是一种单兵作战AI。模仿新手玩家的刚刚开始学习操作。

第二阶段是增加一些事件响应用来控制英雄的走位和换线,包括敌塔下撤退,救援己方塔,包括抱团。模仿玩家已经开始渐渐了解塔的属性,初步开始与其他玩家合作。

第三阶段是协同战术AI,该AI周期性的判断是否应该果断出击打出一波局部进攻。它会在比较短的时间内控制局部范围内的单位一起行动,会有走位,配合使用技能等较细致的行为,是一种小团队AI。模仿玩家已经开始熟悉所有英雄,微操提升,对Gank略有心得。

第四阶段是战略AI,整体协调全部玩家在地图上的分布,野区,兵线。模仿玩家已经有较强的团队意识,会分工和配合了。

2 名词解释

1. 单体战术AI:每个英雄都会配备自己独特的战术AI,此AI将实现战斗细节,比如英雄何时该释放技能,对谁释放;如何走位规避风险或者形成Gank优势站位;怎么补兵;购买贩卖何种道具;何时追击何时逃跑等等。

2. 全局AI:全局AI是一种综合考虑场上所有战斗因素之后对单体发布指令的控制器。全局AI所关注的事情主要有:兵线英雄的分布,Gank发动时机,逃避危险,救援建筑。全局AI是通过给单位添加指令buff和修改单体战术AI的参数来实现的。

3. AI参数:我们将尽可能的暴露出AI的各种行为参数,并通过AI参数来控制电脑的AI难度强度。高难度AI,意味着它优先使用较高收益的战略。而低难度AI则可以选择比较低收益的战略。我们的不同难度AI是通过修改AI的一系列参数来实现的。

4. 行为树:树形结构的行为流程处理,每个Tick到来时,行为树按照一定的规则进行搜索和执行相应节点,直到到达某个返回true的叶节点,之后结束当前Tick。

5. Gank 小组:Gank小组是一个动态的局部的概念,当我方英雄A周边有敌对英雄时,英雄A就是属于某个Gank小组的,Gank小组的其他成员必须和A距离很近。

6. Gank 行为:Gank行为是一种对集体行为的模仿,其本质仍然是单体AI,但Gank发动时机是通过全局AI来控制的。处于Gank状态的机器人会表现出与单体行动很不一样的行为,比如坦克可能宁死也不撤退,ADC优先释放控制技能。

3 行为树实现 3.1行为树脑图

行为树脑图是一个多叉树,各个父节点的所有子节点节点按照从左到右、从上到下的顺序逐个检测,只要返回True了,之下的节点都不再执行。灰色注释为节点执行的先决条件,灰色节点不满足则直接返回False。脑图中的

img

对应着行为树中的Selector节点。

行为树工具基本思想都一致,但使用起来还是有较大差别的。常见的是Unity3D的BehaviorDesigner插件,虚幻四自带的行为树组件,公司内部的Behaviac。我最喜欢的是BehaviorDesigner,学习时还是推荐Behaviac,传送门:%E9%A6%96%E9%A1%B5/

原因比较简单,只有它是中文。

img

这是一个尚未展开的行为树,每个超链接都对应一个子树,会逐个展开来讲解。

3.1.1购买道具

img

英雄购买道具需要提前写好英雄对应的阶段道具设置。

比如:

img

出装流程

每隔一段时间检测一次金钱是否可以买卖下阶段的道具。

3.1.2濒死逃亡

img

3.1.3 Gank战术行为

img

每个英雄都需要单独编写此子树。首先搜寻最优攻击目标,而后检测是否能用技能组合一次秒之。

最优技能释放目标搜索

满足以下条件的单位应该优先被锁定:

1.HP较低

2.AP或者MP较高

3.物理或魔法护甲较低

4.处在友方其他英雄攻击范围内

我们可以使用如下计算公式(本文里面的任何公式都不一定是最优解的,但都满足定性的设计要求):

img

其中a,b为参数,AllyNearBy为敌方英雄600码内我方英雄数量,每增加一个盟友,敌人的诱惑程度增加b。推荐参数值a=0.7, b=0.3

技能是否使用只对最优释放目标进行考虑。

3.1.4推兵线

img

英雄磨血节点需要考虑收益,计算公式:

img

收益值要考虑率较多因素,包括敌我双方血量,敌方英雄的同盟单位,收益值可能为负值。

3.1.5执行AI行动指令

img

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdfxj.html