快速多人游戏(5) - 示例代码和Demo
来源:互联网 发布:苹果6怎么清除应用数据 编辑:程序博客网 时间:2024/06/07 13:42
原文链接: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缩略图和书签
- 欧洲维修年度大会在雅典黎德酒店顺利召开
- 3.RDD的创建
- 创业公司如何实施敏捷开发(转载)
- iOS UICollectionView 实现轮播图
- Unity开发者如何使用VS进行单步,详情点击
- 快速多人游戏(5) - 示例代码和Demo
- 单例模式介绍和应用
- Mybatis-Generator反向生成
- Socket小白篇 TCP/UDP简介
- ButterKnife--View注入框架
- 笔试题71. LeetCode OJ (58)
- 如何使用xmind绘制概念图——零起步教程
- UVA-679-DROPING BALL
- WebView的简单用法