关于网络玩家同步的方案记录

文档创建者:admin
浏览次数:402
最后更新:2024-06-14
1.客户端推送自己本地时间戳到服务器

2.服务器同时将网络时间推送给客户端,客户端得到自己的本地时间出去,回来的差值,这就是网络延时
3.客户端计算出与服务器的时间差,每次客户端提交移动消息时候,带上时间差
4.服务端广播时候,带上服务器时间戳与当前玩家的时间差
5.其他玩家收到消息时候,通过原先计算得到的时间差,加本地时间戳--得出服务器当前时间戳-减去与网络玩家的时间,得出这个玩家与自己的时间差。
6.客户端计算这个玩家的差值移动速度。
7.完毕。在网页游戏不消化的情况下,是正常同步的,但是小化后,因为网页停止运行,导致会异常。
//后记
1.服务端中理应记录这个玩家的移动速度,时间差,得出每一次随时获取时间差,玩家走了多远的距离,来告诉客户端恢复时候,客户端应该渲染在什么坐标

2.其他操作理应如此~

发表评论已发布 2

恶魔天尊

发表于 2024-6-13 14:09:48 | 显示全部楼层

网络延迟有波动,这个如何处理呢?上一个包可能要1分钟,下一个包可能1S;客户端和服务端都有可能

admin

发表于 2024-6-14 17:06:28 | 显示全部楼层

恶魔天尊 发表于 2024-6-13 14:09
网络延迟有波动,这个如何处理呢?上一个包可能要1分钟,下一个包可能1S;客户端和服务端都有可能 ...

时间戳就是补差值的。一分钟,这种消息包直接丢了。。。超过1-3秒都要丢。还那么久
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则