DR算法

在飞机游戏中DR的一个例子:
1. 飞机的运动速度都是固定的,两台游戏机联机玩,分别是A和B;
2. 对于A和B来说,是否需要发送PDU(protocoldataunit,协议数据)是通过阈值控制的。实际运动位置是P1,而DR算法模拟得到的运动位置是P1′,如果P1-P1′大于预先设置的阈值就发送PDU通知对方。
3. 每次收到对方的PDU,则更新对方的位置。
4. 在没有收到PDU的时候,需要模拟对方的运动,DR提供了几种经典算法:
(1)位置1 = 位置0,就是保持不变
(2)位置1 = 位置0 + 速度 × (T1 – T0),相当于根据PDU中的数据,做匀速运动
(3)位置1 = 位置0 + 速度 × (T1 – T0)+ 1/2 × 加速度 × (T1 –T0)平方,比2)中多了加速度的方向
在游戏中应用的比较多的是2)和3)。

总结: 1. DR的阈值是一个需要测试衡量的关键参数。阈值设置的越低,游戏画面会越平滑,但是网络带宽也会消耗的越快。 2. DR可以忍受一定程度上的丢包,所以可以用udp来提高时效性,避免tcp重传。 3. 网络游戏的位置同步,是比较复杂的情况,在应用DR算法的基础上,还需要在很多细节上进一步完善,才能减少网络延时带来的影响。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值