看了Unite Shanghai 2019的交流,记录一下别人的优化方法
观看地址:https://connect.unity.com/p/qiu-qiu-da-zuo-zhan-you-hua-zhi-lu
虽然我并没有玩过《球球大作战》这款游戏,不清楚它是怎样的一个玩法和画面的表现,但是我感觉一些优化的方法应该大部分还是通用的。
这次演讲主要说的就是这款游戏从Unity4.7版本升级到Untiy2017版本的过程中遇到的哪些问题,使用了怎样的技术来解决,提高游戏的帧数。
主要是使用到上图所写的这些技术
1.针对中低端手机帧数低的问题使用了:
将核心玩法剥离出来,单独测试这块游戏运行时的表现效果。采用脚本录制,循环播放,测试效果。
安卓选项Blit Type选项设置为Never。( Draw directly to the screen, render offscreen and blit to the backbuffer or automatically choose the most appropriate option.)
关闭相机中的HDR和MSAA选择
取消勾选实时光照
2.资源异常问题
旧美术文件使用中文命名,升级后可能会出错,meta引用丢失。他们采用的手动将meta中的引用导入到新的文件。
粒子缩放异常,将Hierachy模式改为Local模式。
3.资源打包问题
美术资源工程庞大,Bundle打包耗时长,后期优化成只给需要修改和新增的Bundle文件做标记,提高打包效率。
安卓打包时需要将缓存改大,不然会出错。
版本更新之后并不会直接用新版本替换老版本,而是采用了2个版本共存的方式。在开发时依然在老Untiy版本中开发,开发完毕后再将其更新为新版本的。新版本会在小部分渠道优先更新,经过一段时间玩家反馈,得到认可后再进行全面的替换。
优化:
1.LOD优化, 对小球直接用图片替换。
2.手机性能分类细化,根据玩家每局游戏的FPS值进行手机性能分类,对不同类型的手机进行不同的优化
3.网络监控 对网络日志进行分析,设计对应的优化方案
RednerTexture技术,将多个面合为一个面,可以大量减少DrawCall,同时还保证了高画质的美术效果。
RT技术可以保证美术效果和游戏帧数,但也有缺点就是会提高内存的消耗。
未来的优化计划:
Unity2018ECS 系统提升性能