状态同步 和 帧同步

有幸参与一个rpg格斗类型的游戏,在联网匹配成功的情况下,玩家可以进行1v1或者2v2对战。
在战斗中玩家之间的同步方式使用到的就是帧同步。这里说的帧同步的意思就是玩家的每一次操作,例如移动,攻击,防御等。

帧同步

在帧同步中的服务器更多的是扮演一个消息转发的中间者的身份。客户端发送游戏动作到服务器,服务器每隔一段时间(30ms)广播转发所有客户端的动作。
在这里插入图片描述
网络延迟的情况下,如果CSA的帧数据延迟到达服务器,服务器会在第 N+1 帧把数据广播给每一个客户端,那么CSB收到的CSA的数据就不是实时的了,这个时候在CSB看来CSA的表现很奇怪,例如在那里乱跑,对着空气放技能等。针对这种情况,客户端可以提前预测每个玩家可能的操作,等到服务器等数据下发下来之后再做对比,具体操作可以参考rollback方案。

状态同步

状态同步主要是指客户端发送游戏动作到服务器,服务器收到后对游戏行为结果进行计算,然后通过广播下发游戏各种状态到客户端,客户端收到状态信息后进行UI层展示或处理。
这种方式类似于核心逻辑计算都在服务器端进行,客户端主要负责上传操作动作等请求数据,一般回合制游戏主要采用这种方式
在这里插入图片描述
图片和部分内容参考:https://blog.csdn.net/SilenceCoder/article/details/86234480

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值