他们如何跟踪《 Left 4 Dead》中的NPC?


11

他们如何跟踪《 Left 4 Dead》中的NPC僵尸?

我说的是NPC,它们只是走进墙壁或漫无目的地徘徊。即使玩家看不到它们,它们也在那里(例如在房间内或在门后)。假设走廊和室内大约有10个左右的僵尸。游戏是否将所有这些僵尸都保留在列表中并通过向其发出命令进行迭代?它们只是在用户处于特定半径内或到达特定位置时才产生吗?

假设您将4个单位(由玩家控制)放置在整个地图上完全不同的地方。假设您没有被拥挤,那么您还没有杀死任何这些无目标的NPC。游戏会记录总共10 x 4 = 40个僵尸吗?

还是我的理解力完全消失了?

我问的原因是我是否要在移动设备上实现类似的功能,所以跟踪40个或更多的NPC可能不是一个好主意。


1
我看过Valve的演讲,解释了有关L4D中僵尸的一切。我找不到。
共产主义鸭子

2
@共产主义鸭子-那将非常有用。如果找到,请发表。我在网上只能找到游戏常见问题解答。
f20k 2011年

Answers:



4

我还没有看过ChrisE撰写的链接的论文,但是从我与Valve员工的对话中或者在他们的Development Wiki的某个地方(不记得是哪一个)中,我记得被告知他们实际上只有几个真实实体(AI总监);您看到描绘被感染的NPC的化身仅仅是这些实体的“手指”。他们这样做是为了使e令(实体字典)条目的数量保持最少,因为显然有大量受感染的NPC需要跟踪。

引擎的实体字典大小固定,无法增长。这意味着在此引擎上构建的,需要大量NPC或与此相关的任何实体的任何游戏,都必须利用该系统,以使引擎正常运行,而不会阻塞(并最终崩溃),因为实体数过多。


您是否知道其他种类的实体?特殊感染者会是实体吗?当我可以与受感染的NPC互动时,我很难理解“实体”还是“手指偶”。
f20k 2011年

1
特价品是实体。确定真实和虚假内容的最简单方法是观看控制台。您可以从其他玩家的名字上受特殊物品的伤害,但是当您从公地上受到伤害时,控制台会显示您受到了“世界”(iirc)的伤害。
罗布N

是的,我明白你的意思。他们只是围着我围着,做一个拍打的动画。非常有趣,谢谢。
f20k 2011年

解释“手指-木偶”概念如何工作的最佳方法可能是将其与牧羊犬进行比较。有一个“控制者”(例如:狗)和一群“布偶”(例如:绵羊)(在这种情况下为部落)。“布偶”不能自己思考,他们只能执行控制器指示他们执行的操作。木偶基本上是控制器实体的扩展,但它们不使用一个视觉元素,例如被特殊感染的情况,而是使用多个独立控制的视觉元素。
Cale 2012年

1

我不能说“ Left 4 Dead”实现的工作原理,但是我可以说我可能会怎么做。

我会选择类似您的第二个选项的方法,跟踪每个玩家并仅在玩家移过触发点时才加载NPC。在这样的系统中,关键是使触发点离玩家足够远,以致于他们无法关联walking past this fence post触发that car to blow up, and shoot a zombie at them.

我可能会有一个活动的NPC集合,触发点可以从该集合中添加或删除NPC。这使您可以将CPU / GPU资源花费在玩家实际与之交互的NPC上,但是它使您可以随时灵活地加载NPC。

考虑一个可以听到声音的老板,也许老板在地图开始时就被加载了,如果玩家穿过地图时发出很大的声音(手榴弹,炸弹等),老板会寻找玩家并发起攻击。突如其来,而不是等到玩家到达老板竞技场。

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.