套接字编程 - 多人射击游戏服务器如何处理时间?

时间:2010-08-22 21:42:59

标签: sockets multiplayer

射击游戏服务器如何处理时间,例如当玩家射击另一个时,他们如何确保两个玩家在同一时间收到消息。

或者在大多数情况下,你会看到玩家每秒钟所做的每一个细节,并且两个玩家在他们的客户端看到完全相同的动作?游戏服务器如何设法在同一时间将这些动作发送给所有客户(玩家)?

2 个答案:

答案 0 :(得分:3)

他们没有在同一时间看到它们。

服务器将确定镜头是否命中,并向客户端发送更新。然后客户将绘制子弹,血液等。

那里有一个定时循环,但不是每个事件都必须同步。这就是为什么你看到玩家在高延迟下跳跃的原因。

从他们的角度来看,他们运行顺畅,但由于延迟,您的客户端的更新速度不够快。

答案 1 :(得分:1)

大多数数据包都以足够大的延迟发送,这会使一切看起来不稳定。客户端显示的所有内容都将具有滞后补偿(预测射弹,玩家等在帧之间的位置),以使其看起来像数据包同时出现。