游戏引擎物理精度(例如 TrackMania "Press Forward Maps")

Precision in Game Engine Physics (eg TrackMania "Press Forward Maps")

一段时间以来,我一直在思考游戏如何计算物理。以游戏 TrackMania 为例。有一些特殊路线,您只需从起点加速即可到达终点。作为示例,我使用以下 YouTube 视频 (https://www.youtube.com/watch?v=uK7Y7zyP_SY)。不幸的是,我不是游戏开发方面的专家,但我大致了解引擎的工作原理。 大多数引擎使用游戏循环,这意味着它们使用上次调用和当前调用之间的增量值。此增量值用于移动对象、检测碰撞等。增量值越高,对象移动的距离就越大。该原理适用于许多游戏,但不适用于 TrackMania。 一台只能显示 25 FPS 的 PC 与 120 FPS 的 PC 计算物理的方式不同,因为碰撞检测更准确(更早检测到撞击,相应地调整速度,......)。现在您可以假设 delta 值始终相同(与 Super Mario Maker 一样,至少这是我的假设),那么这将起作用。但这会导致类似于旧游戏的问题(https://superuser.com/questions/630769/why-do-some-old-games-run-much-to-quickly-on-modern-hardware/)。

现在我的问题是,为什么这样的地图在每台 PC 上都能正常工作,为什么物理原理总是完全一样?我错过了游戏开发/引擎开发的任何方面吗?

答案很简单,首先游戏的物理是可以预测的,根据输入结果总是一样的。

然后物理循环和渲染是不一样的,游戏确保物理循环在整个执行过程中每次都以完全相同的周期被调用。所以,是的,渲染部分需要一个增量,但物理是每次迭代之间以毫秒为单位的常数时间。

最后一个想法:你不会在多人游戏中找到 "Press Forward" 地图,这些地图将无法正常工作,这与避免 TAS(工具辅助 Speedrun)的物理特性直接相关。