回合制游戏对战AI制作需要重的两个难点

时间:2015-08-26 12:29:19 来源:GameRes游资网

  

  游戏中的人机对战,“机”这一部分是由两个部分组成的:数值(比如bot数目、血量、命中率、技能cd、攻击力、防御力等等)和AI(人工智能,控制bot行为)。很多没入行的朋友经常把这两个概念混为一谈,然后铁口直断AI战胜玩家是非常简单的事情。

  先说结论:对挑战电脑的难度而言,AI和数值是相乘的关系,通过改良AI设计可以达到让电脑更具挑战性的目的。当前游戏行业普遍使用的都是弱人工智能,即通过预设AI使bot呈现人工智能的效果,请注意这个大前提。在制作AI的过程中,思路是非常简单的,就是将设计师的思维(或者叫人的思维)植入AI代码中。

  在一个具体的情势中,人会如何行为就设计AI如何行为,当然有一些具体的方法因游戏和关卡环境而异,比如战棋游戏的格子限制、剧情包装需要、关卡地形等。而设计的难点在于两个方面:

  1、设计师的精力和智力有限

  (1)先说精力有限

  遵照弱人工智能的设计思路,设计师需要穷举所有的战斗情势,对不同情势下的bot行为作出决策然后形成AI,而实际上战斗情势是几乎不可能穷举的。以简单的2V2回合制站桩战斗为例,假设这个游戏有2种职业,每个职业战斗中可使用2个技能,那实际可能的战场行为是9(职业组合)×4(技能组合)=36,另外还有很多其他数据也会影响AI行为,如血量、技能冷却、buff状态,而这些数据往往是连续的,如血量可以是1~n任意一个值,这些数据导致战斗情势复杂度指数级提升。鉴于此,AI设计过程中往往会进行很多简化,如90%以上生命值为安全,10%~50%为受伤,10%以下为濒死,而实际上呢,不同职业承受伤害能力显然不同的,T和奶同为10%的生命值,生存能力一样吗?即使相同职业面对特定攻击力的敌人,15%可能再挨一下就死了,50%可能能挨2下,但AI认为10%~50%是同一个情势,这个合理吗?当情势判断由于简化导致出现不合理时,AI的智能程度自然也会大打折扣。

  (2)再说智力有限

  通常设计师是一类游戏中最精通的玩家,他们面对游戏中一个具体情势时能很快给出比较合理的决策,但这种合理是有局限性的,当战场形势足够复杂,A、B决策短时间内都无法直观判断效果时,设计师其实也很难抉择最优策略,因此设计逻辑中可能存在大量次优策略,自然也导致AI智能程度下降。相比精力有限,智力有限的影响小很多,毕竟设计师是足以战胜大部分玩家的。

  2、硬件限制

  假设真有不开眼的土豪游戏公司,雇了一大帮牛B闪闪的设计师来设计AI,相信我,那个AI脚本的复杂度一定会超过你的想象。网络游戏AI由服务器计算,同一时间战斗的玩家很多,服务器CPU会因此不堪重负;即使土豪公司使用了宇宙级的服务器,但是要同时传送足够多的战场情势给服务器分析,网络带宽消耗也是非常大的,所以你还要交大把钱给中国电信。你真的够壕吗?对于单机游戏本质是一样的,将大量脚本载入内存,将大量运算交给CPU,会让你感觉电脑很“卡”。想象一下,人家玩3d的LOL飞起,你玩个2d策略游戏卡成马,你一定会默默撕掉笔记本外星人的logo,然后换上hasee……

  综上所述,目前回合制游戏AI智能程度是不及真实玩家的,阵容、装备、技能配置等完全相同的情况下,电脑干不过玩家。那么问题来了?为什么有时候你会打不过电脑呢?有时候会觉得“哇这一关很有挑战性”呢?其实就是设计师欺负人啦(打破规则赋予电脑更多数值),比如你100攻击力,电脑150攻击力啦;你7级,电脑9级啦;你的农民一次采10矿,电脑的农民一次采20矿啦;你50个兵,电脑80个兵啦……有些游戏所谓的简单模式、地狱模式基本上也是在数值上下功夫。

  因为AI和数值是相乘的关系,在同等挑战难度下,AI做得越好,电脑需要的额外数值越少,这个时候游戏会显得越有趣。试想一下,你的张飞和吕布对砍,1分钟内张飞需要每次攻击都暴击才能杀死吕布,否则张飞死,面对这样屌炸天吕布,你真的会乐此不疲地默默给张飞堆暴击吗?

  为了更好的AI一起努力!

投稿:chuanbeiol@163.com
点击展开全文

你遇到过鬼打墙吗,科学家给出了合理的解释!