游戏网络同步——dead reckoning
来源:互联网 发布:论坛发帖软件平台 编辑:程序博客网 时间:2024/06/11 02:37
网游中,玩家的位置同步经常会用到deadreckoning算法,中文翻译叫导航推测,下文简称DR。
DR提供了隐藏延时和减少带宽的方法。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 0
- 游戏网络同步——dead reckoning
- 网游同步算法之导航推测(Dead Reckoning)算法
- Dead reckoning in Unreal
- Dead reckoning的改进模型。
- [转]网游同步算法之导航推测(Dead Reckoning)算法
- Dead Reckoning: Latency Hiding for Networked Games
- Dead Reckoning - 航位推测法
- 游戏网络同步——MMO位置同步
- 游戏网络同步——MMO位置同步
- Dead Reckoning: 在网络游戏中消除延时影响
- Dead Reckoning: 在网络游戏中消除延时影响
- Targeting A variation of dead reckoning (v1.0)
- 5. ROS编程入门--航迹推算(dead reckoning)
- 游戏中的网络同步机制——LOCKSTEP
- 游戏中的网络同步机制——Lockstep
- 游戏中的网络同步机制——Lockstep
- 游戏中的网络同步机制——Lockstep
- 游戏中的网络同步机制——Lockstep(转载)
- How to Submit Your App When it Uses IDFA
- C++中引用OC类
- Shader Level of Detail
- git 常用命令
- 引用类型传值机制
- 游戏网络同步——dead reckoning
- VS项目配置中 C++目录--包含目录(or库目录继承值的删除问题)
- 游戏网络同步——MMO位置同步
- MMOG网络同步算法揭秘(QQ幻想)
- 给CodeIgniter增加Redis的缓存驱动
- 内存耗用:VSS/RSS/PSS/USS
- Managing asset dependencies
- Building AssetBundles
- hibernate annotation 之 主键生成策略