Unity3D——强联网实时PVP思路
来源:互联网 发布:人工智能 大学排名 编辑:程序博客网 时间:2024/04/29 05:42
网络层:
为了保证网络的稳定性,选择UDP
+KCP
协议的协议方式
业务层:
实现方案:
网络游戏同步方案主要有两种:状态同步
和帧同步
- 状态同步:顾名思义,是指的将其他玩家的状态行为同步的方式,一帮情况下AI逻辑,技能逻辑,战斗计算都由服务器运算,只是将运算的结果同步给客户端,客户端只需要接受服务器传过来的状态变化,然后更新自己本地的动作状态、Buff状态,位置等就可以了,但是为了给玩家好的体验,减少同步的数据量,客户端也会做很多的本地运算,减少服务器同步的频率以及数据量。
- **帧同步:**RTS游戏常采用的一种同步技术 ,上一种状态同步方式数据量会随着需要同步的单位数量增长,对于RTS游戏来讲动不动就是几百个的单位可以被操作,如果这些都需要同步的话,数据量是不能被接受的,所以帧同步不同步状态,只同步操作,每个客户端接受到操作以后,通过运算可以达到一致的状态(通过随机种子保证所有客户端随机序列一致),这样的情况下就算单位再多,他的同步量也不会随之增加。
方案优缺点:
下面我们从各种业务需求和性能上来分析一下这两个方案的优缺点,这样也有助于根据游戏的具体类型和需求来选择实现方式:
实现过程:
以服务器以固定帧数想客户端发送数据的形式,例如:
- 客户端假如有操作输入,直接发送操作cmd给服务器,服务器在下发数据给当前PVP所有玩家时,携带操作数据内容,这样即可实现操作同步;
- 服务器收集每个客户端发送过来的指令集,然后再下一帧的时候将指令集广播给所有客户端;
- 帧数为20:即服务器每秒向客户端发送20次数据;
- 客户端的工作则是通过解析协议数据,然后对表现进行调整即可。
0 0
- Unity3D——强联网实时PVP思路
- Unity3D —— 实时PVP小地图实现
- 手游实时PVP
- Unity3d局域网PVP系统
- 网络游戏——强联网游戏
- Unity3D接入移动MM支付SDK(强联网)
- U3D-实时PVP小地图实现
- Unity网络通讯的一些理解——强联网socket
- Unity3d——ios保存图片思路
- PVP
- 高并发 强实时 强一致数据库业务系统设计的一个思路
- unity3d 联网解决记录——资料收集
- 弱联网与强联网
- 实时pvp(皇室战争)网络同步研究
- 动作手游实时PVP帧同步方案(客户端)
- 动作手游实时PVP帧同步方案(客户端)
- 动作手游实时PVP技术揭密(服务器篇)
- 动作手游实时PVP帧同步方案(客户端)
- CCF-CSP认证知识要求
- 线程-连接池-数据库
- Velocity
- cocos2dx--TextureAtlas
- 长链接和短链接
- Unity3D——强联网实时PVP思路
- Linux下静态库的建立
- centOS
- java项目中数据字典的实现
- Java解析XML的原理
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 I
- 【NOIP2016提高A组模拟9.24】总结
- sql积累
- Kettle使用【插入\更新】组件非常慢