快速多人游戏(5) - 示例代码和Demo
来源:互联网 发布:网络好声音第二季 编辑:程序博客网 时间:2024/06/09 17:12
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,按住右键一会,现在动画就变得很顺畅了,因为做了客户端的预测,但是当服务器处理完客户端的请求将结果返回给客户端的时候,由于延迟,客户端的预测已经超过了返回的结果,所以角色弹回去了。
服务端调解
现在开启调解,当服务器发送状态的时候,从服务器发送过来的确认的位置,通过所有未经确认的输入进行再次预测。现在不管有多少延迟,不管服务器的更新频率是多少,客户端总是同步的。
- 快速多人游戏(5) - 示例代码和Demo
- 快速多人游戏(5) - 示例代码和Demo
- Listview的多选demo示例代码
- ThreadLocal示例Demo 代码分离
- javascript demo简单示例代码
- 常用的Python库和示例代码(快速上手)
- 快速多人游戏(2) - 客户端预测和服务器校验
- 快速多人游戏(2) - 客户端预测和服务器校验
- python快速排序代码示例!
- Listview展示拍照图片demo示例代码
- Listview的上拉加载更多和下拉刷新demo示例代码
- 【iOS7开发快速入门】代码示例3-5
- Socket连接代码示例、WebService 小demo示例
- silverlight多人在线游戏示例
- 不良代码示例和优良代码示例
- 网络游戏demo开发实例:多人在线RPG游戏(MMO RPG)demo的开发记录(第5篇)
- 继承和多态的代码示例
- LEADTOOLS示例(DEMO):PDF缩略图和书签
- iOS 音乐播放器
- Docker容器内存限制
- Qt学习之路(60): 创建shared library
- java中的Character和char的区别
- ORACLE 10g升级到10 2 0 5
- 快速多人游戏(5) - 示例代码和Demo
- 记一次BUG与DEBUG衍生的若干问题
- dede后台模板修改,织梦后台模板修改
- [Learning OpenCV入门2]CMake生成源代码以及HighGUI部分内容
- Linux系统使用总结(2)——软件安装与卸载
- java眼中的XML---文件读取
- 编译静态链接的Git
- 百度ueditor组件上传图片后如何设置img标签里的src、title、alt等属性
- Oracle连接配置