同步
来源:互联网 发布:seo如何发外链 编辑:程序博客网 时间:2024/04/29 01:02
主流的同步方案有两种:帧同步和CS同步。
正好这两天在整理这块的东西,就一并分享一下!也希望能够得到一些讨论的机会。
看到评论,补充一个观点:CS和帧同步其实各有有优缺点,并不是某一项方案一定能够取代另一项方案,当游戏类型对实时性要求很高时(比如,实时格斗、体育竞技类游戏(NBA2K)),帧同步可能就是唯一的方案了。
以下是正式答案
1 ArenaServer
2 ArenaServer[预表现层]
3 ArenaClient:ArenaInput+ArenaRender
4 FrameServer
<img data-rawwidth="618" data-rawheight="799" src="https://pic1.zhimg.com/520e56f53720fd9c308c710d014dc778_b.jpeg" class="origin_image zh-lightbox-thumb" width="618" data-original="https://pic1.zhimg.com/520e56f53720fd9c308c710d014dc778_r.jpeg">
<img data-rawwidth="1410" data-rawheight="694" src="https://pic4.zhimg.com/8a63b07968d3918e2a3c4f7586e8356b_b.jpeg" class="origin_image zh-lightbox-thumb" width="1410" data-original="https://pic4.zhimg.com/8a63b07968d3918e2a3c4f7586e8356b_r.jpeg">
=================================
正好这两天在整理这块的东西,就一并分享一下!也希望能够得到一些讨论的机会。
看到评论,补充一个观点:CS和帧同步其实各有有优缺点,并不是某一项方案一定能够取代另一项方案,当游戏类型对实时性要求很高时(比如,实时格斗、体育竞技类游戏(NBA2K)),帧同步可能就是唯一的方案了。
以下是正式答案
概念定义:
1 ArenaServer
- 战斗核心逻辑及数据所在
- 不关心表现
- 由客户端的输入驱动运行
- CS同步架构里,这个部分是在服务器的
- 帧同步架构里,这个部分是在客户端的。
2 ArenaServer[预表现层]
- 战斗的预表现层,一定在客户端
- 对于一些需要本地预表现的逻辑,如行走。需要先在这里模拟实现。
- ArenaServer的真实数据反馈到预表现层后,会修改本地数据。
- ArenaClient只知道预表现层,并不知道真正的ArenaServer的存在。
- 所以,当游戏要改变同步方案时,Client层并不需要修改。
3 ArenaClient:ArenaInput+ArenaRender
- 负责客户端输入和渲染
- 只与预表现层交互。
4 FrameServer
- 以每秒30次(假设)的频率,收集各个客户端上报上来的ClientInput。
- 组装为FrameInput,广播给各个客户端。
- 即为帧同步的服务器所有逻辑
<img data-rawwidth="618" data-rawheight="799" src="https://pic1.zhimg.com/520e56f53720fd9c308c710d014dc778_b.jpeg" class="origin_image zh-lightbox-thumb" width="618" data-original="https://pic1.zhimg.com/520e56f53720fd9c308c710d014dc778_r.jpeg">
<img data-rawwidth="1410" data-rawheight="694" src="https://pic4.zhimg.com/8a63b07968d3918e2a3c4f7586e8356b_b.jpeg" class="origin_image zh-lightbox-thumb" width="1410" data-original="https://pic4.zhimg.com/8a63b07968d3918e2a3c4f7586e8356b_r.jpeg">
=================================
0 0
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- 同步
- Android Studio 使用技巧
- 对PDF文件内容如何进行编辑修改
- VS报错 : "error CXXXX : 语法错误 : 缺少“;”(在 XXXX 的前面 )" 的各种可能性1(个人笔记)
- redis学习(一)redis+spring
- 管道、消息队列、共享内存之间的区别与联系
- 同步
- 针对小程序参数二维码,HotApp小程序统计已提供二维码精准统计服务
- 哪一款信用卡累计兑换航空里程最划算?
- 程序员面试金典: 9.5位操作5.2对一个浮点数,打印它的二进制表示
- Class-Specific Hough Forests for Object Detection随机森林(霍夫森林)来做物体(分类)检测
- 查找算法(3)、经典算法(8):从N个乱序数据中找出第K小的数
- Java中由Calendar类获取的月、天和小时的简单处理
- 产品经理成长之路(一)
- 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本