MOBA类游戏是如何解决网络延迟同步的

MOBA类游戏是如何解决网络延迟同步的,第1张

你可以试试只开王者荣耀这一个游戏,如果你是在家庭wifi情况下玩儿的游戏,那就不存在网络有问题,多半都是手机运行内存不足

最近一直玩王者荣耀,无处不团,你也在玩,

你永远无法猜到你的对手长什么样!

因为TA可能是与你年龄相仿的帅哥或美女,可能是与你朝夕相处的好友或爱人,

也可能是现场活动邀你入场的COSER,更可能会是一只调皮捣乱的汪星人……

在实时性方面,tcp协议的网络抗性欠佳,对MOBA类或其他实时性要求较高的游戏,一般是不建议使用tcp作为协议载体。事实上,王者荣耀的PVP通信协议也确实是基于udp封装的;同样,最近大家喜闻乐见的《绝地求生》,也是基于udp的。

不同类型的游戏因为玩法、竞技程度不一样,采用的同步算法不一样,对网络延迟的要求也不一样。例如,MOBA类游戏多使用帧同步为主要同步算法,竞技性也较高,无论从流畅性,还是从公平性要求来说,对响应延迟的要求都最高,根据业内经验,当客户端与服务器的网络延迟超过150ms时,会开始出现卡顿,当延迟超过250ms时,会对玩家操作造成较大影响,游戏无法公平进行。类似地,“吃鸡”游戏(如《绝地求生》)玩法对玩家坐标、动作的同步要求极高,延迟稍大导致的数据不一致对体验都会造成较大影响,其实时性要求接近MOBA类游戏。而对于传统mmorpg来说,多采用状态同步算法,以属性养成和装备获取为关注点,也有一定竞技性,出于对游戏流畅性的要求,对延迟也有一定要求,同步算法的优化程度不一样,这一要求也不一样,一般情况下为保证游戏正常进行,需要响应延迟保持在300ms以下。相比之下,对于炉石传说、斗地主、梦幻西游等回合制游戏来说,同时只有一个玩家在操作双方数据,无数据竞争,且时间粒度较粗,甚至可通过特效掩盖延迟,因此对网络延迟的要求不高,即便延迟达到500ms~1000ms,游戏也能正常进行。

不同传输层协议在可靠性、流量控制等方面都有差别,而这些技术细节会对延迟造成影响。tcp追求的是完全可靠性和顺序性,丢包后会持续重传直至该包被确认,否则后续包也不会被上层接收,且重传采用指数避让策略,决定重传时间间隔的RTO(retransmission timeout)不可控制,linux内核实现中最低值为200ms,这样的机制会导致丢包率短暂升高的情况下应用层消息响应延迟急剧提高,并不适合实时性高、网络环境复杂的游戏。

除了这些以外,这里有一位行业资深架构师写了关于这个问题的分析《关于MOBA游戏的tcp协议—实测数据》,推荐给你可以参考下。

MOBA是电子游戏的一种类型。MOBA是Multiplayer Online Battle Arena Games的缩写,意思为多人在线战术竞技场游戏。这类游戏的玩法是将玩家分成两个阵营,两队之间通过随机分散的游戏地图中进行竞争对抗的关系,最终以团队胜利为目标的游戏。

MOBA游戏的乐趣:

MOBA游戏的乐趣以及最重要的内容就是团队合作。玩家不止要操作自己喜欢的游戏角色,还要熟悉角色的技能和装备,最大的乐趣是团队之间的合作。

所以才有了很多娱乐性的比赛,很多比赛中,个人玩家再怎么出色,如果团队中没有其它的队友一起默契配合,哪么是很大的可能性输掉比赛。

MOBA游戏中也有个人玩家的单挑玩法,但是对于职业选手来说,除了个人的操作技巧和意识,及对英雄的技巧伤害和装备的熟悉,更重要还是团队合作。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/375601.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存