西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页安卓游戏资讯安卓游戏攻略 → 《球球大作战》50人同屏的客户端卡顿解决技巧 球球大作战卡顿怎么办

《球球大作战》50人同屏的客户端卡顿解决技巧 球球大作战卡顿怎么办

相关软件相关文章发表评论 来源:西西整理时间:2017/5/17 10:28:59字体大小:A-A+

作者:西西点击:0次评论:0次标签: 球球大作战 球球大作战卡顿 球球大作战卡顿解决办法

  • 类型:休闲益智大小:57M语言:中文 评分:10.0
  • 标签:
立即下载

球球大作战》50人同屏的客户端卡顿解决技巧,球球大作战卡顿怎么办?球球大作战一直最为一款集社交与休闲的游戏,非常受玩家的喜爱,一个房间通常可以容纳很多人,但是当人数超多50人时会出现客户端卡顿的情况,这是怎么回事?又改怎么解决呢?西西为大家带来相详细的说明。

球球大作战卡顿原因及解决方法:

卡顿一:光环、圣衣组建卡顿的处理

卡顿的话,大概就这么些,《球球》主要卡顿点就在于,因为服务器是十次每秒刷新,因为是十次,不像客户端帧数比较高,所以你发一次的话,这个数据量里面球的数量其实非常大的,就引起了一个问题。问题是发过来这一刻,要处理大量的数据,会造成卡顿。还有就是美术方面的问题,因为我们球上面挂了很多组件,这些组件尤其光环和圣衣这个东西越做越炫,会引起卡顿,而且我们一局游戏,有50多个人,而且中途还会再加入新的玩家,如果提前进这局游戏之前把所有东西都加载到,这个内存是肯定承受不了的。而且我们加载是没有立即进入游戏,这就造成一个问题,我们必须要在玩的过程中来加载美术资源,这样也会引起卡顿。

遇到一个卡顿的话,我们得找这个卡顿在哪里?然后找到的话,我们得分析是由于什么东西造成的。《球球》这块,刚才也整个介绍了一下,主要就是这两个地方。先看一下球体组件的加载,球体组件的话,我们光环跟圣衣现在已经有几百多个了,有三百多个,最坏的情况下,可能每个玩家用的光环跟圣衣都不一样,这样在一局游戏里面都显示出来的话,对游戏的内存,及其渲染,其实压力非常之大。这个只是一部分,主要是光环。现在玩家审美要求越来越高,我们做的东西也越来越炫,这样造成非常多的卡顿,接下来给大家介绍一下我们是怎么优化这块。美术这块优化,这次没怎么讲,因为网上美术这块怎么优化有很多,我主要讲是怎么加载的。

我们先看一下组件的构成,一个球本体是一个球,这个球其实是一个2D的一个慢视平面的,然后名字,名字这块我们是用自己做的一个,等于是自己写,自己写的好处就是效力比较高,可以走Unity自己的那个合P(音)流程,然后那个国旗也是一个慢视,不是用UI做的。还有光环、拖尾圣衣,还有箭头,这些加载压力都非常大的。我们是怎么优化这块,优化主要用到分帧处理。

分帧处理大家应该多少都了解到就是把一堆大量的计算全部拆开来,分散到到各个帧里面,这样的话帧数就很平稳,不会出现一个大的CPU曲线的波峰。每个球依次进行加载,一个球加载完了,再加载另一个球,这样的好处,有可能球2还没有加载完,就已经被吃掉了,这样有一个好处,我们就减少了大量的计算,大量的加载。而且玩家看的话也是比较流畅,不会出现突然画面不动,然后又开始动了的那种情况。

卡顿二:大视野大量球的刷新卡顿

然后优化后,我们发现帧数是上来了,但是还是有很大的波动,这块主要原因就是大视野大量球的刷新卡顿。因为我们的游戏视野是不固定的,不像其他游戏视野一直固定的,在同一屏里面看的东西基本不会高的太多,我们游戏就不同了。有可能一个屏幕里面,可能看到成百上千个元素还有物体。而且玩家在玩的过程中,如果玩得好的话,视野是来回变动的,服务器发数据的话,因为只发我们看到的数据,所以我们玩家在来回切换的情况下,服务器发的数据也是很多的,就是大量的球跟添加删除,这样的一个操作对客户端的压力也非常大,所以客户端的话,就需要做一些计算,一些处理,这里就很考验一个场景管理的框架。

策略:双缓冲列表和分帧添加与删除

然后这块我们主要是有两个策略,就是双缓冲列表还有分帧添加和删除。分帧这块在组件加载那块已经讲过了,逻辑差不多。双缓冲列表简单来说,就是两种列表。第一个就是添加列表,第二个就是删除列表,有了这个列表,在实际加载球的过程中,我们可以有列表作为缓冲。这个好处就是有了缓冲,如果有重复的球,我们就不需要重复地进行加载,所以在这个列表里面进行合并或者去除。

比如说当一个新加载球要过来的时候,我们如果判断这个,或者判断这个场景里面有这个球,或者这个列表里面有这个球,我们就可以不用处理。如果一个删除的球进来的话,我们判断这个删除列表里面已经有了这个球,我们也可以不用处理。或者就算没有,可以看到如果添加列表里面有,我们可以把添加列表里面要删除的球去掉,这样我们就能省掉很大量的工作。这块的话,又引出了一个问题,因为列表是用List(音),如果要找这个列表很长,可能有几百个元素,用List的话,因为要一个个辨别,效率非常低,我们就把List和字典做了一个结合,既查找得快,也能删除得快。

分帧添加删除这块,跟组件加载不一样的地方每一帧加载或者删除的元素是动态变,可以根据手机帧率,如果手机帧率特别高,可以每帧处理的元素就很多,如果帧率低了,我们就可以动态地减少,这样可以控制手机帧率来回波动的情况。

看一下优化的效果,大概是这样的效果,优化后整个波动就比较平缓,大家可以看到,上面有一些小波峰,就是一些处理的结果,但是很难出现那种大的波动,这是一个理想的情况。其实玩的过程中,还是会出现波动情况。因为美术资源那块有一个东西如果非常大的话,也会造成一定的影响。这块美术资源后期我们会做一个低端机型的美术资源包来替换,这样可以保证在低端机上能流畅玩下去。

球球大作战游戏性的体现:

一,《球球》这个游戏主要是球跟球之间的关系,它们的关系规则简单,可以用公式来概括。用的最多就是一些物理的公式,这些比较简单,我们就很容易做出来。

二,快速游戏,这个游戏中途可以随意加入退出,而且我们的进入游戏是没有载入时间,直接点击按纽,就直接进去了。

三,实时观战,玩家可以观战其他玩家,在这种情况下,客户端是没有任何操作的,全靠服务器把数据发过来。但是这种特性,我们也做了一些选择,最终的方案是状态同步的一个机制模式。这个模式有一些好处,就是开发效率比较高,这个开发效率是相对而言,可能对别的游戏状态同步可能比较麻烦,但是对我们游戏这种机制,其实开发效率非常高的。然后客户端的计算量大大降低,方便性能优化,就是客户端的一些球跟球之间的逻辑,因为用公式来概括的,而且球跟球之间的计算,因为球很多,所以计算量非常大,这块客户端是不需要计算的,直接通过服务器计算,然后把结果发过来。因为是在服务器上算,这块反外挂过来也比较简单。

四,断线重连,因为计算都在服务器,所有信息都在服务器,一旦断线,就可以立马连上去,恢复当前的状态。传输协议,我们现在用的是TCP,TCP这块,其实我们现在用的是,大部分情况下还好,主要在延迟情况下,TCP比UDP要更差一点,之后的话会逐步替代成UDP,或者是TCP和UDP共存的情况。

    类似球球大作战的游戏
    (300)类似球球大作战的游戏
    类似球球大作战的游戏是一种非常好玩的游戏类型,官方称呼为IO类游戏。西西手游下载专区为大家整理了一些目前市场上的IO游戏,类似球球大作战的游戏,大家可以随意下载体验,同时大家也可以在西西搜索相关游戏攻略哦。类似球球大作战的游戏特点一、网络游戏。二、多人即时对战。三、简单的成长系统。四、即开即玩。五、战力即束缚。六、小地图。...更多>>
    球球大作战
    (58)球球大作战
    西西球球大作战专区为大家带来了:球球大作战4.0破解版下载,球球大作战4.0刷棒棒糖辅助下载,还有球球大作战ios版,球球大作战4.0电脑版等等,快来西西球球大作战专区下载体验吧!球球大作战4.0游戏特色:1.“戳戳戳”的懒癌操作厕所里“戳戳戳”,电梯里“戳戳戳”,被窝里“戳戳戳”,是的,即使你是一枚懒癌男(女),也只需要动用一根食指慢慢悠闲的“戳戳戳”,就可以控制球球的路径进行游戏了呢!2.“快乐有趣”的策略战斗“...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)