【球球战租号】绝版皮肤随便玩——最专业的球球租号平台近日,小编在网上看到这样一条消息,一夜爆红的李现粉丝活动被取消了!因为没有粉丝?好了,废话不多说,今天就给大家介绍一下《Battle of the Balls》的投掷策略。
福利手游《球球大战》中的投掷武器重要与否,为什么投掷武器被大家视为战略武器?今天,小编就为大家带来《Battle of the Balls》投掷武器攻略。
1576039083174566.jpg
在单人模式中,我们遇到的每一个球都是我们的敌人。这时候,如果对方球的大小比我们大,我们就得选择先跑,因为球大的球员可以通过分身吃掉我们。球。屏幕右下角类似闪电的符号是吐痰键,另一个是克隆键。当然,您也可以通过与另一个球合作来玩这个游戏。如果你想让别人在比赛中吐一个球,那就意味着你想合作。通常当我们的体积达到一个齿轮的大小时,我们可以选择爆炸来增加我们的重量。
近日,小编在网上看到这样的消息,部分地区HIV耐药性激增。婴儿具有高水平的耐药性。好了,废话不多说,今天小编就为大家介绍一下《Battle of the Balls》的攻略。
福利手游《球球大战》拥有五人组队模式。两者结合后,剩下的只能打野。打野怎么玩?今天小编就为大家带来一款破解手游。“球战”的丛林策略。
1576039720821505.jpg
很多玩家会认为大神是合作的,不被人喜欢的不被操控的会被逼打野打野。事实上,他们认为球赛中的打野是无用的。当我们不是第一个时,这个打野我们需要告诉我们第一个位置,哪一边是安全的发展区。前期基本上和所有的对战游戏一样,都是需要开发的,过了开发期,就是团战开始的时候。你会遇到形形色色的对手,有的看到你就跑,有的在你身边大显身手。
总之,我们试图找到那些可以放心吃掉的对手。分球也有技巧。你不能随意分球。你通常可以选择四分前移然后近身。也可以是百分百的球,我们最多可以分16个分身。玩法有很多种,当然我们需要多练习。当我们不是第一个时,这个时候我们需要注意。如果我们不用偷偷发展,就一定要时刻盯着第一个位置,免得被人发现,然后分身会吃掉我们。.
1576039726506012.jpg
5月10日至5月12日,由Unity主办的Unite Shanghai 2019在上海国际会议中心举行。作为业界顶级的开发者大会,Unity邀请了来自行业各个领域的技术专家亲临现场,为开发者分享最新消息。技术和生产经验。
会上,巨人网络《Battle of the Balls》主要客户端程国一和高级技术工程师徐宇峰就游戏优化过程中遇到的问题与现场开发者进行了探讨《球之战》优化,解决方案展开深度技术分享。
本次分享主要分为三个部分:Unity2017版本选择及基础优化、使用新功能优化游戏性能、RenderTexture实战技巧。它包含了《Battle of the Balls》优化过程中的多种解决方案。作者展示了一种新颖的渲染性能优化思想。
以下是手游组织的演讲内容:
大家好,感谢大家收听我们的分享。我是王国一,负责《球之战》的客户。我曾经从观众的角度参加会议。这次作为主讲嘉宾来参加,感觉过程很奇怪。
【球球战租】绝版皮肤随便玩——最专业的球球租赁平台
简单介绍一下Ball Ball游戏,《Ball Ball Battle》是一款多人休闲竞技游戏,主要强调多人合作玩法。该游戏于2015年发布,当时玩该游戏的许多孩子现在都在读初中和高中。就像超级马里奥和魂斗罗成为我们这一代人的记忆一样,希望秋秋能成为他们长久的伴侣。
下面进入本次分享的第一部分,包括我们在Unity2017升级过程中遇到的困难和解决方法。在此之前,先介绍一下我为什么选择Unity2017。
1.Unity2017的版本选择和基础优化
对于Unity2017引擎版本的选择和《Battle of the Balls》游戏性能的提升,我们主要考虑8个方面。
1.ASTC 图像压缩格式:我们已尝试在所有平台上将此格式用于纹理。后来经过大量测试,我们发现不支持这种格式的安卓机型占比很高。在最终的正式版本中,iOS 上只使用了 ASTC 格式。
需要注意的是,iOS在iPhone 5s及以下机型上不支持这种纹理压缩格式,纹理解压后会变成RGBA格式。
2.Bundle LZ4压缩:经过测试Unity2017的Bundle LZ4压缩方式,解压速度比之前的lzma方式快很多,内存消耗也更合理。
3.Bundle 文件支持异步加载和读取资源。
4.运行时设置屏幕分辨率:该方法经过测试可以有效提高帧率。在Unity4.7版本上,设置屏幕分辨率会导致黑屏闪一次,Unity 2017版本解决了这个问题。我们可以通过动态调整分辨率来达到提高帧率的目的。
5.Camera RT调整分辨率:在Unity2017上也是一种提高帧率的方法。
6.Android 支持 IL2CPP。
7.支持 GPU 实例。
8.动画系统可以缩放指定区域,方便动画制作。
但在引擎升级过程中,我们也遇到了一些棘手的问题。例如,对于大多数性能在中端以下的手机型号,渲染相同内容的帧率比旧引擎低10帧左右。
【球球战租】绝版皮肤随便玩——最专业的球球租赁平台
为此,我们开发了一个只有核心玩法的版本。这个版本剥离了游戏之外的系统,只有核心玩法。目的是加快测试过程并减少其他功能的影响。
最后,我们发现问题出在一些设置的选择上。一种是Android上的Blit Type,在Unity2017.2.x版本之后开启。关闭选项后发现帧率确实提升了很多,整体提升了5到6帧。
另一个是Camera上的HDR,同时也去掉了MSAA。由于游戏中没有使用实时光照,因此移除了光照中的实时光照和混合光照。修改后的帧率与旧引擎版本的帧率基本一致。
除了帧率降低之外,引擎升级还经历了很多资源显示异常、资源丢失、错位等问题。
在资源升级过程中,部分资源可能会出现显示问题。在某些情况下,fbx文件中的模型文件在转换前是用汉字命名的,转换后引用会丢失。这是mate文件中的Unicode转换问题,需要与旧的meta文件进行比对来替换名称。
此外,转换后,粒子缩放默认变为层次模式。皮肤缩放后,出现显示问题。解决方法是切换到Local模式,配合缩放脚本,达到和之前一样的效果。
最后是 Asset Bundle 打包时间的变化,以及 Andriod 和 iOS 打包流程的变化。
我们对引擎升级的考虑之一是优化打包时间。秋秋艺术项目现在6G多,用老引擎打包需要很长时间,项目启动也很慢。
v
升级Unity2017后,打包速度和项目打开速度都有了一定的提升。同时,我们将一些不经常更换的旧资源拆解到另一个项目中,保证两个项目的引用统一,guid一致。这样每次只打包有差异的新资源,大大提高了打包时间。
在 Android Studio 中打包时,如果项目中包含大量文件,会导致打包失败。问题出现在缓存大小,默认为1024M。您可以根据内存进行适当的调整。
导出 XCode 项目时会清除 Framework Search Paths,导出时需要使用 PBXProject.SetBuildProperty 方法添加缺少的库文件。
当新发动机进行外部测试时。我们希望让玩家尽可能多地比较客户端的两个引擎版本。我们将新引擎打包成一个预览版,这个预览版的账号与官方服务器共享。让玩家在同一部手机上体验两个版本,比较差异,提交反馈。
在开发过程中,我们一直有两个版本,一个是原始引擎工程版,另一个是Unity2017的引擎工程版。内容和功能在原引擎版本上进行开发,然后合并到Unity2017引擎版本并同步更新。
为了不影响在线玩家,这两个版本之间会有一个兼容期,差不多两个月。
2.使用新引擎功能优化游戏性能
第二部分介绍了现有的优化。前面我们谈到了新引擎的升级。升级的目的是利用新引擎带来的新特性。过去,我们的许多优化都是从技术角度处理问题。
例如,我们认为通过将 TCP 替换为 UDP 可以缓解网络问题,通过减少 DrawCall 可以缓解渲染卡顿。最后我们发现优化是多方面的,就是站在玩家的角度去提升体验。
有一次参加《球球大战》的会议,有玩家说连接自己的WIFI延迟很高,于是上网查了一下原因。帖子底部有人说,关闭wifi路由器的UDP防火墙就可以了。他试了一下,发现好多了。
这个事件反映了一个问题。之前我们优化的重点是我们自己的机房网络和游戏网络的底层,但实际上问题更多的是连接玩家手机最后一公里的网络环境。
在艺术标准生产方面,我们以前是按照统一的标准生产的,但现在的标准是由多个档位决定的。同时,对应游戏中的数值,皮肤道具也分为一些普通道具,比较酷的道具。我们对齿轮进行了精细定位,并指定了每个齿轮的皮肤指标,使资源划分更加合理。
球的 LOD 处理没有像模型资源高低的 3D 场景的 LOD 切换那样实现。
小球使用皮肤资源占屏幕像素的比例来在高质量和低质量资源之间切换。我们对主角自己的皮肤和其他玩家的皮肤的LOD比率使用了两组标准。LOD低分配资源是预先渲染的纹理。优化后,当比例较小时,两者几乎没有区别。
对于机型的划分,早期的尝试是基于手机CPU机型的分类。在后来的测试中发现了一些缺点。比如一些手机CPU性能处于中档,但同时屏幕分辨率也很高,整体渲染性能会有所下降。
优化的方案是根据游戏中玩家每局游戏的FPS曲线值对手机性能进行分类,更符合游戏真实的卡顿性能。这个方案经过测试比较准确。
我们会发现身边的同事都在不断的换新的iPhone,或者高端的安卓手机,会习惯认为玩家手机的性能越来越高。事实上,通过游戏数据发现,千元机占我们用户的60%以上,这也让我们可以把优化的重点放在这些手机机型上。
对于游戏的网络监控,每场比赛结束后,我们都会上报lag log和network log,统计每场比赛的lag情况。日志包括 ping 值的变化、玩家网络环境测试和游戏内延迟信息。接下来,将对这些数据进行整理和检查,以发现更多影响玩家的网络问题。
3.用RenderTexture解决实战中的性能问题
【球球战租】绝版皮肤随便玩——最专业的球球租赁平台
大家好,我是徐宇峰,负责《球球大战》的性能优化。
为了吸引如此庞大的玩家群体,我们为玩家提供了更加炫酷炫酷的皮肤。这些精美的皮肤让《Battle of the Balls》的游戏画面更加丰富多彩,但随着皮肤变得更加精致,性能问题开始凸显。
我们的皮肤从正面看起来很简单,但从侧面看,皮肤是由精美的模型和许多特殊效果组成的。皮肤材质大部分是半透明的,大量半透明材质无法批量渲染,导致单套皮肤DrawCall达到82个,1.10000个面,40个骨骼。
《球球大战》的核心技能是分身吃球,当玩家分身时,DrawCall暴涨。当玩家在游戏中最多拥有16个头像时,DrawCalls超过820个,面数达到17.70,000。
在实际游戏中,多玩家多皮肤后,DrawCall往往可以轻松过千。这是我们内部的极端测试视频。可以看到DrawCall最小4、500,最大超过2500。如此高的DrawCall导致游戏帧率急剧下降,卡顿严重。作为一款竞技游戏,性能和体验至关重要。
我们的团队采用多种优化方法:
模型纹理合并:模型和纹理尽可能的合并在一起,使用Unity的动态批量渲染减少DrawCall;
减少半透明材质:半透明会带来融合运算,二来无法批量渲染重叠的半透明物体,导致DrawCall增加;
减少粒子系统:粒子会增加CPU运算,也会增加DrawCall,我们控制每组皮肤的粒子数在40以内;
LOD系统:如上所述;
降低分辨率:皮肤纹理采用512分辨率,【球球大战租界】绝版皮肤随便玩——部分纹理在低端机上降低到256k。
看看下面的优化对比:
左右是一个LOD系统的效果对比,左边是高画质的高性能模型,右边是画质流畅的低端模型。对比左右,可以看到右边的皮肤特效和动画较少,纹理分辨率也相应降低。
你可能会觉得右边的皮肤有点模糊,因为目前是大屏显示器,而在实际主流的 6 英寸屏幕手机上,模糊不会很明显。通过以上优化,游戏性能提升约52%。
不过画质也会受到影响,尤其是在中低端机器上,很容易引起玩家的不满。美术团队也希望所有的模型和图片都尽可能的完美,DrawCalls太少极大地限制了美术的高水平。水平播放。
优化的难点是皮肤克隆后DrawCall飙升的问题。我们想过用RenderTexture来降低DrawCall的峰值,但是皮肤太半透明了。
在渲染管线中,与透明度相关的处理在管线的后期进行。由于不同的物体是按顺序渲染的,所以对于透明度的处理方式就是混合,其实就是把shader的输出颜色和这个像素位置的已有颜色进行合并的过程。
图片上的混合公式是Unity中最标准的混合模式 Blend SrcAlpha OneMinusSrcAlpha 假设Camera背景的颜色设置为全黑(0001)或全白(分别为1111))用于渲染。
分别设置渲染颜色为Cblack和Cwhite,得到公式1和2。公式中,蓝色为已知数,紫色为未知数。这两个公式可以计算 2 位未知数。具体代码请参考右下角的链接。
下面就来看看具体的制作过程吧。
我们用单个相机将原始资源渲染到RenderTexture,相机每帧切换黑白背景,形成连续的帧序列。这样做的原因是单摄像头可以节省更多的DrawCall,但是如果动画速度太快,就必须使用双摄像头来保证质量。
RT被GPU算法消除,输出到多个RenderTexture。这里我们使用512分辨率进行RT,一共40张图片,格式为ARGBHalf,真机占用内存约20MB。
目前市面上的主流手机内存大多在2GB以上,所以内存是非常充足的,但是具体使用的分辨率和RT数量需要根据不同的机型适当调整。
多帧透明RenderTexture组成一个序列帧代网刷球球大作战,用Plane切换RT制作一个序列帧动画。这里的序列帧会循环渲染,从RT1到40,然后再回到第一帧。Plane 读取 RT 时,也是循环读取的。最后将序列帧动画放入场景中,与半透明背景、半透明皮肤和UI融合。
下面我们来看看原始资源和RT资源的实时效果对比。
这是原始材质和RenderTexture的实时效果对比。原始材质叠加了十余层特效,而RenderTexture只有一个表面。
下面我们来看看不同资源的效果对比。新技术必须先保证艺术品的质量,才能投入使用。
美术质量得到保证之后,我们再来看看DrawCall优化前后的对比。【Ballball Battle Rent】绝版皮肤随便玩——最专业的球球租赁平台。当克隆数继续增加时,DrawCall 线性增长。
可以看右上角的Batches数量,从一开始的63个暴涨到900多个。优化模式下,头像的增加带来了DrawCall个位数的增长。同时我们可以看到,在RT模式下,使用多个RenderTexture,每一个克隆的动画帧是交错的,动画也不完全相同。
再来看看真机数据对比,测试平台是一台普通的千元机。先看第一张图。克隆数量从 1 到 16 不等。在正常模式下,DrawCall 从 63 猛增到 917,翻了一番 14.5 倍。克隆数量每增加一倍,DrawCall 就会发生翻天覆地的变化。
RT模式只增加了19,从64增加到83。后面看CPU消耗图,在RT模式下,CPU消耗非常稳定,而普通模式的消耗在最大克隆时翻了一番。
让我们看一下FPS和内存消耗。普通模式下FPS的帧率已经降低到25帧,除了UI等逻辑消耗之外,还造成了卡顿。
RT模式的帧率非常稳定。内存方面,由于RT使用了40个16位512纹理,内存多出20mb左右,是RT模式唯一的消耗点。在实际应用中,我们会根据机器的内存容量来控制RT的数量和分辨率。
在“Battle of the Balls”中,同一屏幕上有数千个物体。每一帧中数千个物体的位置、大小、动画和网络数据都伴随着大量的逻辑运算。主要逻辑如下:
1.使用插值函数,使物体的运动更平滑;
2.球员吃完球后,体重会增加。根据重量计算球的大小和前后位置。尺寸越大,物体离相机越近;
3.AI状态机,玩家会根据游戏状态播放一个逗弄动画,比如两个玩家靠得很近,吃其他玩家时播放炫耀动画;
4.摄像头视野计算,所有玩家的球个数和大小都会随着摄像头位置和FOV的调整而变化,每个分身必须在摄像头的视野范围内,最大的分身应该在尽可能位于屏幕中心;
其他包括网络数据解压、解密、背景雾、UI计算等,上述实时计算会给CPU带来巨大压力。
我们使用Unity2018的ECS系统对所有逻辑进行分类,将纯逻辑操作做成PureECS,其他部分做成HybridECS,上千个对象的逻辑操作尽量分配到多个核上。这大大提升了游戏性能,更快更复杂的操作让物体的移动和旋转更加流畅细腻,提升了游戏的用户体验。
上述优化方法部分处于“Ball and Ball”的试用阶段。我们一直在不断尝试、开拓、创新,运用各种优化措施,让《球与球》拥有更好的用户体验,持续发光发热。新的活力。
我的演讲到此结束,谢谢大家!
现场采访内容
1.io游戏的画面处理,开发者需要注意哪些细节?
王国一:首先,io游戏属于多人竞技类。这种操作经验非常重要。例如,球被限制在 60 帧内运行。如果游戏限制在 50 帧,虽然只少了 10 帧,但实际手感上的差别会很明显。
此外,如何准确地表示字符的大小也是一个容易被忽视的点。比如在一些3D游戏中,角色脚底会出现一圈表现范围,因为仅仅依靠角色模型很难表达影响范围。而现在球的皮肤也越来越亮眼了,它不仅仅是一个简单的球体,模型承载了很多东西。
所以在制作过程中,包括美术和策划,都会强调【球球战租】的绝版皮肤可以随便玩——最专业的球租平台是真实球体的范围,以及由于特效和模型无法判断玩家。. 我们将在球体后面添加一个底或一个圆等来准确表示球体的大小。
2.如何在控制好包大小的前提下提升游戏的画质和内容?
王国一:在游戏资源中,占据体积最多的就是贴图了。秋秋的经营积累了大量的皮肤资源。我们根据目标平台区分纹理的压缩格式。例如,Android 平台将使用 ETC 和 ETC2,iOS 平台使用 ASTC 和 PVRTC。
还有纹理大小的控制,因为最终的游戏运行平台是手机。制作贴图的尺寸标准应该受限于手机的分辨率。另外,在打包资源时,要对依赖的共享资源进行分离处理,减少冗余资源。
例如,秋秋的推广包包含的基础资源不足50MB,玩家通过新手阶段后会下载更多资源。
3.优化过程中最令人印象深刻的部分是什么?
许宇峰:作为一款酷炫的竞技游戏,《球战》的核心是流畅的手感。优化中最让人印象深刻的是保证所有机型的帧率都在30以上,而且帧率要稳定没有波动。. 为了满足这个要求,我们需要优化从艺术到技术,从GPU到CPU的一切。
为此,我们将游戏的整体优化分解为多个部分,如游戏逻辑、网络、资源加载、io、渲染等,组织优化团队负责各个部分,利用各种工具寻找每个部分的优化点,可以及时解决,剩下的点优化团队和Unity技术专家一起来讨论解决方案。团队齐心协力优化各个部分,才能达到整体的优化效果。
4.玩家建议对整体游戏优化有何帮助?
王国一:早期与玩家交流最多的渠道是“球球大战”贴吧,还有玩家的QQ群。玩家通过这些渠道直接向研发报告问题。近两年,球球俱乐部在全国范围内组织了玩家见面会,与玩家探讨玩球球的新功能、新玩法,倾听玩家的想法和需求。
会上与玩家互动的方式也很多,玩家也很喜欢这种形式。许多玩家提前2小时到达现场。这种方法也能让开发者快速准确地了解玩家的问题,快速有效地提升体验和解决问题。
5.传统的优化方法是否还适用于未来的行业发展?
徐玉峰:传统优化是游戏优化的基础,是游戏前辈的宝贵经验总结出来的经典优化方法。事实上,大多数优化都使用传统方法。
然而,随着游戏质量的不断提升,提升游戏性能的难度也越来越大。当传统优化无法通过创新玩法与精美皮肤的结合完美解决时,我们需要在传统的基础上创新优化方案,让新玩法与高品质美术相结合。可以流畅运行。
6.您如何看待游戏对美术品质日益增长的需求?
许宇峰:目前,游戏的美术品质在不断提升。虽然新手机的性能也在不断提升,【球球战租】绝版皮肤随便玩——最专业的球球租赁平台,却远远落后于游戏画质提升的速度。. 游戏画质的提升,除了带来更好的视觉体验和操作感外,更重要的是游戏画面、场景、人物细节的丰富和完善,可以提高玩家对游戏品质的认知度。第一印象是画面是否精美。
在美术质量不断提升的同时,渲染的压力也越来越大。因此,为了保证游戏的流畅性,渲染优化变得越来越重要,Unity引擎也在不断的优化渲染管线代网刷球球大作战,让渲染性能越来越高。
以上就是小编为大家带来的公益手游《球之战》中的一些打野攻略。下一期,小编将为大家详细介绍《球球大战》的攻略。
只要吃了一个刺球,就相当于吃了一个大小的刺球。但是,我们需要注意一件事。与其他吃刺球的方法不同,吃刺球的时候,不仅比刺球大。当你触摸和吃它时,你会被刺球吹成很多小球。如果身边有敌人,最后的果实很容易被吞掉,但是被炸成小球后,玩家自身的移动速度也快了很多,可以发展的更快。
1576039090368659.jpg
以上就是小编为大家带来的公益手游《Battle of the Balls》中单人开发的部分攻略。小编将为大家详细介绍《球之战》的攻略。