快速多人游戏(5) - 示例代码和Demo

http://blog.csdn.net/silangquan/article/details/51553300

原文链接:Fast-Paced Multiplayer: Sample Code and Live Demo


这是一个简单的C-S架构的实现,用来证明这一系列文章里的一些观点。如果你没有阅读过之前的文章的话,下面的内容对你并没有什么意义。

代码是JavaScript写的,都包含在这个网页里,不超过400行,并且包含了很多的注释,这也证明了你如果理解了其中的概念,实现它是相对简单的。



注:实验demo最好前往原网站进行体验

参数说明

 上面的两个窗口模拟了玩家的视角,还有整个世界的状态,你可以通过左键和右键来控制,试一试吧!


最佳状态

将参数设置为 Lag=0,Update = 60这是最佳状态,服务器以最快的速度更新整个世界的状态,客户端和服务器之间没有任何延迟,这种情况当然是最吼的。


响应缓慢的服务器

设置Update = 5. 服务器每秒只更新5次,所以客户端端的看起来一顿一顿的,但是整个游戏看起来还能玩。


延延延延延迟

我们来加一些延迟,将它设置为250ms。游戏已经感觉有点迟钝了:玩家的视角直到服务器确认了客户端的输入才会更新,因为传送出去还传送回来都要花费时间,所以当你按下按键,你的角色要0.5s之后才会移动。


客户端预测

开启预测,将Update设置为1,按住右键一会,现在动画就变得很顺畅了,因为做了客户端的预测,但是当服务器处理完客户端的请求将结果返回给客户端的时候,由于延迟,客户端的预测已经超过了返回的结果,所以角色弹回去了。


服务端调解

现在开启调解,当服务器发送状态的时候,从服务器发送过来的确认的位置,通过所有未经确认的输入进行再次预测。现在不管有多少延迟,不管服务器的更新频率是多少,客户端总是同步的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值