在简单的“基于步骤”的图形引擎中,对象移动直接与帧速率相关联。这在 1980 年代硬件相同时很好。
多年来,发动机一直“基于时间”,d=s/t。这意味着无论计算机的帧速率或功率如何,一个对象从 A 到 B 都需要相同的时间。
如果一切都是基于时间的,我们如何执行角色被 NPC 击中时生命值减少 x 的动作?“命中”可能是每 5 秒一次。
据我所知,这 5 秒的延迟称为“心跳”。许多 MMO 使用这样的心跳,这对于很多动作都是全局的。
在基于时间的引擎中,“心跳”是用于非线性事件的最佳方法吗?
更新:
感谢您的详细回复。如果可能的话,我会尽力澄清。我正在尝试决定 MMO 服务器使用哪些选项在内部模拟它控制的世界。
据我了解,系统中有 3 个主要的“刺激”会导致对象发生变化: 注意,这些仅在服务器内部。
线性集成操作。这些都是在游戏循环中完成的。例如 NPC 从 A 到 B 的移动。
客户端事件。就服务器而言,这些发生在看似随机的时间。例如用户点击开火。
基于时间。这些以心跳间隔发生。例如,检查任何空闲的 NPC 并给他们一些事情做。
第 3 步是我正在努力解决的问题,并希望澄清这种方法是否正确。我希望这能澄清我的问题。