首页/游戏设计/一年的雨:欺骗或不作弊
游戏设计

一年的雨:欺骗或不作弊

2020-10-30T15:14:18 + 01:00

建立一个很有趣的AI才能享受。

为游戏创造人工智能一直是一个艰巨的任务。玩家不会立即看到一个AI所做的时候,但他们肯定会在做坏事时做。以下是我们如何接近制作一个无法行动的AI的任务,这些任务不会充分愚蠢,并且能够与人类参与者一起在一个朝向2V2比赛的游戏中一起玩,而不是作弊… too much.

最近游戏AI有一些巨大的进步。最重要的例子可能是谷歌深度项目,刚刚设法击败了一些最好的星际II玩家。虽然深入学习是一种令人敬畏的技术来构建强大的AI,但它也具有艰难的要求,例如,模拟足够的机器电源,用于模拟足够的匹配和数据,负载和数据量。

我们制作人工球员的方法更为传统;我们将建立我们认为AI播放器手动需要的一切,并在感觉很好时调整它。

微观和宏观
我们在我们的游戏中实际上拥有不止一种AI。第一个称为字符AI,并处理微管理级别的单个单位。例如,在扫描周围环境的同时将单元移动到目标位置,并检查对手单元是否处于范围内。如果找到一个单位,请转向它并攻击。大多数角色ai都是使用虚幻行为树建造的,这是一个很好的解决方案。

第二个是玩家ai。它将推动播放器的高级策略,并尽一切努力击败所有对手并赢得游戏。在本文的其余部分,我们只会专注于玩家AI,因为角色AI是一个谈论的整个野兽。

显示AI播放器遭到攻击和反应Ping和聊天消息以从播放器获取帮助。

制定计划
行为树是一个相关的AI相关任务的内置解决方案,因为它对我们的性格AI效力很好,玩家AI的第一次迭代主要是在行为树中建造的。然而,事实证明,即使行为树很好让个人单位聪明,它们并不适用于长期战略决策,如:“如果我们当前的矿井跑得干燥,请尝试找到一个新的。如果新的人被一个蠕动营地守卫,请先派军首先清除它。然后收集足够的资源并发送建设者单位,以在矿山附近的右点地建造一个新的主基地。

因此,看起来我们需要一个系统,允许我们定义一组高级任务,如“构建我一个单位”或“构建扩展”。好事已经存在这样的东西;它被称为规划系统。规划或面向目标的设计在游戏AI中一直存在一段时间,主要思想是有一组目标和行动。简而言之,目标定义了我们想要实现的东西,行动改变了世界的状态,并被先决条件锁定。

一年的雨量的一个简单的例子是训练一个单位;培训单位只有两个条件:(i)拥有培训股单位的建筑物和(ii)拥有足够资源的建筑物。

负责培训单位的系统现在可以拥有拥有5个工人单位的计划。为实现这一目标,我们将创建5个“TrainUnit”的目标,并将其添加到计划管理器队列中。满足任何排队操作的所有条件时,它将执行其效果。在这种情况下,实际上培训了工人单位。我们将使用此系统来定义我们AI的非常基本的行为。最重要的是,我们需要更多系统来决定我们的实际目标是什么,并确保我们可以实现它们。要做到这一点,让我们继续崩溃通常看起来像:

  • 选择播放器角色。
  • 首先训练几个建设者并分配它们来收集资源。
  • 根据我们的游戏风格和整体计划,继续培训建筑商,单位和构建更多建筑物。
  • 发送一个侦察兵单位,了解我们的对手是在哪里以及他们正在建造的地方。
  • 当英雄产卵时,通过清除蠕动营立即地去农场XP或者等到我们有足够的单位,如果英雄不够强大。
  • 升级我们英雄的技能。
  • 研究技术与我们选定的球员角色相匹配。
  • 找到或了解对地图感兴趣的其他重要观点,例如,治愈井或看台。
  • 如果矿山接近资源耗尽,则找到扩展和建立的最佳位置。
  • 当我们的英雄和军队足够强大时,在对手团队中找到最薄弱的球员和攻击。
  • 同时与对手团队战斗,记住他们正在使用哪些单位并准备构建计数器。
  • 另外,不要忘记我们有一个团队合作伙伴!确保注意他正在做的事情并支持他在战斗蠕动或球员方面。

显示负责处理HealthChanged活动并要求我们的军队捍卫我们的基础和我们的资源经理以修复受损建筑物的蓝图逻辑。

管理混乱

哇,这是很多事情!即使是人类球员。让我们试图打破那个下来,看看我们是否可以找到一些类别,以使其更可管理。

我们的普通游戏计划,即,我们想要的建筑物和单位以及我们想要如何技能的建筑物,通常在我们甚至开始玩之前知道。 RTS游戏的球员已经知道这个术语;它被称为构建命令(bo)。构建订单允许我们通过告诉他们建立和研究,来定义不同类型的AI个性。例如,我们可以创建一个只是建造基地军事建筑物的AI,并没有别的培训,只有廉价的单位来赶紧对手。或者一个忽视早期单位,旨在快速技术进步。要允许整个开发团队创建新的构建订单,我们决定创建可以轻松创建和修改的自定义资产。

除此之外,我们还需要一个管理我们军队的系统。该系统仅负责从其他系统提供的所有可能的目标中选择攻击目标。它还将跟踪攻击目标的观察或估计强度,如有必要,要求其他系统培训更多单位,直到我们的军队足够强大。这还包括在攻击期间的定期检查,以决定我们是否想要撤退,如果是太多的单位或我们的英雄已经死亡。为了能够管理所有这些,我们需要至少在低重要性方面之间具有粗略分离。例如,如果我们的基础或我们的团队合作伙伴遭到攻击,我们可能会去辩护而不是移动到下一个蠕动营地。

对单位经理的一个令人惊讶的艰巨任务是在我们的主要基地附近找到一个很好的位置来收集单位。由于军队可以由相当多的单位和空间组成,更大的单位倾向于阻止工人到达主楼或阻止完成培训一个单位的建筑物周围的空间,但现在找不到一个地方,所以它们无法完成他们的生产。此外,由于我们的地图布局从地图略有不同,因此很难找到我们可以安全地放置所有单位的基础的一般方向。例如,有几个可能的解决方案,例如,只需选择一个随机点,并希望一切顺利或通过让它们设置集会点来解决级别设计者的任务或改变任务。目前,我们正在使用与主楼一段距离的第一个选择。似乎工作正常,即使它有时会阻挡一段时间。

一年的雨队在工作。

第三个系统都是关于资源的。它将管理工人并为他们分配任务。尽管构建命令通常决定我们想要训练的建筑商有多少,但我们仍然需要确保他们一直在工作。当我们的一个建筑物损坏时,该系统还将管理分配给修复它们的工人数量。此外,资源管理器将跟踪所有地雷,如果资源运行低,则启动新扩展的构建,尽管它不关心如何以及在哪里。这将由其他系统处理。

我们需要的下一件事是一个系统,它将跟踪我们目前了解地图状态的系统。这包括通过分析地图的静态数据来获得的知识,因此我们的级别设计人员放在地图上的所有内容,包括蠕变阵营,扩展和可能的玩家开始位置。尽管使用这种知识可以被视为作弊,所以它也包括蠕变阵营的难度以及了解哪些扩展有蠕变的阵营,而且玩家还可以访问这些信息。在之前玩过这个地图或看起来只有minimap。

除了静态数据外,还需要跟踪游戏期间发生的一切。当然,我们可以通过简单地滥用我们是非常亲密的朋友的事实来做到这一点。我们只能迭代所有玩家的所有单位,看看他们在做什么。但这不会很有趣吗?因此,我们也会做播放器(或应该)的事情,也是:建立早期的侦察单位,并在地图上发送它,以便我们知道可能有玩家基地并记住我们在路上所看到的一切。之后,我们需要不断评估我们在地图上看到的内容并记住它,因此我们可以稍后决定何时攻击我们的对手,如果我们想要构建计数器单元。以规则的间隔检查每个单位的愿景显然是一个大的性能击中,因此我们决定选择每次更新间隔的一批随机单位,以保持这一点可接受的限制。

我们需要的最后一件事是一个系统将一切放在一起,一个驱动战略决策的一个系统,指示其他系统何时做什么。我们将致电我们的战略经理。这可能听起来像一个有趣的系统,而是诚实的,它只是与游戏其他比赛交谈的数据,计时器和事件侦听器的集合,并将必要的信息转发给其他系统。

关于战略播放器AI结构的简化视图。

跟我说话!
一年的雨中有一个重点瞩目的2个赛量,因此竞争AI的一个重要方面是它需要能够与团队合作伙伴进行沟通,无论该合作伙伴是人类播放器还是AI。我们的游戏已经包含了几个通信功能,最重要的是文本聊天和最小的Ping系统。由于我们努力使我们的AI尽可能自然,因此使用这些系统进行通信是有意义的。

我们最常用的功能是最小的ping。我们在两个方向上都在使用它;如果我们正在攻击蠕动或播放器,或者我们的基础被攻击,我们将向该位置发送Ping。与此同时,我们总是从我们的团队合作伙伴那里倾听乒乓球并支持他。当两个AIS在一起时,这会产生一个有趣的动态,在那里通常较慢的球员追随速度较快,创建一个大陆漫游到底漫游地图。在玩AI团队合作伙伴时,人类播放器还可以使用此功能使AI在地图上移动到斑点或停止他认为不会成功的攻击。这有助于创建一个感觉比实际更聪明的AI。除此之外,AI还将在使用人类伴侣时发送短信。这通常只是一个提示,例如,对于攻击的下一个目标,但这也开辟了一个指导系统的可能性,这些系统会向更新的玩家发送有用的信息。

一个简单的目标,可以训练一个“守卫”单位。当所需的建筑物以及足够的资源可用时,我们将培训该单位。

使它可扩展
我们根本没有谈论的一件事是困难。到目前为止,我们试图使AI尽可能聪明能够赢得游戏。但是,如果我们成功地这样做,我们可能最终有一个初学者来说太难了,这也不是很有趣。玩家应该能够开始对阵AI,习惯游戏,并提高他们为对抗人类的在线比赛准备的技能。因此,我们需要使我们的系统可扩展,以支持从初学者到专业人士的各种玩家(…好吧,可能不是专业人士)。

幸运的是,我们有很多我们可以调整的东西。

要仅举几个例子,我们可以增加培训单位或延迟将我们的英雄之间传递给农场XP之间的时间。如果我们足够强大以战斗对手,我们可以为我们的评估添加一个因素,所以我们做出了错误的决策并擦掉了我们的小组。但是,由于我们可以与新的球员作为团队合作伙伴播放,因此我们也必须记住,不要做出奇怪的决定和混淆新的球员。

未来
在我对AI行为的真正满意之前,仍有很多调整和调整,例如,我们仍然有一些问题发现扩展以消除由系统的复杂性引起的玩家和一些次要的F * UPS不同任务之间的互连。但由于面向目标的方法和清晰的责任分离,这只是时间问题… as it is so often.


Michael Matzen.

Michael Matzen.是DaeDalic娱乐的控制台/通用程序员。 Michael现在在游戏行业工作了大约九年,其中四个在DaeDalic。他在科尔大学学习了计算机科学,并于2010年推广。总是渴望学习并尝试新的东西,他将游戏带到广泛的平台之前,在加入一年的雨之前。

关于作者: 30月30日
类别:
去顶级