
楼上各位大神聚集在了一起...本人在这里就介绍一点思路吧
我很早以前做个dota类地图的ai,不过那个比较菜。还转了一个帖子
https://tieba.baidu.com/p/1181731417现在研究了dota2的ai,虽然说不是基于war3的了,不过ai的思路应该和dota1的差不多吧。参见v社的dota2AI说明
https://developer.valvesoftware.com/wiki/Dota_Bot_Scripting:zh-cn总之,AI系统大概是一个多层状态机,最上层是团队级别,控制团队的策略,中间是英雄级别,控制单个英雄的策略,最下面是行为级别,控制各个英雄的具体操作。模式是一种高级的要求,机器人会频繁地在模式间切换,选择最高分数的模式作为它们当前行为的模式。例如对线,尝试杀死某个单位,打钱,撤退和推塔等模式。dota1的AI似乎也是如此的一个多层状态机。
看见everguo在13楼问的问题"AI的配合比较难搞",比如说如何决定一个英雄是否去gank,可以先计算出gank模式的优先级,判断是否为当前最高的模式,如果是,则发起gank。计算方法可以是这样:首先计算本英雄的技能爆发,和可参与gank的英雄技能爆发,看爆发能否击杀敌方的某个英雄。然后综合英雄状态,距离等等状态。至于团战的话,就是每个英雄的技能单独考虑了,如范围技能尽量击中多个人,控制技能不要重复而且尽量给敌方输出较高的英雄使用。
————分割线——————
如果有朋友对dota2AI感兴趣的话,可以看这里:
https://github.com/adamqqqplay/dota2ai,一个本人基于dota2默认AI开发的一个AI系统