UWA-Day-2018分享

2023-11-21 20:59
文章标签 分享 day 2018 uwa

本文主要是介绍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

这篇关于UWA-Day-2018分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405074

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe