我是第一次设计游戏,但我想知道游戏时间的基础.它是基于时钟还是依赖于帧?(注意:我不确定'游戏时间'这里是否是正确的词,如果不是,请纠正我)
更清楚的是,想象一下这些场景:
在两台计算机上播放相同的游戏,其中角色以相同的速度行走.
如果游戏时间基于帧,则角色在计算机1上的移动速度是原来的两倍.另一方面,如果游戏时间基于实际时间,计算机1将显示两倍的帧,但角色移动速度一样快就像在电脑上2.
我的问题是,处理游戏时间的最佳方法是什么,优点和缺点是什么?
Jus*_*cle 10
一般来说,商业游戏有两件事 - 一个"模拟"循环和一个"渲染"循环.这些需要尽可能地分离.
您希望将模拟时间步长固定为某个值(大于或等于最大帧速率).复杂物理学不喜欢可变时间步骤.我很惊讶没有人提到这一点,但如果你有任何有趣的物理学,固定时间步骤与可变时间步骤是一个大问题.这是一个很好的链接:http: //gafferongames.com/game-physics/fix-your-timestep/
然后渲染循环可以尽可能快地运行,并渲染当前模拟步骤的输出.
所以,参考你的例子:
您可以以60fps运行模拟,即16.67ms时间步长.计算机A将以60fps渲染,即它将渲染每个模拟帧.计算机B将会使每一第二模拟支架.因此,角色将在同一时间内移动相同的距离,但不是那么平滑.
真正古老的游戏使用了帧数.很明显,这是一个糟糕的想法,因为机器变得更新,因此游戏运行得更快.
因此,它基于系统时钟.通常,这是通过知道最后一帧花了多长时间来完成的,并使用该数字来知道经过这个帧的"实时".