是什么让计算机对手感到生机勃勃?


107

是否有推荐的博客或白皮书谈论使RPG游戏中的AI更加真实?(特别是反战。)

我知道必须有一些东西,但是我只发现有关AI背后算法的论文。我正在按照“这就是使计算机对手感到活着的东西”的思路看待更多。冒险,放松,撤退等...


这么多很棒的答案,我希望我可以接受其中几个。感谢大家!


如果计算机提出了一项策略,那么它会更加生动活泼。FEAR的AI受到赞誉,因为它可以使玩家侧翼(除其他外)(尽管我相信其中很多实际上是脚本化的)
thedaian 2011年

10
它的死亡动画。砰。不,但是认真,对您使用环境。犯错误-但是聪明的错误。对?像有远见的人一样,只有他在推理链中的某个时候做出了错误的假设。
工程师

目前尚不清楚您是希望计算机角色还是活着的,还是想要像与控制所有计算机角色的人一样与另一个人类玩家战斗?
日航

4
如何使计算机栩栩如生:再次观看
Bladerunner

您可能需要阅读此内容。它在决策树上使用模糊逻辑。
乔纳森·迪金森

Answers:


109

差错 没有什么比能从15英里外爆头或总是选择完美的获胜策略的AI对手更糟糕的了。它打破了沉浸感,使您明显地在玩例行游戏。错误可以使AI看起来更人性化。

许多FPS游戏迫使AI的前几枪错过,并警告玩家该AI在那儿,然后才被击杀。

策略游戏有时可能会选择次优策略,或者在评估威胁时可能会故意忽略某些比例。

我玩过的一款赛车游戏计算了玩家在附近的时间,然后掷骰子使他面前的AI汽车转向不足或转轮胎。它以其逼真的AI受到赞誉。

但是,创建不完美的AI仍然是一个挑战。您必须以令人信服的速度犯下令人信服的错误,而不是一个接一个的做出完美的动作,直到犯下可笑的错误。这可能比玩一个完美的AI还要糟糕。例如,上面赛车AI的程序员花了很多时间来建模汽车转向不足的方式,以及AI产生令人信服的转向不足所需的输入。与往常一样,游戏测试至关重要。

这是一篇很好的文章,介绍了产生此类错误的原因:http : //www.gamasutra.com/view/feature/3947/intelligent_mistakes_how_to_.php


38
“许多FPS游戏迫使AI的前几发失误,警告玩家该AI在存在之前被杀死”:在GURPS中,我们将此称为帝国突击手射击学校训练。
混乱

4
错误太多,这是一台笨拙的计算机。
LarsTech

30
通过将一堆红衫军人放到一堆风暴士兵旁边的牢房中来创造无限能量。突击队员无法击中目标,红衫军不得不死
zzzzBov

我的理解是正确的,我在思考计算机的完美与人类的完美之间的界线。有什么变化?一个伟大的quake3播放器,如致命性游戏,与噩梦级别的cpu有何不同?
皮托

我计算AI可以采取的所有可能动作,并根据情况和AI分配的个性特征(例如嗜血,fearOfDeath,愤怒等)为动作分配权重。这对于以下情况非常有用:您和AI即将死亡,直接的AI会射杀您,然后抢走健康包,但是,惧怕高的AI会试图击败您。除非他们有很高的愤怒或嗜好,否则他们只会射击直到你们其中一个人死亡。
售罄的激进分子

44

其他人则谈到了人工智能,逻辑,计划以及犯错的重要性。所有这些对于AI的发展都是有益的和有用的。

但是问题是关于什么使计算机对手感到生气,而这是无法通过AI实现的。事实并非如此。玩家不会根据自己的战略级别选择来判断游戏中的角色;他们根据小得多的东西来判断。

为了使计算机对手感到生气,您需要为对手提供一整套高质量的动画和声音(尤其是人声)。玩家看不到AI。他听不到,听不到,也不知道对手在想什么。完全通过角色上播放的动画以及角色所产生的声音(同样主要是声音)向玩家呈现“此角色是活的实体”的外观。

角色对他周围的刺激做出反应很重要;观察附近的事物,触摸附近的物体(适当时这样做),感到惊讶时惊呆,并在适当时表现出其他情感。

在谈论这些事情时,尽量减少重复很重要。如果角色每次攻击时都使用相同的“攻击”动画,那么他永远都不会活着。如果他在不执行任何其他操作时播放单个循环的“空闲”动画,则他将不会感到生气。如果他说两次相同的声音(尤其是连续地)打趣,那打破了关于角色还活着的幻想。

就是这样。如果您要使对手看起来还活着的对手确实出现在您的游戏中,那么您使他们看起来还活着的成功主要取决于显示给玩家的图形和声音。

如果您要使自己看起来像“活着”的对手实际上没有出现在游戏中(例如国际象棋和《星际争霸》中的情况),请随时忽略此答复;最好的选择是遵循以AI为中心的回复。


4
让我想起了《质量效应》中的所有敌人,他们大喊“到处都是敌人!” 每2秒。
2011年

我希望我能投票更多。我已经研究了两个Triple-A FPS,但不能强调高质量的动画(偷看,手势,移动)和音频(说出意图,提问,交谈)对于创造一个良好的环境有多么重要。人工智能不是要击败玩家,而是要传达现实感,现实感的很大一部分就是我们的动作和发声方式。
AA Grapsas

1
+1,好点。让我想起Oblivioneque游戏,有时您与NPC互动的尝试受到阻碍,因为它们坐在床上,侧身转身,站起来,最后面对您,最后才承认您的存在……这总是让我沉浸其中。
zenzelezz 2011年

同意这会使游戏更具身临其境的感觉,不同意会使游戏更具人性化。有没有看过大多数多人游戏中有多少人类玩家的行为?在某些游戏中,一半的玩家无缘无故地跳来跳去,另一半的玩家每秒用相同的语音片段向语音聊天发送垃圾邮件20次。机器人通常比人类表现得更好。
Lie Ryan

使AI看起来像人类的一种方法可能是,如果它们不断被杀死,则使它们无处不在。或者尝试诱使新玩家将昂贵的物品换成无用的金光闪闪。那不是一个有趣的游戏,但至少AI会感觉“活跃”。
Lie Ryan

30

以下是一些简单的概念,可以使您的对手更加生动:

  1. 目的
    给玩家某种方式来说明AI的“意图”。这可能很简单,例如让他们在尝试准确的爆头攻击之前大喊“质量胜过质量”,在试图落后于您时大喊“侧翼他”,或者在攻击主角之前大喊“带头,别无所求”。您还可以变得更加复杂,例如,让他们给队友一些手势语,然后改变这些队友的行为。

  2. 绝望
    随着对手越来越接近死亡,您可以给他们一种绝望的感觉。在某些健康里程碑改变他们的策略。使他们的后期更加惊慌,承担更大的风险(去吃冰雹玛丽,而不是缓慢崩刃)。也在视觉上传达此信息(更夸张的动画,脉动的脉搏等)。

  3. 砰地出去。
    给他们一个死亡,使与他们的战斗值得重复。咕unt咕animated地跳了起来。老板独白。如果这是一个骄傲的角色,请让他们拒绝给您杀戮,并对自己造成最后的伤害。你得到的漂移。


4
你好 您实际上不必将资格证明书写入答案中。填写您的个​​人资料,如果您知道自己在说什么,如果有人有兴趣,请点击您的名字。而已 ;)。
Notabene 2011年

1
目的是一个很好的目标。一个好的策略是让您的AI队友(如果有的话)喊出对手在做什么-“他们在侧翼!”,“他们在重装!” 实际上,即使敌方AI没有采取这种行动,这种策略也是非常有效的。:)
tenpn 2011年

1
@Notabene,并非不同意您的评论,但请注意- 可以由代表亲自编辑多余的信息。:)我刚刚进行了编辑,但是对我来说,这是“需要审核的”。:)
独眼巨人

2
@Cyclops。是的,我认为。但是,如果没有适当的评论,感觉会很不礼貌,我想让乔丹自己决定。我的意思是当然友好。但是,我们不要再破坏主题评论的好答案了:]
Notabene 2011年

3
嘿。只是想让大家知道,我将学士学位行作为一种自我贬低的形式。在澳大利亚,这里没有游戏学士学位,不值得在上面打印论文。没有吹牛的意图。“这里有一些明显的建议,那就是我浪费的30,000美元和三年学习的最终结果”。对不起,如果我没有正确传达。
Jordaan Mylonas

22

我确实建议这个Google IO谈论它是关于Google doodle pacman的。在cca 18:00,他们开始谈论吃豆人中鬼魂的性格。多么令人惊讶的是,您可以多么简单地将个性放入简单的路径查找中。

Google I / O 2011:Google吃豆人的秘密:游戏秀

整个视频值得一看。我真的推荐它。


并未真正回答问题,但可能会激发灵感……(我想)
Notabene 2011年

11
我会说这是一个有效的答案。问题是关于如何使计算机对手感到“活着”,而设计幽灵的个性确实可以做到这一点。
独眼巨人

14

我对这类博客一无所知,但由于战术回合制RPG是我继无赖类游戏之后的第二受欢迎的类型,因此,我将为您写一篇博客文章。从我的经验来看,在RPG或RTS中通常不让我感到战术AI的困难,而是相反:AI完全短视并且没有团队决策。人类永远不会这样玩。

那时,当我仍将JRPG视为游戏设计的巅峰之时,我曾尝试制作“典型的日本TRPG”,重点是基于战术回合制战斗,如《最终幻想战术》。与往常一样,它只是用于寻路和AI的技术演示,因此我将分享有关该主题的想法。

这些TRPG中的大多数对AI的关注并不多。玩家的乐趣不是来自复杂的战术或战略挑战,而是来自一般的耕种和以有趣的方式滥用AI。因此,它们的AI可以做任何人类都不会做的事情,这无关紧要。通常,拥有一个愚蠢的AI并使其与游戏设计保持平衡就足够了,它永远不需要预先看到一个以上的举动,而只使用最佳的短期举动即可。当然,它永远不会真实,但是谁在乎呢?这只是感觉不对,我想相信有可能通过与复杂的AI动作作斗争来创造乐趣,而不是依靠耕种和热轧。可能不必要,也很费时,但是可能。

回顾原始的《最终幻想战术》及其核心Mod FFT 1.3,我为玩AI的人性化和娱乐性设定了以下目标:

  • 人工智能必须创造一个挑战,但是一个有趣的挑战,而不是一个“人类全面搜索”挑战。玩家通常应该通过当前任务的整体背景来期待这一有趣的挑战。通常,多数民众赞成在脚本发挥作用的情况下创建一招小马AI。
  • AI应该很聪明,但Minimax不能太聪明。就像不同的人类个性一样,不同类型的AI应该具有不同的缺陷。在游戏中遇到的事情很少见,例如《 Advance Wars》曾为将军们编写过个性化脚本,但单位也可以使用。
  • AI必须避免在无意的时候显得愚蠢。淫秽的愚蠢完全摧毁了任何智力幻觉,总是制胜法宝也是如此。由于粗心的脚本编写而造成的漏洞是最严重的。

我以为我将以突发的行为来应对#1,以不同的性格和类似人的“半随机”策略选择来应对#2,将硬编码降至最低并进行仔细的测试来解决#3。

那么我在说什么这些行为,这是脚本化的一系列使用能力吗?加权列表中的顶级能力?不,我的想法是将所需的智力性格类型和从当前可用的能力和武器衍生而来的角色结合在一起。您可以将这种组合描述为“愚蠢的狂暴伤害经销商”或“智能防御治疗师”。因此,诸如课程或职业之类的AI专业知识,例如使用弓箭射击带有一些预定义的通用射手能力组合(例如“瞄准”或“箭雨”)的弓箭手AI,在逻辑上出现了,而不是硬编码。

基本上,重要的是要发现并发挥以下作用:损坏经销商,损坏浸泡者,伤残者,小冲突者,治疗者,缓冲/解缓冲,作用区域;通常,一个角色将扮演其中至少两个角色。

为了从中获得战术上的乐趣,我们希望行为能够可靠地处理几种情况:

最简单的情况。许多弱小的妖精伏击了我们的英雄。感知到的威胁是显而易见的,地精会试图压倒玩家,使每个地精都具有愚蠢的疯癫性格和一些原始近战能力,感知到的弱点也很明显,例如将地精引诱到单个装甲和耐火的角色上,然后发射一系列火力基于AoE的广告朝着这个大方向发展。找到伤害浸透者,找到AoE'er,专门针对AoE'er伤害类型使用伤害浸透者,将伤害浸透者发送到地精团块,当小妖精围成一团时施放有害的AoE咒语。

通常情况下测试简单的团队互动。玩家遇到骑士,弓箭手,法师和牧师。现在,可感知的威胁变得更加复杂,可以进行各种交互。您已经可以看到可能的角色及其组合。牧师会buff and heal,法师会吐出复杂但破坏性很高的魔法物品,骑士会向某人收费或捍卫法师,弓箭手会通过狙击那些试图逃离他或使他的防御策略更加严密的人来帮助骑士,这将取决于骑士的选择。敌人的性格可以随机决定,将相同的遭遇变成独特的经历。玩家必须决定当前拥有的单位的最佳策略是什么,如果AI尝试在屏幕的另一侧做同样的事情,那将很有趣。

测试团队互动和战略计划的复杂案例。在一场战斗中,您面对一帮四名刺客(精明的小心伤害发动者+小兵)。数量不多,外表凶险的人,其可感知的威胁在于熟练而致命的攻击,而可感知的劣势在于,仅杀死一个刺客就很容易降低整体实力。因此,他们自然很聪明,他们使用彼此配合良好的能力,并且可以集中射击玩家最危险的角色。重伤者撤退,恢复生命并恢复战斗状态。显然,玩家将尝试首先对其中之一进行核对,而刺客将不得不对这种简单的策略进行反击,因此它将变得不那么占主导地位。

许多策略的确有困难。有几个敌人小队,每个小队长决定最佳的本地战术行动,然后选择最佳的全球战略决策,使所有小队受益。

不可能的情况。添加一名将军来决定一项策略,并让班组长尽最大可能地实施该策略。

已经有很多信件了,所以长话短说,实现是一团糟,我从来没有遇到过“困难的案例”,但是即使那样,这种有趣策略的方法还是可行的。我从FSM开始,但是不得不迅速放弃这种方法,它变成了混乱的状态,并且无法调试过渡。过了一会儿,我选择了基于半自主能力感知的角色,如“感知-思考-行动”范式中的行为树,以针对可能的个人动作,一种基于可能的个人动作影响团队可能的动作的全局策略,也是某些东西的混混版本就像N-Gram的统计预测一样。

这是怎么解决的?出人意料的是,AI甚至多次读了我的思想,但由于有足够多的令人信服的缺陷,我变得疲倦并放弃了它:

  • 最大的缺陷是,即使我惩罚快速变化的策略,有时整个AI操作还是很奇怪和混乱。策略逻辑或错误的性格可能是罪魁祸首,但我从未发现。是的,代码架构太可怕了。
  • 通过仔细选择可用的能力和个性来微调所需的场景是很乏味的。
  • 角色的能力标记应非常小心,否则会出现一些古怪的组合。
  • 个性标记也是如此,但是您不会看到古怪的连击,而是会看到细心的脚轮为正面攻击打磨。
  • 对于给定的能力,很难决定“聪明”的程度。
  • 必须以一种骇人听闻的方式来实现一些看似愚蠢的决定,这些决定对于像“无论如何都要守住这座城堡的墙”这样的关卡设计都是必需的。
  • 计划对单位进行基于时间的攻击也是一个hack。

我想我的方法充其量是平庸的,即使不是绝对糟糕,而且AI还在不断发展,这是个马车和痛苦,但是即使那样,我还是有一些非常有趣的时间在与它对抗,就像在和一个分心的孩子一起玩一样。还是比战术食人魔好:)


我发现您的一些想法很受启发,并且经过一些调整,可能会改善我正在研究的S​​im上的AI。
jumpnett 2011年

@jumpnett很高兴知道,我希望至少可以理解一个总的想法:)作为奖励,您现在可以在Sim上听到更多我的疯狂想法。想象一下实时模拟,我认为最重要的选择之一就是整洁的任务调度程序逻辑。我想我会尝试以这种方式组织任务:会有一些具有优先级的主要任务,诸如“盖房子”之类的“战略”,其前提条件是“ 4个工人;在10,10点处有4x4平方的自由节点; 10木板; 20个石板”。当满足所有先决条件时,将认为策略已完成。
EnoughTea 2011年

每个先决条件都会产生一个子任务来实现相应的先决条件;子任务可以是并行,顺序甚至互斥的。任务成功结束后,将其设置为完成的先决条件。例如,“ 10块石头”任务对于“ 4个工人”和“ 4x4放置”任务是连续的,因为没有工人就不能收集石头,没有位置也不能放置石头,但是它将与“ 20块石头”的任务,因为您不希望有很多石头但没有木头的情况,而您的工人只是站着等待木头,而不是先使用石头。
EnoughTea 2011年

通常,根据先决条件来考虑任务非常有用,例如,将新的策略任务放在调度程序中时,您可能想知道它是否可以立即启动。使用此系统,您可以轻松地收集具有较高优先级的任务的所有不完整先决条件,并检查新任务的先决条件是否与它们冲突。
EnoughTea 2011年

这里的主要瓶颈是无法完成的子任务的解决。有两种:1)现在无法完成,2)永远无法完成。通常,对于#1,您将需要创建一个具有更高优先级的新策略,这将对先前的策略有所帮助;对于#2,您将希望永远放弃该策略。事实是,很难区分这两种,在这里不能多说。好吧,也许您的方法已经是这样,但也许您会寻求更多的想法:)
EnoughTea 2011年

4

不要总是让它以动作Y来响应动作X。在评估每个潜在动作时,会添加一个随机的软糖因子,因此AI不会总是选择相同的选项,而是会选择合理的选项。

评估攻击是否有合理的机会成功或至少造成有意义的伤害。太多的游戏只是编写了脚本化的攻击路线,人们可以学习并使用它们反复伏击AI。


3

我看到的很多建议是让AI以某种方式与玩家交流其“想法”。通常在第一人称射击游戏中,是让敌人(不切实际地)向玩家大喊他们的计划(例如“向他开枪!”,“他在那!”等等)。

归根结底,玩家知道他们正在与AI对抗,因此AI在没有事先通知玩家的情况下所做的任何聪明事都可以被视为作弊而被驳回。


在刺客信条中当追赶者时,追击者会大喊:“他在这里!” 或“他去哪儿了?” 或其他追求者的东西。所以恕我直言:这可能是现实的。
James Khoury

1
没错,在很多情况下它确实有意义,并且可能取决于游戏环境。刺客信条中的守卫与现代特警队相比,交流方式将有所不同。通常,现实的解决方案不一定是最有趣的。在没有任何警告的情况下,不断地被AI包围可能会令人沮丧。
mrohlf 2011年

1

通常,我们会想到“我们如何创建AI?”

这跳过了一个大问题,“什么是AI?”

我几年前观看了TED.com的演讲,它分享了一种非常有启发性的方法来定义人工智能。

如果您希望您的玩家感觉到敌人是“聪明的”,那么这将提供一个高级答案,从本质上讲是一种全新的思考人工智能的方式,即“预测能力”

http://www.ted.com/talks/jeff_hawkins_on_how_brain_science_will_change_computing.html


0

对我来说,“感觉活着”意味着角色扮演的角色与您在现实生活中的想法一样。

现实生活中的人们有需求,动机,恐惧和缺陷。他们会说话,如果是一群人,他们会互相反应,他们逃避是因为他们关心自己的生命。

如果他们是军事或训练有素的,他们有战术。

因此,也许您应该检查人类行为领域,而不是计算机科学领域。


1
嗯,对此不确定。最重要的是,人工智能必须很有趣。敌人逃跑有趣吗?当然,与他们战斗会更有趣,因为游戏的重点是战斗?
tenpn 2011年

这取决于您想要什么乐趣。人们在模拟中找到乐趣,在街机游戏中发现其他乐趣……与现实生活相比,感觉更有趣的是什么?
日航
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.