现代的游戏AI很多是由专门的AI引擎来实现的,如果用文字把AI的规则写下来,那是非常的多
MOBA( Online Battle Arena)中文译为多人在线战术竞技游戏。 online battle arena(MOBA),也被称为Action real-time strategy(Action RTS,ARTS)
这类游戏的玩法是:在战斗中一般需要购买装备,玩家通常被分为两队,两队在分散的游戏地图中互相竞争,每个玩家都通过一个RTS风格的界面控制所选的角色。但不同于《星际争霸》等传统的硬核的RTS游戏,这类游戏通常无需操作RTS游戏中常见的建筑群、资源、训练兵种等组织单位,玩家只控制自己所选的角色。
MOBA游戏相比传统的RTS游戏更偏向于休闲娱乐,对玩家的操作要求均远远低于RTS游戏。再加上这类游戏中很多是免费游戏,因此吸引了一大批难以适应RTS游戏大规模高要求操作的玩家。因为不再过高地要求玩家的操作水平,这个玩家群体比传统RTS游戏的硬核倾向的玩家群体要大得多。
1998年,《星际争霸》发行,暴雪娱乐公司第一次在暴雪娱乐制作并发行的游戏中绑定了地图编辑器。利用这款地图编辑器,当时有一位叫做Aeon64的玩家制作出一张名为Aeon Of Strife的自定义地图,这就是所有MOBA游戏的雏形。在这个自定义地图中,玩家们可以控制一个英雄单位与电脑控制的敌方团队进行作战,地图有3条兵线,并且连接双方主基地,获胜的目标就是摧毁对方主基地[2] 。值得一提的是,这款老地图现今依然在《星际争霸Ⅱ》中保持着更新。
这张星际争霸的自定义地图是DOTA的前身,也是所有moba的雏形,因此MOBA游戏的源头应该追寻至《星际争霸》时代的RPG地图。到英雄联盟的出现,在刚开始英雄联盟自称为类DOTA游戏,但随后拳头游戏开始将游戏定义为MOBA游戏,随后MOBA游戏的叫法开始更加流行,但本质上是从类DOTA游戏进化过来的游戏类型,它囊括了比“类DOTA游戏”更多的内容,甚至连DOTA自身也开始被定义为MOBA了。
应该是AI 就是人工智能( ),英文缩写为AI
们游戏开发中,很多时候会用到Ai,什么是Ai,就是智能。比如boss,他作为我们要击杀的对象,当我们去攻击它,他会攻击我们,并会释放技能,当他血量很弱少,有些怪物会发动狂暴,暴击等技能,来维护保持它的状态。那么它作为一个怪物,他就是智能的,我们设计这样一个boss,就是要设计它的Ai。
我们以dota为例,先进行一些ai分析。小怪,也就是那些30s一刷新的怪物,杀死之后会得到经验,他们其中有的2人一组,3人一组,或者好几人一组,默认情况下,是躲在 他的领地,保护着他的巢穴,我们的角色攻击他时,它们就会攻击我们,有技能的一直放技能,知道蓝用光,没有技能的一直a;这是我们发现打不过他们了,我们才1级,血薄蓝少,怎么办,跑啊,我们的移动速度高于小怪,我们就能跑了,那么小怪呢,他会一直跟着我们,直到我们的角色跟它的距离超过一定距离,或者它距离他的老巢超过一定距离,他们就会回家,不跟我们玩了。所以小怪的ai设计还是比较容易的。
dota中还有一种ai,就是我方一直派出去的小兵,他们每隔一定时间生成,并向着敌方塔移动,我们有一种技巧,叫卡小兵,挡在小兵的前方,这时小兵发现,前面被挡住了,“让开,我要向前走”,当然它可以这么想,我们不一定会这么做,怎么办,它们只能绕道走,怎么走,该往哪走,我们有过这样的经验,就是你中午着急去取餐,走在2楼的桥上,这时候,前方有一个走的很慢的人,挡住了你的路,怎么办,懒得跟他交流,绕过他,找绕过他距离最短的路线,如果我们的身体中心为一条线,和对方身体中心线比较,如果离左面近,就会从他的左边绕道,反之,右边,小兵也是一样,我们每个角色身体都占有一定的空间,怎么好过,怎么绕。但小兵在被挡住那一刻还是有一定的迟疑的,为了体现他在思考,不至于那么imba,这时候我们发现他想绕过我们,我们循序往它要绕的方向移动,再一次挡住了它的去路,再一次迟疑,再一次绕,如此往复,直到遇到对方小兵。
前方说到小兵绕,这其实,就跟寻路有关,小兵怎么知道左边绕一定比右边绕近,万一到了右边发现是个死胡同呢,这就是寻路,如果你说前面不是说,用简单的算法就能算出往左往右,把算法弄大,弄多不就行了,但是别忘了,有一种神牛的存在,就是放置沟壑,把前方整条路都堵死,如果按照走一步算一步的操作,小兵能够顺顺利利到达沟壑那,然后呢,又不能跳过去,这时我们发现小兵发现前方有沟壑不是走到沟壑那,而是从别的小路绕过了沟壑,你一定会说,小兵是着一定的行家啊,哪都知道怎么走,但是我要说,这其实就是自动寻路寻找最短路线到达目的地的一种技术。
全年说到的都是小兵啊,怪物,他们的设计一定按照他们的自身状况,不能设计的太鸡贼,毕竟不是高等生物人类么,但是有时候我们就是要设计这种高等生物,人类,什么呢,机器人,玩过王者荣耀的都知道,掉线之后,我们的人是被操控的,被谁操控的,ai啊,他们跟人类的操作很像,a你,放技能,打小兵,你完全看不出什么,你去杀他,他也会反击。那么这种机器人有什么好处呢,当有人掉线,ai会控制他,不至于造成5打4的局面,还有就是当游戏发展初期,玩家数量较少时,无法满足玩家一上线就有很多玩家跟他一起开站,那怎么办,仿人类的机器人跟他们玩,让这个用户留存下来,这样越滚越大么,那么怎么设计机器人呢,下面说说高等ai是怎么做的。
既然是高等ai人类,那么人类的喜怒哀乐都会在他身上体现。他一个人在那,周围没有人的时候,他会想,他去干嘛,先升级,这时候遇到其他人类,先下手为强,攻击他,打着打着,发现打不过,跑啊,能跑多快跑多快,终于能跑到安全的地方,怎么办,不是傻站着,补充恢复啊,这时候等级上来了,遇到个人,杀呀,发现对方快没血,也跑了,怎么办,追,发现对方跑的有点快,算了,不累了,或者追的过程遇到其他玩家,还得跟他作战,这时候追的残血玩家回来跟他一起杀你,你又血量不足,还是要跑,往哪跑,往没人的地方跑,哪没人,我可是机器人啊,整个游戏数据,服务器数据我都能知道(当然,还得是这个时空,不能说你跑到了别的房间,穿越了!)所以这样鸡贼的机器人,属于高级ai,这种ai,除非你们一起围堵他,不然,很难杀死。
那么都是这种机器人,那玩家玩个屁呀,所以ai也要有ai的难度等级,不同等级,对应不同程度的鸡贼,这个等级,可以根据附近玩家的等级,进行一定的算法运算得到,所以很灵活的。
引用自:网页链接
自己可以打开地图的jass脚本去看的,星际里也有script可以看。 War3时代,底层寻路是地图分Tile之后的A *寻路,上层逻辑估计就是FSM有限状态机,经过这些年发展,现在游戏里寻路还是基于导航网格()的A*,上层AI很多是Behavior Tree来实现的。 游戏和工程的AI目标完全不同的,游戏的AI是看起来聪明、表现多样;工程上我熟悉的多是为了解决组合爆炸问题,通过AI算法求解。但工程上的AI算法也有各种限制,例如遗传算法的过度收敛、收敛到局部解、神经网络的权重训练出来人不可理解、多少个神经节点能解决特定问题的没有定义,等等等等还有大量问题,这些对于游戏开发这种需要控制开发周期和确定性结果的工程设计都不利啊!所以游戏这种密集开发的软件工程,一是AI不需要这么复杂的算法就能实现,二是AI算法很多不稳定和难理解控制并不适合游戏快速迭代开发。