网游消息同步

游戏中的通信协议和传统的协议没有太多不一样的地方,只不过游戏会有一些习惯做法。
按照游戏需求来设计协议就好了。如果没经验不清楚具体场景,以下做个抛砖引玉:

游戏登录

初始化
客户端通常会在这一步先把一些环境参数传递给服务端,如用户ID、Token(接入第三方运营商的可能会有)、时间截等。
登陆
向游戏服务器发起登陆请求,用户名,Token, 此时可能会附带要登录的区/服ID.
游戏副本
请求进入副本
客户端携带需要进入的副本ID,向服务端请求进入。服务端检查玩家是否符合进入条件,符合的情况下会为副本分配内存,之后可以直接走一般游戏场景切换协议。
副本结束通知
会根据不同类型的游戏副本设计,有些是玩家主动退出的,有些是因为副本的失败条件服务端主动强制退出的。
玩家行为同步
位置同步
如果是那种允许鼠标指定目的地同时也允许方向键操作的游戏,可考虑设计两种同步协议。

鼠标指定移动目标并且由客户端寻路的情况下,由服务器同步给周围的其它玩家。其它玩家的客户端执行寻路操作;如果是服务端寻路则同步移动的路径给客户端。

使用方向键/手柄的情况下则在不同的时机发送移动请求。如从待机到开始移动时、改变移动方向时、释放移动按键时。这种情况下如果服务端没有地形信息,并且正在移动的玩家遇到网络延迟,发出了开始移动的请求却没成功发出结束移动的请求,就会容易出现跑到地图外面的情况。改善的方法是在关键帧进行同步请求。
行为同步
玩家执行某个可视动作的时候向周围的人同步你的行为。如发起某个技能时,向服务端请求你要发起的技能ID,服务端检查魔法值、冷却时间等前置条件,成功后同步给周围所有人,不成功则返回错误码。
玩家视野
受限于负载因素,游戏中通常会划分一个逻辑上的视野。比如说角色在移动的情况下,只有以它为中心的N*N个单位的区域内的玩家才可以收到同步信息。而此范围外的玩家则不会收到协议(不同分辨率下这个范围的大小可能不同)。

帧间同步模式: 帧锁定同步算法
玩法规避模式:网络游戏同步法则
预测插值模式:影子跟随算法
提高传输速度: 快速可靠传输协议

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值