NextBot

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)

NextBot是几个起源 起源多人游戏使用的AI(en)系统。该系统不仅可以用于bot(en),还可以用于不受玩家控制的实体。

NextBot系统代码不存在于任何公共SDK中,但存在导航网格代码,但默认情况下不包含在任何SDK编译中。这里提供的文档主要是基于某些控制台命令(最突出的是nb_debug)和关于求生之路 求生之路AI的官方PDF。

NPC(en) 与 NextBot 的区别

尽管Source npc(如半衰期2 半衰期2中的npc)和NextBots都用于AI,但我们必须清楚这两个系统并不相同。以下是这些系统的主要区别:

Source npc不仅使用节点来确定导航位置,而且还决定到达特定节点时该做什么。NextBots不使用这些节点进行导航;相反,它们使用导航网格来移动,并根据特定区域可能具有的标记执行不同的操作。

  • NextBot系统既可以应用于bot,也可以应用于非可玩实体。

Source npc系统的内部机制只适用于非玩家实体。在NextBot系统中,如果需要,可玩和不可玩的角色都可以配备AI。

  • NextBot系统几乎完全建立在地面实体的基础上。

Source npc可以被定义为在地面上导航或使用空中节点(en)在开放空间中飞行。两个NextBots (Monoculous(en)Merasmus(en))能够基于飞行进行移动,但这是相当初级的,因为该系统目前没有官方支持“空中导航网格”或任何类似的机制。

valve开发的使用NextBot系统的游戏

NextBot系统用于以下游戏:

待完善: dota2中还有其他角色/实体使用NextBot吗?

虽然反恐精英:起源 反恐精英:起源反恐精英:全球攻势 反恐精英:全球攻势都有AI Bot(cs_bot(en)),但它们使用独立于NextBot的独特系统来决定机器人的行为。

NextBot是怎样工作的?

一个事件如何影响NextBot的示例图。这张图来自《求生之路》的AI系统PDF。

NextBot使用一个被称为“Actor”的整体结构来运行更具体的因素。当事件发生时,例如示例图中的“Oninjured”,Actor通过改变这些因素来反映事件。以下是NextBot具备的所有不同因素的总结:

移动

这个因素决定了NextBot如何在环境中移动。例如,如果一个NextBot被编程为在受伤后逃跑,它就会依靠这个因素移动到地图上的不同位置。

身体

这个因素处理NextBot的动画。在“oninjured”的例子中,NextBot将依靠这个因素来播放退缩动画。

视场

这个因素处理NextBot如何看待其环境中的某些实体。视场和视距功能主要体现在这个因素上。

注意,这个因素不是NextBots工作所必需的。例如,tf2中的骷髅会发现并攻击敌人,而不管它是否看到敌人。

意图

这就是NextBot真正的AI所在。意图因素管理NextBot可能拥有的不同行为,这个因素负责根据事件改变这些行为。

要了解这个因素在游戏中的作用,请参见NextBot行为的例子(en)

行为

行为包含一系列动作,当意图因素选择它时,它将执行这些动作。

这个函数可以看作是NextBot的时间表(en),因为它们都是AI需要执行的特定操作的列表。

动作

这是NextBot的实际AI代码,当它的父行为被意图因素运行时,它将运行。Action可以有一个额外的子Action,它将与父Action同时运行。

这个函数可以看作是NextBot的任务(en),因为它们都包含驱动AI本身的核心编程。

参见

nb_debug(en)

NextBot行为的例子(en)

外部链接

证实:Is there a video recording of this presentation?