Random Posts
Tags
Categories
Recent Comments
- ychellboy on CD3:Flash 开发宝典
- Barenboim on 异步事件模型的 Self-pipe trick
- Barenboim on 异步事件模型的 Self-pipe trick
- wqchen on 异步事件模型的 Self-pipe trick
- maximus on 异步事件模型的 Self-pipe trick
Links
Meta
Monthly Archives: December 2007
影子跟随算法(2007年老文一篇)
算法简述 动作类游戏如何在高延迟下实现同步?不同的客户端网络情况,如何实现延迟补偿?十年前开始关注该问题,转眼十年已过,看到大家还在问这类问题,旧文一篇,略作补充(关于游戏同步相关问题还可以见我写于2005年的另外两篇文章,帧锁定算法 和 网游同步法则): 影子跟随算法由普通DR(dead reckoning)算法发展而来,我将其称为“影子跟随”意再表示算法同步策略的主要思想: 1. 屏幕上现实的实体(entity)只是不停的追逐它的“影子”(shadow)。 2. 服务器向各客户端发送各个影子的状态改变(坐标,方向,速度,时间)。 3. 各个客户端收到以后按照当前重新插值修正影子状态。 4. 影子状态是跳变的,但实体追赶影子是连续的,故整个过程是平滑的。 图1 算法演示 前面的1号终端控制红色飞船P1向左飞,并把自己的状态时时告诉服务器 后面的2号终端上接收到飞船P1的影子S1的状态(向左移动),并让P1的实体追赶S1 网络性能指标一:带宽,限制了实时游戏的人数容量 网络性能指标二:延时,决定了实时游戏的最低反应时间 使用该算法可以容易的开发出一款马里奥赛车,或者Counter Strike,详细说明见后: