我试图了解如何实现游戏循环的不同方式及其优缺点。
在研究时,我发现了这个:
http://entropyinteractive.com/2011/02/game-engine-design-the-game-loop/
但这是我不完全理解的事情:
"此时有几种选择。第一个是制作 更新意识到循环花了多少时间。例如,如果循环 只需要预期的一半,只将对象移动一半。一个 具有此行为的游戏循环有时被称为“delta” 循环“或使用”增量时间“。 除非你非常小心,否则可以 引起问题,特别是在更新非常快或很慢时。这个 也使得游戏的行为更不可重复。"
当更新速度很快或很慢时,可能会发生什么?什么" 更不可重复"实际上是什么意思?
也许有人能够向我解释。谢谢! :)
答案 0 :(得分:1)
如果更新非常缓慢,你可以遇到的经典问题有时被称为死亡螺旋:如果更长的时间步长导致你的游戏做更多工作来模拟那个时间(例如运行额外的物理步骤),那么更大工作量可能导致更长的帧时间,这导致更多的工作要做,这使得帧时间更长,等等。大多数具有基于增量时间的游戏循环的游戏将有一些处理这种情况的方法,即使它只是增量时间的上限。运行过快的问题可能不太明显,但包括增加功率/电池消耗。
重复的问题是因为基于时间的增量循环放弃了确定性的可能性。如果你的游戏运行速度尽可能快,那么由于机器负载和其他外部因素,每次运行都会有非常不同的时间步长,所以即使你重播完全相同的用户输入,游戏的行为也会略有不同。如果你经常以60Hz(不管游戏的渲染频率)来逐步调整你的游戏逻辑,那么如果你(非常)小心,你可以从游戏中获得可重复的结果。