<星际争霸2>是个半成品 ~~~《如何让AI不那么聪明》
原文:Intelligent Mistakes: How to Incorporate Stupidity Into Your AI Code作者:Mick West
翻译:Tommo
节选几段:
踢假球
“踢假球”是个体育方面的词汇,它意指某一方有意地做出一系列看起来自然的失误,从而让对方赢得比赛。这是一种被所有运动员和观众所不齿的行为,因为它破坏了体育比赛最重要的“公平竞争”。
但是在电脑游戏当中,与电脑对手的“公平竞争”是不可能出现的。因为双方分别是拥有亿次计算速度的电脑,和拥有高度并行处理能力的人脑。
任何的均势在这在里都只不过是一种假象,这种假象正是我们所需要改进和维系的,而我们通过引入智能的失误以及人为的愚蠢来实现。
电脑需要“踢假球”来让游戏变得有趣。 当你“打败”电脑时,你认为你赢了,但这只是假象,实际上,是电脑让你赢的。我们只是想要让你能够觉得自己“赢得实实在在”。
AI程序员需要习惯这种思维。 我们是在调整游戏,创造出人为的、伪造的愚蠢,而不是在试图“主宰”游戏的结果。
我们不是要在设计一个“想输”的AI,而只是要给人类对手一些合理的取胜机会。当人类对手做得不好时,AI仍然有机会胜利,但这时玩家至少会认为“他有机会打败一个强大的对手”,并因此获得继续游戏的欲望。
隐藏的缺陷
电脑象棋专家Steven Lopez是在描述人与人之间的象棋对弈时说:一个高段的棋手与一个低段的棋手对弈时,高段的棋手可以在开始前让给对方几个棋子。这样一来,就算高段棋手倾尽全力而不是故意在棋局当中“放水”给对手机会,比赛也不会呈一边倒的局势。
尽管如此,人与电脑之间的对弈并不是像这样依靠“让子”来取得平衡,而是选择“水平”大致相近的AI对手。
电脑棋手Fritz的作者采用了这样的办法: AI先是故意设下一个人类对手(在一些考虑后)可以取得优势的局面,比如棋子或是位置。一旦人类玩家获得了这个优势,AI就恢复到“全力争胜”的模式。
AI从来不会真的“秀逗”,也许有时看起来像,但它实际上是在进行着数量更多的计算,这些计算往往也比“正常”的时候更为复杂。
至此, AI的目标已经从“赢得比赛”转换到“佯装要赢,但留给人类一线之机,然后再赢回来”对于AI来说,它真的需要些“大智”才能“若愚”。
人为的失准
在桌球或是射击游戏当中,电脑AI可以保持无往不胜的准确性。射击AI可以把弹道精确到万分之一英寸,并在五公里外打飞你的帽子。而在桌球里,AI知道所有球的精确座标,并可以在击球前知道所有球之后的走位。
当我在实现我自己的斯诺克AI时,它可以完美地反弹两次然后打落任何球,而且几乎可以每次都打满147分(除非白球落袋,因为没有控制走位)
显然,这家伙不是什么有趣的对手,所以就算在最高等级的难度当中,准确性依然需要降低,而反弹击球更是要被严格地限制。
简单地降低AI的准度并不总是改善游戏性的最优解。就好像我在开篇时提到的“不存在的走位控制”,随机的输出很可能让电脑的行为看起来是“有意的”。如果白球停在了一个有利的位置,又或者幸运地叫到了黑桃同花顺,人们会认为这是不公平的甚至会认为AI在作弊。
所以, 在棋类游戏当中,与其降低准度,倒不如提高准确率,同时让AI创造出玩家可以获益的局面,以此让游戏过程变得刺激;在台球游戏中,不要无所顾虑盲目地击球,AI应该在故意打偏的时候让白球走到一个更加利于玩家的位置; 而在射击游戏里,敌人不能总是随机地高呼“向我开炮”然后跳出掩体。他们应该只是“偶尔大意”地把自己扔到枪口下,并且应该是在最尊贵的观众——玩家——靠近自己的时候。 顶一下这个 标题都不忘记黑一下,哪怕内容完全无关....
AI的话本来众多行动都是“装”出来的,最简单,他有必要探路探图么。
一切AI其实也只不过是为人服务,要是纯粹为了赢的话,直接无限资源从开局就N兵营不停出兵打到你残就是了。棋类AI更加是,从玩家第一步动作基本上已经可以计算整个局面所有的可能性,要赢是赢定的...牌类的话则还是要受到随机抽牌这个程序的干扰,你AI再高给你一堆烂牌也是枉然.
文章最后那段看似很有道理其实对我们毫无意义.不过作为一名AI设计人员,这些还是必须了解的 本帖最后由 zgsmark 于 2011-4-13 22:16 编辑
回复 4# hejiawei88
我言下之意是,程序员完全可以设计AI获得全屏资料,所谓的探路只不过是类似文章所说的装一装人类行为而已。
而这篇文章就是说要怎样设计AI,所以那些游戏的AI代码才要去探路... 天天发这些,看的我眼睛老茧都长出来了。
综合区能过滤掉暴雪有关话题就好了........ AI不过就是会偷指令罢了。在由它演算的游戏中,有个屁公平。
AI和人下棋,并不是必胜。 楼主傻了吧。。。你玩最高指挥官,也不过是在玩游戏设计人员专门给你留的AI破绽而已。自己不懂这些文章的意思就好了。还非要发出来让别人嘲笑你。。。。。。。。。 偷指令不算作弊吧。
就好像人打一个源码暴露的AI,知道AI就这一招,就这一个流程,针对的打,也不能算是作弊啊。
不想被偷指令可以全程手控啊。 这是联动贴。。。联动 星际2的几个视频 偷指令不算作弊吧。
就好像人打一个源码暴露的AI,知道AI就这一招,就这一个流程,针对的打,也不能算是作 ...
mmasb 发表于 2011-4-13 22:56 http://bbs.blacksheepgame.com/images/common/back.gif
你任何控制都是即时暴漏给AI的,你程序操作还玩的过程序本身?
就好像格斗游戏,只要AI愿意,可以拳拳破你招。因为你输入的控制指令本身就是给它看的东西。 黑的很好。。。呵呵 格斗那太简化了,招数你也知道怎么破,只是反应手速没有AI快。
如果放慢了那就跟下棋差不多,算呗。
围棋AI都下不赢人。
RTS就更不用说了,看怎么设计了。
最起码,对战AI能开图就绝对是作弊。因为规则里没有开图的。
规则里,对战AI和人类都只能获取游戏设置信息,初始地图信息,和单位视野内的信息。
而坦克的单位AI怎么编的,具体会自动打哪个单位,本身也是游戏设置的一部分啊。
对战AI当然可以获取并从中获利,这不能叫作弊。
这其实也不算读指令,只是预测事先算指令。
具体读指令当然算是作弊。
就好像人类也知道在坦克阵里空投小兵引起溅射自伤,这能叫作弊吗?
对战AI如果牛逼到可以自己叫停坦克,完全无视预设单位AI,也就没人用这招了。
如果你可以手控坦克指定狗轰击,对战AI还怎么预测?
那个狗躲坦克的视频,AI真正作弊应该是在可以获取到视野外坦克的位置信息上。 回复 15# mmasb
不知道人类对战累积经验,对AI来说,算不算作弊
AI躲避坦克没有作弊,因为AI知道坦克的射程,视野范围,并且对面坦克“AI”必然攻击的地方已经被AI自己算出来了 16楼
对呀。比如如果只有一只狗向坦克冲,那我也能知道坦克什么时间在什么位置会轰死这只狗。
但是如果坦克全程手控,那我除非读心,就不可能预测了。
星际1里的例子更清楚。
潜伏平时是自动攻击的,枪兵走过去就会被扎,这谁都知道,AI也知道,我也知道。
但是如果同盟诈骗或者狂按S,就可以等一群枪兵都走近了再一起扎。
对战AI如果还是靠单位AI判断,那也就上当了。跟人类没区别。除非它开图,或者直接截取指令。
单位AI 其实就是对战AI的经验
而人类的积累经验不能算是作弊,但是如果事先可以读对战AI代码,了解对战AI风格,这就很难定义了。
就跟下棋一样,可以了解对手,打谱,但是没办法拆开对手脑子研究。 楼主想法不错,但实现起来太难。 RTS 规则里面有开图 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 本帖最后由 RainCoat 于 2011-4-14 09:34 编辑
咱觉得现在AI的问题还是太笨而不是太聪明
AI不会创造新的战术 不会通过录像和战术文章来学习 不会观察对手的习惯来找到破绽 AI无法处理复杂的宏观大局战略 AI无法理解人类的语言 无法根据队友的战术来进行配合
星际争霸2的AI也还是太笨 因为即使在局部操作上再无敌 现在星际争霸2的AI也无法在没有任何作弊(资源、开图等)的前提下击败中等水平的人类玩家 做一个模拟职业玩家行动的ai那大家都不要玩了 哭去吧
人还有浮躁休息的时候 ai24时完美状态你玩神马去 了解游戏规则 然后才是玩游戏吧
你连游戏规则都抵触 那这个游戏对你而言有什么乐趣
你不喜欢就算了 还要把自己的妄想强加给别人 现在的电脑游戏都够弱智的了。想想10几年前电脑游戏的难度!。。。估计90后的孩子玩到那种难度的游戏都会崩溃的 做一个模拟职业玩家行动的ai那大家都不要玩了 哭去吧
人还有浮躁休息的时候 ai24时完美状态你玩神马去 ...
豌豆暴君 发表于 2011-4-14 09:40 http://bbs.blacksheepgame.com/images/common/back.gif
可以拔插头。。。。。。。。 RTS 规则里面有开图 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...
fuxiyan 发表于 2011-4-14 06:41 http://bbs.blacksheepgame.com/images/common/back.gif
秀下限很好玩吗?你不会腻么? 大部分的RTS都可以选择 不启用战争迷雾 ~~~
话说你这观点真让人啼笑皆非 大部分的RTS都可以选择 不启用战争迷雾 ~~~
话说你这观点真让人啼笑皆非
fuxiyan 发表于 2011-4-14 10:24 http://bbs.blacksheepgame.com/images/common/back.gif
现在说的是星际2战网对战,你扯其他RTS干屁??
无关话题 难道星际2战网对战不能关闭战争迷雾吗?
表示不解 难道星际2战网对战不能关闭战争迷雾吗?
表示不解
fuxiyan 发表于 2011-4-14 10:35 http://bbs.blacksheepgame.com/images/common/back.gif
你可以试试嘛,20块钱不才一顿早饭 战争迷雾这个对AI没用下限虎你不知道吗?你觉得有用不过是程序员对AI编写让AI无视范围之外的东西,也就是程序员故意给你写的AI缺点而已。 还好意思说半成品。最高指挥也不是这样?有那个rts游戏敢不是这样的 RTS 遭遇战 对战 选择关闭战争迷雾
不就没有人开图了
页:
[1]
2