《使命召唤:幽灵》——是否是下一代?

MP1st 上最近的文章,关于什么是新游戏引擎、什么不是新游戏引擎,似乎存在很多争议。 《使命召唤:幽灵》的引擎是新的,还是上一代主机硬件的复制/粘贴工作?从非常严格的意义上来说,不。它不是全新的发动机。但这本身并不是一件坏事。与往常一样,实际的答案要微妙得多。

在判断一个引擎是否值得被称为“下一代”之前,您需要了解游戏引擎的用途。游戏引擎不仅仅是在屏幕上绘制图片。游戏引擎几乎可以完成所有事情。可能是我说得不够清楚。一切。

一切?

那么,一切究竟意味着什么呢?我无法详细说明,甚至无法提及所发生的一切,但我可​​以给出一个简化的视图。首先,引擎检查可用的硬件。这涉及到处理器速度、可用 RAM、是否连接互联网、是否连接 USB 配件等等。这在 PC 上是一个相当广泛的过程,但即使在控制台上,这种情况发生的程度也较小。完成后,您可以启动图形界面。但这还没有结束。游戏还需要加载数据,并且所有这些数据都需要以某种方式在内存中表示。如何加载、存储和检索大量数据本身就是一门科学。该引擎不断使用缓存、数十种不同的数据结构,并管理和跟踪所有内容的位置,并确保不会耗尽内存。这不是你运行游戏时考虑的事情,但对于现代游戏来说,即使在当前的游戏机上,它也是极其重要且非常复杂的。

但再一次,它并没有就此停止。如果这一切都正常,您现在可以开始加载介绍视频。那么,下一步是什么?您需要显示主菜单。菜单是您需要能够以不同深度显示的另一种数据结构。它并不像游戏的大多数其他部分那么复杂,但游戏需要有一个系统,允许设计人员轻松更改菜单的结构和外观,而不必经常接触底层代码。游戏还需要拦截来自用户的命令。这可以是您的控制器,但越来越常见的是语音命令和手势。什么按钮或命令在什么时间做什么是另一个需要运行的系统。根据您在菜单或游戏中的位置,按钮可以执行不同的操作,因此这并不像将按钮绑定到单个操作那么容易。输入管理器需要具有上下文感知能力。另外,人们喜欢声音。使用游戏在启动前运行的检测代码,它知道将音频发送到哪个音频设备。目前它只是一个简单的 .mp3 文件或其他格式。

哦,在我忘记之前:如果你碰巧插入了耳机,或者你的控制器失去了连接,游戏也需要处理这个问题。有一个系统不断监听来自底层操作系统的有关硬件变化的消息。它需要确保在任何时候这些更改都能得到尽可能优雅的解决。这不是一个简单的任务。

主菜单

因此,随着所有这些系统的启动和运行,我们进入了主菜单!惊人的。您正在 MP1st 上阅读本文,所以我假设您接下来想要启动多人游戏。为此,您需要互联网连接。这通常由操作系统处理,但您仍然需要一个系统来处理游戏可能发出的所有不同请求。同样,通过网络有效且正确地传输数据本身就是一门科学,因此接下来的内容非常简单:游戏将向某个主服务器发送请求,询问可用的服务器或大厅。在大厅格式中,游戏通常会尝试确定哪个结果将提供最佳延迟。对于专用服务器,它通常只向您显示列表并让您决定。当您连接到服务器(专用或非专用)时,大量数据会来回传输,因此双方都知道谁是谁以及发生了什么。

服务器接受您的连接,您终于可以开始玩了……在加载屏幕之后。现在必须使用我上面描述的内存管理器系统加载游戏的每一件事。这将是许多千兆字节和数十甚至数十万个不同的文件需要存储在数据结构中。一切加载完毕后,就可以开始渲染了。但我们必须渲染什么呢?又如何呢?无论您是否玩单人游戏、在专用服务器上还是 P2P,您的游戏始终需要游戏世界的表现。这不是您在屏幕上看到的图像,而是游戏当前状态的抽象表示。它包括具有当前状态、位置、旋转和特殊属性的对象,还包括必须播放不同声音的区域、弹出的子弹等粒子、可以执行特殊动作(如翻墙等)的地方。在多人游戏中,每个玩家都有自己独特的游戏世界版本。保持这些同步是一个非常难以解决的问题,这就是可怕的“滞后补偿”的出现,作为一种解决方案。每一帧,时间都会前进,整个事物都会更新。物理、服务器的更新、玩家的动作……它们都应用于游戏世界的抽象表示中。

最后,3D!

直到现在,3D 渲染器才开始工作。它要做的第一件事就是确定哪些对象在当前视图的视野中以及哪些部分。这是渲染器的一个非常基本的部分,因为如果做得正确,您只能渲染您所需要的内容。如果做得不对,你就会在玩家看不到的事情上失去很多表现。一旦它知道要渲染什么,它就会从正确的角度和位置绘制所有对象。但它的作用不仅仅如此。它还可以表示每个像素的每个表面的角度、距相机的距离、反射的程度等等。一旦获得这些数据,它就可以开始应用灯光效果。一旦照明完成(除其他事项外),所有内容都会经过后期处理,UI 绘制在其之上,这就是将其显示到屏幕上的原因。

大多数渲染系统完全按照要求执行的操作。如果您想知道像素距相机有多远,并且您有一个很好的算法,那么这就是您解决该问题所需的一切。抛弃工作系统是没有意义的,只是重写它们以实现完全相同的功能。一般来说,扔掉整个引擎是一个坏主意,除非存在一些重大的技术障碍阻止你改进它。如果开发人员想要改进游戏中的光照,他们所需要做的就是改进渲染器的光照步骤。现代引擎中的许多新功能都是直接插入渲染管道的构建块,正如他们所说的那样。许多花哨的渲染技术都面临着许多技术和数学挑战。

《使命召唤:幽灵》:是否是下一代?

利用额外的马力,CoD:Ghosts 引擎显着改进了渲染器的许多部分,并添加了许多其他部分。它可能不会像《战地 4》那样漂亮,但话又说回来,它将以两倍的帧速率运行。 《Frostbite 3》和新的 CoD 引擎都是“下一代”引擎,尽管它们都不是全新的。随着时间的推移,两者都会变得更好。举一个很好的例子,将《CoD2》与《BO2》进行比较,或者将原版《Bad Company》与《战地 3》进行比较。这只是新游戏机的第一波游戏。最好的尚未到来。抛弃完美工作的引擎而不是对其进行改进只会减慢这一过程。

所以下一次引擎“只是”之前版本的改进版本。不要点燃火把或拿出干草叉。公平地对待它。伟大的软件就像美酒。这需要时间。两年的改进比两年的一切从头开始的效果要大得多。

最终,我们都是赢家,因为我们都将获得基于更好引擎的更好游戏。作为一名电脑游戏玩家,我绝对可以欣赏良好的图形,但归根结底,玩游戏时对我来说唯一重要的是玩得开心。玩你想玩的游戏,然后让别人也玩。美好的时光即将到来,我们就好好享受吧,不要在网上吵架了!