2010-09-17 52 views
14

有许多关于远程作战人工智能的论文,如Killzones(see this paper)或Halo。但是除了这个work,我一直无法找到关于战斗IA的很多内容,它使用神经网络来学习如何战斗,这不是我正在寻找的东西。如何设计一款格斗游戏(Street Fighter或Soul Calibur)的人工智能?

Occidental AI在游戏中重点关注FPS,看起来好像!有谁知道哪些技术被用来实现一个体面的战斗AI?分层有限状态机?决策树?他们可能最终变得相当可预测。

+0

我不知道足够关于这个问题给出一个像样的答案,但尝试了一下随机误差的投掷给它一个不可预测的“人”的感觉如同。智力也会犯错误,简单的变异可以提供大量的多样性。 – Jeriko 2010-09-17 08:26:49

+0

当然。如果我最终使用决策树,我会添加一些随机性。就像'敌人的攻击' - >'拦截0.8;回避0.2'的意义,所以这并不总是相同的回应。 A.I.街头霸王类型游戏应用程序 – Notnasiul 2010-09-17 11:28:22

+0

不是很重。游戏的目标是对对手造成伤害并防止对角色的伤害以赢得比赛。使用RNG可以使行为更加符合实际情况,如果能够根据难度级别阻止或组合攻击的时间百分比。 A.I.更高的难度意味着更高的机会。对手会阻止你的头像的攻击或者成功地将攻击组合成你的头像。 – winux 2016-07-13 07:46:43

回答

3

在我们的研究实验室中,我们使用AI计划技术进行游戏。美国国家航空和宇宙航行局使用人工智能计划来建立半自动机器人。规划可以产生比状态机更少的可预测行为,但规划是一个非常复杂的问题,也就是说,解决规划问题具有巨大的计算复杂性。

人工智能规划是一个古老而有趣的领域。特别是对于最近人们开始使用计划来运行他们的引擎的游戏。在当前的实施中,表现力仍然是有限的,但理论上表现力仅限于“仅凭我们的想象力”。

Russel和Norvig在人工智能的书中专门介绍了AI规划的4章。您可能感兴趣的其他相关术语包括:马尔可夫决策过程,贝叶斯网络。这些主题在本书中也提供了足够的曝光。

如果您正在寻找一些现成的引擎轻松开始使用,我想使用AI规划将是一个巨大的矫枉过正。我不知道任何有关游戏的AI计划引擎,但我们正在开发一款游戏。如果您对长期有兴趣,我们可以分开谈论它。

+0

就像我所知道的,在Fallout3中使用了类似的东西。但是AI规划似乎并不是这里的答案,因为战斗机并不真正“计划”任何东西,对吧?没有像'勾拳'或'击中敌人'的目标......在那里?这看起来更具反应性,加上根据角色特定的战斗风格(大个子很慢,他们倾向于阻止而不是躲避和那些东西......)。不过,我会深入了解AI规划。 – Notnasiul 2010-09-17 11:32:21

+0

它通常被称为“面向目标的行动计划”(GOAP)AI,由Monolith的游戏“F.E.A.R.”推广。 – Pup 2012-02-27 16:44:00

+0

@Notnasiul实际上,战斗机或任何非玩角色都可能由策划者控制,策划者的计划是最大化玩家体验。有时他们试图通过随着时间推移玩家的动机而坚持一定的曲线来实现这一点。这样的曲线也是斯皮尔伯格电影的标志。 – 2012-02-28 02:09:27

3

您似乎已经知道计划和执行的技巧。你需要做的另一件事是预测对手的下一步行动,并最大限度地提高你的回应的预期回报。我写了一篇关于这个的博客文章:http://www.masterbaboon.com/2009/05/my-ai-reads-your-mind-and-kicks-your-ass-part-2/http://www.masterbaboon.com/2009/09/my-ai-reads-your-mind-extensions-part-3/。我认为这个游戏很简单,,但我认为贝叶斯决策理论的主要思想可能对你的项目有用。

+0

非常感谢!和漂亮的博客,我现在正在关注它;)(我喜欢那个Pacman捕获国旗游戏!) – Notnasiul 2010-09-20 07:19:14

+0

谢谢!顺便说一下,我们计划在明年2月份之前推出Pacman游戏的开源版本。 – pberkes 2010-09-20 13:38:24

1

要考虑的另一种路线是所述的Ghost AI如所述here & here。顾名思义,你基本上是从实际的游戏中提取规则,第一篇文章是离线的,第二篇扩展了在线实时学习的方法。

看看这家伙的webpage,还有一些关于格斗游戏的文章很有趣。

+1

Ghost AI很有趣,但不是我在找的东西。我想要的是一种给予AI自己“个性”的方式。我在这个周末一直在编码,并且基于'技术权重'(攻击性,防御性,阻挡/避免...)的一些随机性的FSM组合似乎是合适的。那个人的网页是一个设计犯罪;) – Notnasiul 2010-09-20 07:14:32

+0

幽灵AI的整个目的是让对手拥有自己的个性,即使通过模仿其他玩家的训练。你的方法听起来很有趣,不知道需要多少调整。 – 2010-09-21 21:31:24

1

我已经反向设计了Street Figher II系列游戏中与AI子系统相关的例程。它没有包含上述任何技术。它完全是被动的,不涉及计划,学习或目标。有趣的是,你也没有提到“技术重量”系统。例如,他们不使用全局权重来决定攻击的频率。当分解与“难度”似乎增加有关的例程时,我确实希望找到类似的东西。唉,它涉及到一些较小的决定,可能会以突发的方式影响这些比率。

0

http://www.ice.ci.ritsumei.ac.jp/~ftgaic/index-R.html

其旧,但这里有一些例子

+1

[仅限链接示例在Stack Overflow](http://meta.stackexchange.com/questions/65277/are-link-only-answers-poor-practice)。请将相关信息添加到您的答案中。 – Chris 2014-04-14 19:10:42

+0

最好在答案中包含链接的相关部分。这样可以防止答案在未来与其他信息的链接死亡时变得无用。 – Walls 2014-04-14 19:11:22

+0

对不起,从一个大学举办的比赛,人们输入他们的AI代码,并让他们的机器人互相对抗。用Javascript编写。我发现它很有用,我最终决定使用堆叠状态机方法在我的游戏中编写AI。 – 2014-05-01 18:49:56