什么是游戏时间?实时或帧?

Har*_*men 6 language-agnostic

我是第一次设计游戏,但我想知道游戏时间的基础.它是基于时钟还是依赖于帧?(注意:我不确定'游戏时间'这里是否是正确的词,如果不是,请纠正我)

更清楚的是,想象一下这些场景:

  1. 计算机1速度快,高达60fps
  2. 计算机2很慢,不超过30fps

在两台计算机上播放相同的游戏,其中角色以相同的速度行走.

如果游戏时间基于帧,则角色在计算机1上的移动速度是原来的两倍.另一方面,如果游戏时间基于实际时间,计算机1将显示两倍的帧,但角色移动速度一样快就像在电脑上2.

我的问题是,处理游戏时间的最佳方法是什么,优点和缺点是什么?

Jus*_*cle 10

一般来说,商业游戏有两件事 - 一个"模拟"循环和一个"渲染"循环.这些需要尽可能地分离.

您希望将模拟时间步长固定为某个值(大于或等于最大帧速率).复杂物理学不喜欢可变时间步骤.我很惊讶没有人提到这一点,但如果你有任何有趣的物理学,固定时间步骤与可变时间步骤是一个大问题.这是一个很好的链接:http: //gafferongames.com/game-physics/fix-your-timestep/

然后渲染循环可以尽可能快地运行,并渲染当前模拟步骤的输出.

所以,参考你的例子:

您可以以60fps运行模拟,即16.67ms时间步长.计算机A将以60fps渲染,即它将渲染每个模拟帧.计算机B将会使每一第二模拟支架.因此,角色将在同一时间内移动相同的距离,但不是那么平滑.


zeb*_*h49 7

真正古老的游戏使用了帧数.很明显,这是一个糟糕的想法,因为机器变得更新,因此游戏运行得更快.

因此,它基于系统时钟.通常,这是通过知道最后一帧花了多长时间来完成的,并使用该数字来知道经过这个帧的"实时".

  • 真的老游戏使用*计时器滴答*不是帧数.更快的时钟(8 MHz对4.77 MHz)意味着一秒钟内有更多的嘀嗒声,并且因为发生了一些事情,比如每10个嘀嗒声,游戏会更快地运行并且更频繁地吸引到屏幕.帧速率的增加是更快蜱的结果*,但不是运动本身的基础. (4认同)
  • +1:嘿.任何人都记得*Wing Commander*...这个问题最糟糕的系列之一.更新的硬件使它们无法播放.现在游戏根据系统时间解释时间,图形系统查询游戏对象的状态,并绘制图片. (2认同)