如何在游戏中实现相对计时器

时间:2012-04-10 06:37:32

标签: mmo

我们的游戏是一款MMO游戏,我们的逻辑服务器当然也有游戏循环。为了使这些逻辑模块易于编写,我们提供了一个定时器模块,它支持注册实时定时器并在可能的情况下触发它。在游戏循环中,我们将系统时间(以毫秒为单位)传递给计时器模块,计时器管理器将检查是否可以触发某些计时器。例如,为了更新玩家/怪物位置,当玩家开始移动时,我们每200ms更新玩家位置。

但是当游戏循环运行太多逻辑时,它将在单个帧中使用太多时间,而在下一帧中,某个定时器将比实时慢。这实际上会导致一些错误。例如,如果在一帧中,它花费1秒,并且在下一帧中,实际时间是1000毫秒,并且移动计时器已在800毫秒内调度,因此计时器已在1000毫秒触发,比预期时间慢。 / p>

那么有没有更好的解决方案来解决这个问题呢?例如,我们可以实现一个计时器,只依赖于我们的游戏,而不依赖于真正的计算机时间?

0 个答案:

没有答案