游戏开发论坛

 找回密码
 立即注册
搜索
查看: 11350|回复: 9

回合制游戏对战AI制作请重视这两个难点

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2015-8-25 15:29:46 | 显示全部楼层 |阅读模式
QQ截图20150825152906.jpg

  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一起努力!
  相关阅读:BehaviourTree AI 行为树AI 实现的一些总结思考
       AI设计:如何给动作游戏的敌人设计人工智能?

29

主题

487

帖子

953

积分

高级会员

Rank: 4

积分
953
发表于 2015-8-25 17:16:26 | 显示全部楼层
说回合制AI难弄的 那些RTS游戏的AI都无语了。他们除了技能选择还要寻路。

0

主题

86

帖子

453

积分

中级会员

Rank: 3Rank: 3

积分
453
发表于 2015-8-25 17:36:04 | 显示全部楼层
软文

0

主题

26

帖子

161

积分

注册会员

Rank: 2

积分
161
发表于 2015-8-25 19:42:24 | 显示全部楼层
简单的2V2回合制站桩战斗为例,假设这个游戏有2种职业,每个职业战斗中可使用2个技能,那实际可能的战场行为是9(职业组合)×4(技能组合)=36

没看懂怎么算的

2

主题

91

帖子

723

积分

高级会员

Rank: 4

积分
723
QQ
发表于 2015-8-26 09:47:51 | 显示全部楼层
白岩松 发表于 2015-8-25 19:42
简单的2V2回合制站桩战斗为例,假设这个游戏有2种职业,每个职业战斗中可使用2个技能,那实际可能的战场行 ...

应该是想说 2v2 单边有 3种不同的职业组合情况 ,aa ab bb 然后对面也有同样的aa ab bb。然后就简单的3x3=9了。。
然而可能有重复的情况,比如aa vs ab 和 ab vs aa。,但是可以用先后手的说法解释

2

主题

91

帖子

723

积分

高级会员

Rank: 4

积分
723
QQ
发表于 2015-8-26 10:04:06 | 显示全部楼层
硬件限制完全就是鬼扯,ai算法很耗计算机性能?说实话你玩3d游戏移动角色或者改变下视角,这其中涉及到的3d图形变换计算消耗的资源都比你说的计算ai算法要多得多。

说实话我玩这么多游戏,只听过游戏画面卡帧掉帧,服务器延时造成的卡,还是第一次听说ai会卡游戏的。

0

主题

26

帖子

161

积分

注册会员

Rank: 2

积分
161
发表于 2015-8-26 11:52:43 | 显示全部楼层
ludi369 发表于 2015-8-26 09:47
应该是想说 2v2 单边有 3种不同的职业组合情况 ,aa ab bb 然后对面也有同样的aa ab bb。然后就简单的3x3 ...

先后手,你确定要为了硬凹自己的说法加先后手吗?

再想想加了先后手凹的回来吗

2

主题

91

帖子

723

积分

高级会员

Rank: 4

积分
723
QQ
发表于 2015-8-26 17:24:07 | 显示全部楼层
白岩松 发表于 2015-8-26 11:52
先后手,你确定要为了硬凹自己的说法加先后手吗?

再想想加了先后手凹的回来吗 ...

我又不是作者,我只是试着解释9种的原因。。

11

主题

72

帖子

205

积分

中级会员

Rank: 3Rank: 3

积分
205
QQ
发表于 2015-9-10 10:29:19 | 显示全部楼层
traso 发表于 2015-8-25 17:16
说回合制AI难弄的 那些RTS游戏的AI都无语了。他们除了技能选择还要寻路。

我也想到了星际。。

0

主题

22

帖子

2214

积分

金牌会员

Rank: 6Rank: 6

积分
2214
发表于 2015-9-10 10:46:28 | 显示全部楼层
这~最后那段 AI 与 数值的关系,真~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 17:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表