您的位置:首页 > 编程语言

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

2016-06-02 22:05 441 查看
原文链接: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,按住右键一会,现在动画就变得很顺畅了,因为做了客户端的预测,但是当服务器处理完客户端的请求将结果返回给客户端的时候,由于延迟,客户端的预测已经超过了返回的结果,所以角色弹回去了。

服务端调解
现在开启调解,当服务器发送状态的时候,从服务器发送过来的确认的位置,通过所有未经确认的输入进行再次预测。现在不管有多少延迟,不管服务器的更新频率是多少,客户端总是同步的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息