1. 如果我放Gank小队实力明显强于目标敌方小队,则发动Gank,并锁定5(参数)秒。Gank期间英雄优先执行Gank AI,屏蔽掉单体行为。Gank结束锁定后。重新生成Gank小组,重新判断形势,决定是否发起新的Gank。
2. 当我方Gank小队实力明显弱于敌方时,集体执行撤退到己方前沿塔。但并不进入Gank行为。
3. 均衡局面,如果有敌方单位可秒(可秒的含义是,gank小组的输出期望是目标单位hp的1.6(参数)倍),则立刻发动Gank。否则调整我方站位,综合防御最强的英雄位置保持不变,脆皮远离敌小队中心,但不能离开坦克超过(1000参数)。调整站位是单体AI行为,战略AI通过参数来控制单体行为(发送指令buff,发送目标位置)。
3.3.2技能伤害量化如果希望AI精准的释放技能,量化技能伤害是至关重要的。并不是所有技能都是直接立即伤害的,AI要怎么理解自己的被动技能和buff技能?
我们做的处理是:
默认在一次Gank周期中AI可以普通攻击三次,或者5秒。
将被动技能,比如暴击和加速之类的,直接量化为三次攻击或5秒攻击中的伤害收益。
晕眩技能根据晕眩时间量化成额外伤害百分比。
辅助技能仅仅起加强队友作用的,伤害量化为0
当技能全部量化成具体数字之后,就能计算每个英雄在单次Gank中的伤害输出期望值了。
英雄威胁值
我们用英雄威胁值来表征英雄在单次Gank中的伤害输出期望值。
威胁值的计算:
首先遍历场上所有英雄,根据英雄技能等级和CD状态预估出来技能的三种伤害(物理,魔法,真实)数据。
对峙双方如果威胁值总和差别很大(参数60%),则认为非均衡局面出现。优势一方会立刻发起Gank,进入团战模式。而劣势一方会立刻进入集体撤退状态。
威胁值相差不是很大时,英雄表现为单兵行动。此时威胁值的主要作用是敌对目标选择。
3.3.3 GankTarget选择GankTarget的选择方式——寻找最具吸引力的敌方单位,改进版的吸引力公式:
这个公式综合考虑的因素有:敌人是否高AD或者高AP?物理护甲和魔法护甲如何?当前血量?我方集火的情况下,伤害总输出能杀死他几次?
最大吸引值得敌方英雄会成为Gank小组的共同目标
4 总结在本文中,我们按照从零开始逐步展开,完整描述了MOBA英雄AI的设计流程。限于篇幅,我们仅仅描述了最核心的框架,诸多细节都未展开。在手游 MOBA《全民超神》项目中,按照这个框架,我们在短短一个月时间内就实现了英雄AI。
本方案原创了两个核心设定:Gank和技能伤害量化。
Gank的设定让AI能够有效的躲避危险,也能很精准的捕捉战机,完成很多让人赞叹的绝妙击杀。
伤害量化,让AI理解自己技能的特性。对AI行为收益优化帮助很大。
问答
我正在学习AI,我可以实施哪些游戏来实践它?
相关阅读
类守望先锋游戏AI设计
用人工智能打王者荣耀:匹茨堡大学&腾讯AI Lab为游戏AI引入MCTS方法
当人工智能遇到游戏