地图移动逻辑

主要的一些问题

0. 可能会很久没收到,,或者一下子同时受到很多个同步的包

关于坐标滞后导致的一些游戏逻辑问题,比如攻击命中的判定问题等,一般是以服务器数据为判定依据,逻辑判定还是以服务器为主,客户端主要做表现。

1. 插值

关于坐标上报频率,我采取的是每100ms 或是 坐标 或 角度 变动超过一定阈值才上报。

关于插值方案,我选择了最简单的线性插值,感觉效果也够用,网上还有一些其他的插值算法,可能效果会更平滑一些把。

2. 网络延迟

做预测, 在没有收到下一个同步点的时候,客户端自己做一个位移预测,让角色保持位移的状态,客户端简单地认为角色会保持当前的位移方向和速度继续运动(事实上也确实是保持运动状态的情况居多,变化居少)

之前经常发生进行同步的时候,第三方客户端上的角色最终停止的位置会比主客户端多走了几步的问题,这时因为对最后一个同步坐标也做了预测的缘故。 这里我们可以同步的数据包上加一个标记,标记当前点是否为终点,或者主客户端在发送完最后一个坐标之后立马再上报一条角色停止的消息,标记角色当前已停止位移,不需要再做预测。

会有收到最后一个点的时候,角色已经做了预测,并且走超了的情况,这种情况只能按照终点坐标做一个会拉的操作了,或者客户端设定了预测上限,在偏差值不大的情况下允许这种偏差存在也可以。

比如延迟超过500ms的延迟和抖动(500ms相当高啦!)会发生中间的还没来得及同步的坐标点被丢弃,直接同步最新点的问题,延迟较大,直接来个瞬移吧.

a星寻路:

客户端发目标点上来,,服务端基于当前服务端的点,为客户端,要寻路结果路径,,如果客户端发现起始点和服务端的起始点有偏差,如果小,可以插值平滑获取,,如果插值大,可以损益到起始点.

云风的 BLOG: 开发笔记(12) : 位置同步策略

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值