网络游戏同步(帧同步详细学习...demo未完成)


因为网络同步这块只是学了点理论基础,面试时候被问的很细,才发现自己这方面只是了解了皮毛,所以这里单独开个帖详细学一下,然后做一个Demo来巩固一下。

理论学习:是知乎这篇文章,主要是这篇文章举的例子很容易理解,大家可以看一下。


  • 帧同步怎么理解?
    根据上面知乎举例,可以这么理解,老师每天晚上来收集每个同学的作业,收集完成后,分发给所有同学,让同学自己去批阅作业,如果是老师自己批阅打分就是状态同步,所有同学打分机制都是一样的,这样才能达到相同的结果。
    严格帧同步就是老师得把所有同学作业都收上来才行,否则大家都不能批作业。

帧同步与状态同步差异

帧同步

  • 客户端发送指令,并接收指令,游戏逻辑在客户端。服务端只负责转发,不存在具体逻辑和状态信息,客户端发外挂能力弱,流量带宽小(只发送指令),对于已存在单机游戏容易直接开发,对客户端开发人员要求强,误差容易积累
    状态同步
  • 客户端只上传指令,接收所有客户端的状态信息,逻辑全在服务端,只负责展示功能,客户端反外挂强(逻辑都在服务端),肯定是同步的,然后的占用带宽很大(逻辑全在服务端,服务端压力会很大,并且状态信息很多),单机游戏转成状态同步大部分代码要移植到服务端,

乐观帧
  • 传统帧同步,服务端要收集到所有客户端指令才会分发,延迟好的玩家必须等待延迟差的玩家。随意有一些优化手段(比如超时机制,如果超时那么服务端就不等这个客户端了,直接分发给客户端,但是依然存在超时这个时间)。
  • 什么事乐观帧:服务器控制逻辑帧率(控制逻辑帧率+1,由服务器推进游戏的进行),2个帧间隔客户端只要有操作指令就会上传给服务器,服务器收到这一帧所有的指令进行分发,这有几个好处:1、客户端没操作就不上传、客户端不用控制帧率、不需要等延迟差的玩家

后面有空做个demo在这占个位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值