UWA-Day-2018分享

4月21和22日在青松城酒店,参加uwa的大会。

前言

uwa作为在unity优化方向的专业团队,在支持各个公司的产品优化的基础上,也等到了一些很有意思的内容。

目前在使用uwa的unity版本分布情况,目前主要使用的版本还是5.3-5.6居多
还有游戏类型也有不同的变化,有卡牌三消=》arpg=》moba=》沙盒游戏(吃鸡等等)

uwa团队讲了,unity引擎移动游戏性能优化全解析(张鑫),逻辑代码的性能瓶颈定位与优化方法(张强),移动游戏的GPU性能优化(张鑫),你需要知道的Unity2017的性能优势。
邀请嘉宾,重度MOBA的优化之路(王啸予),拥抱开放世界(成明),基于人工智能的艺术风格化研究(廖菁),Conneting The Dots:基于团队的持续优化之道(贾伟昊)以及UE4中国分享的大地图相关的内容。

接下来讲点零散的知识点,官方会把视频放出来,我就先把自己拍的一些内容,记录内容写一点

unity引擎移动游戏性能优化全解析(张鑫)

渲染模块小结

  • 密切关注DrawCall
    • 多用Frame Debugger
    • GPU Instan的考虑
  • 关注Culling
  • 关注渲染模块的Self开销

    UI模块小结

  • 密切关注项目中Canvas的Rebuild性能
    • 关注Image,text的重建频率
    • 关注所在Canvas的复杂程度

      加载模块

  • Instantiate加载耗时、堆内存、频率
  • shader的加载耗时
  • GameObject Active/Deactive的调用频率
  • AssetBundle的加载方式

    物理模块

    Physics.Prcessing调用次数

    内存管理

    纹理内存
    • ASTC格式
      • ios设备,A8芯片以上都可以支持
      • Android设备,需要openGLES 3.2+
    • 缓存问题需要时刻留意
      网格内存
  • 缓存问题需要时刻留意
    动画片段内存的使用趋势
    • 对动画文件精度进行完善
      ShaderLab
  • 特别注意standard Shader的使用

重度MOBA的优化

  • UI和特效混排是使用RT
  • 不使用skinmesh,gpu蒙皮和gpu实例化
  • 实现UV合批,减少cup的工作

    拥抱开放世界

    主讲人是英雄互娱的制作人,沙盒游戏
    比较有意思的是美术在低端机适配
  • 画质选项根据机型自适应
    • 阴影、草开关
    • 水表现质量
    • 视野距离
  • Render texture
    • 通过Render texture 降低低端机分辨率

      逻辑代码的性能瓶颈定位与优化方法

      借助UWA GOT来分析代码
  • 堆内存
    • 累积分析
    • 泄漏分析
  • CPU
    • 瓶颈函数定位
    • 高频函数优化
    • Lua耗时分析
    • IL2CPP
      放上针对高频函数优化
      1.不使用Coroutine
      2.不使用MonoBehavior.update/LateUpdate/FixUpdate
      3.尽可能用Arrary遍历DoUpdate
      4.针对低逻辑,轮循环->事件队列
      5.针对高频逻辑,将访问的属性分离到单独的Array中

      移动游戏的GPU性能优化

  • CPU
    • 关注DrawCall、Material的使用情况
    • 尝试Texture2DArray功能
  • GPU
    • 关注overdraw、纹理Minmap使用情况
    • 关注网格渲染密度和屏占比
    • 关注shader的屏占比
      个人觉得很强大的部分在于分析一张图片早在不同的minmap情况使用率,将一些mipmap0的图片使用小一些的图片资源

      Conneting The Dots:基于团队的持续优化之道

      之前有这样的观点认为过早优化是无效,因为策划的需求和美术要求的效果不可控制,后期为了包体大小,适应中低端机器,不得不去做美术资源优化。
      贾伟昊,由他自身经历,重新制作美术资源是浪费公司的资源,觉得其次在开发初期就定义好,一些标准。
      可借鉴的地方:

      制作资源规范

  • 游戏信息收集
    游戏美观,镜头视角,美术预算,美术风格,团队经验,市场营销
  • 确定目标机型
    包括高、中、低三档区分Android和ios平台

    美术资源制作

    美术资源检查

    • 包体大小统计:资源包监控,知道新增资源,大小和数量和信息
    • 场景合法性检查:及时管理及时调整

      程序代码优化

  • 业务和数据使用lua
  • 与引擎相关,计算密集的逻辑
  • 代码质量;针对性的培训和分享,代码Recode、借助第三方的静态分析工具

    团队工作流和工具构建

  • 看到流程图的时候,很专业有及时反馈和反馈闭合
  • 提高程序开发的效率 Hdg Remote Debug
文章目录
  1. 1. 前言
  2. 2. unity引擎移动游戏性能优化全解析(张鑫)
    1. 2.1. 渲染模块小结
    2. 2.2. UI模块小结
    3. 2.3. 加载模块
    4. 2.4. 物理模块
    5. 2.5. 内存管理
  3. 3. 重度MOBA的优化
  4. 4. 拥抱开放世界
  5. 5. 逻辑代码的性能瓶颈定位与优化方法
  6. 6. 移动游戏的GPU性能优化
  7. 7. Conneting The Dots:基于团队的持续优化之道
    1. 7.1. 制作资源规范
    2. 7.2. 美术资源制作
    3. 7.3. 美术资源检查
    4. 7.4. 程序代码优化
    5. 7.5. 团队工作流和工具构建
|