NextBot
NextBot是几个 起源多人游戏使用的AI 系统。该系统不仅可以用于bot ,还可以用于不受玩家控制的实体。
NextBot系统代码不存在于任何公共SDK中,但存在导航网格代码,但默认情况下不包含在任何SDK编译中。这里提供的文档主要是基于某些控制台命令(最突出的是nb_debug
)和关于 求生之路AI的官方PDF。
Contents
NPC 与 NextBot 的区别
尽管Source npc(如 半衰期2中的npc)和NextBots都用于AI,但我们必须清楚这两个系统并不相同。以下是这些系统的主要区别:
Source npc不仅使用节点来确定导航位置,而且还决定到达特定节点时该做什么。NextBots不使用这些节点进行导航;相反,它们使用导航网格来移动,并根据特定区域可能具有的标记执行不同的操作。
- NextBot系统既可以应用于bot,也可以应用于非可玩实体。
Source npc系统的内部机制只适用于非玩家实体。在NextBot系统中,如果需要,可玩和不可玩的角色都可以配备AI。
- NextBot系统几乎完全建立在地面实体的基础上。
Source npc可以被定义为在地面上导航或使用空中节点 在开放空间中飞行。两个NextBots (Monoculous 和Merasmus )能够基于飞行进行移动,但这是相当初级的,因为该系统目前没有官方支持“空中导航网格”或任何类似的机制。
valve开发的使用NextBot系统的游戏
NextBot系统用于以下游戏:
求生之路系列
- 生还者Bot
- 所有感染者
军团要塞2
- 红队和蓝队的bot
- MVM的机器人和坦克
- 万圣节npc (The Horseless Headless Horsemann , Skeletons ,等。)
- 毁灭机器人
- Unused/Test NPCs (Archer Sniper NPC , Spy NPC )
Dota 2
- 英雄bot
- 待完善: dota2中还有其他角色/实体使用NextBot吗?
- 任何内置NextBot系统的游戏
虽然 反恐精英:起源和
反恐精英:全球攻势都有AI Bot(cs_bot ),但它们使用独立于NextBot的独特系统来决定机器人的行为。
NextBot是怎样工作的?
NextBot使用一个被称为“Actor”的整体结构来运行更具体的因素。当事件发生时,例如示例图中的“Oninjured”,Actor通过改变这些因素来反映事件。以下是NextBot具备的所有不同因素的总结:
移动
这个因素决定了NextBot如何在环境中移动。例如,如果一个NextBot被编程为在受伤后逃跑,它就会依靠这个因素移动到地图上的不同位置。
身体
这个因素处理NextBot的动画。在“oninjured”的例子中,NextBot将依靠这个因素来播放退缩动画。
视场
这个因素处理NextBot如何看待其环境中的某些实体。视场和视距功能主要体现在这个因素上。
注意,这个因素不是NextBots工作所必需的。例如,tf2中的骷髅会发现并攻击敌人,而不管它是否看到敌人。
意图
这就是NextBot真正的AI所在。意图因素管理NextBot可能拥有的不同行为,这个因素负责根据事件改变这些行为。
要了解这个因素在游戏中的作用,请参见NextBot行为的例子 。
行为
行为包含一系列动作,当意图因素选择它时,它将执行这些动作。
这个函数可以看作是NextBot的时间表 ,因为它们都是AI需要执行的特定操作的列表。
动作
这是NextBot的实际AI代码,当它的父行为被意图因素运行时,它将运行。Action可以有一个额外的子Action,它将与父Action同时运行。
这个函数可以看作是NextBot的任务 ,因为它们都包含驱动AI本身的核心编程。
参见
外部链接
- The AI Systems of Left 4 Dead - An official PDF regarding various mechanics of Left 4 Dead, including NextBots and the AI Director
证实:Is there a video recording of this presentation?