一段时间以来,我一直在思考游戏如何计算物理。以游戏TrackMania为例。有一些特殊的路线,你只需要从开始加速就可以到达终点。作为一个例子,我以以下YouTube视频(https://www.youtube.com/watch?v=uK7Y7zyP_SY)为例。不幸的是,我不是游戏开发方面的专家,但我大致知道引擎是如何工作的。 大多数引擎使用游戏循环,这意味着它们使用上次调用和当前调用之间的增量值。此增量值用于移动对象、检测碰撞等。增量值越高,对象必须移动得越远。该原则适用于许多游戏,但不适用于TrackMania。 只能显示 25 FPS 的 PC 计算物理效果的方式与 120 FPS 的 PC 不同,因为碰撞检测更准确(更早检测到撞击,相应地调整速度,...现在你可以假设增量值总是相同的(就像超级马里奥制造商一样,至少这是我的假设),那么这将起作用。但这会导致类似于旧游戏(https://superuser.com/questions/630769/why-do-some-old-games-run-much-to-quickly-on-modern-hardware/)的问题。
现在我的问题是,为什么这样的地图在每台PC上都有效,为什么物理总是完全相同?我是否错过了游戏开发/引擎开发的任何方面?
答案很简单,首先游戏的物理是可预测的,基于输入结果将始终相同。
然后物理循环与渲染不一样,游戏保证在整个执行过程中每次调用物理循环时都会以完全相同的周期调用。因此,是的,渲染部分需要一个增量,但物理场是每次迭代之间的恒定时间(以毫秒为单位)。
最后一个想法:您不会在多人游戏中找到"向前按"地图,这些地图将无法正常工作,这与物理特性直接相关,以避免TAS(工具辅助速跑)。