UWA学堂 | 优化模块

UWA学堂 | 优化模块

本文主要为大家推荐UWA学堂中开发流程的相关课程,涵盖了精品项目案例、CPU、GPU和内存等四个子类。

UWA学堂界面中的“分类“选择优化即可查看相关课程。

无论对于从业者还是正在读大学的技术萌新,学习的有效时间和个人时间都是有限的。高效学习者最在意的是时间的价值,一个需要体系化的知识地图就显得尤为重要。

初阶

精品项目案例

《走难走的路 - 将一款主机游戏还原到手机上,我们趟过的坑》

以ACT为核心战斗体验的游戏制作门槛高,对研发团队的制作能力有着极高的要求,《鬼泣》正是主机ACT的代表作之一。本次报告将分享《鬼泣》作品从主机游戏还原到手机上的过程中,研发团队遇到的各种难点及解决方案,包括:从零开始搭建空中和地面两套模式实现华丽的空战效果;主机游戏在手柄13键的操作实现了非常华丽的操作效果,这种操作模式如何能够集中到手机上只有5个操作按键上,同时又不损失操作体验;在实现主机级画质的过程中,研发团队经历过的各种小故事。

CPU

《你需要知道的Unity 2017的性能优势》

Unity 2017不仅为我们带来了大量的新功能,其在性能方面也做了大量的完善和改进。对此,我们针对Unity 2017以及后续版本中的性能优势进行深入分析,以求让大家在使用Unity 2017及后续版本开发和优化项目时,能够对引擎有更为明晰地了解和掌握。

内存

《你需要知道的Unity 2017的性能优势》

Unity 2017不仅为我们带来了大量的新功能,其在性能方面也做了大量的完善和改进。对此,我们针对Unity 2017以及后续版本中的性能优势进行深入分析,以求让大家在使用Unity 2017及后续版本开发和优化项目时,能够对引擎有更为明晰地了解和掌握。

进阶

精品项目案例

《仙境传说RO:新世代的诞生》手游实战经验分享

《仙境传说RO:新世代的诞生》是一款MMORPG手游,有着完整的天气系统,数以亿计的Avatar及头像组合,组件化的UI开发,以及游戏对性能和内存的高要求。本次报告将介绍这些系统及优化在项目中的应用经验,主要内容包括:烘培实现的场景天气、Avatar系统、组件化的UI系统等多个模块的实战经验。

《天谕》手游的内存控制

作为一款次时代、大世界的MMORPG手游,《天谕》手游在性能方面一直以来就面临着巨大的挑战。本次分享将聚焦在内存控制上碰到的问题及解决方案。主要内容包括:
(1)内存的基本概念
(2)UWA等Profile工具和内存优化流程
(3)基于budget和分级的内存控制策略
(4)资源(贴图 mesh 动画 shader)
(5)MONO的内存
(6)Lua的内存

《基于Unity SRP的手游渲染之道》

2010年,iPhone4横空出世,开启手游时代。十年来,手游行业慢慢从蓝海变成红海。在2020年的今天,仿佛手游只剩下了两条路,要么就是玩法取胜,抓住用户的心;要么就是精品化,抓住用户的眼。这期间,手机硬件在升级,游戏引擎也在不断变化。终于,在2018年夏天,Unity提出了SRP的概念。本次课程讲师作为一名3D行业十年的老兵,聊一聊基于Unity SRP的手游渲染之道。

CPU

《Unreal引擎中Lua代码的性能瓶颈定位与优化》

目前,随着大家项目对于热更新的需求越来越高,Lua脚本与Unreal引擎的结合逐步成为了大型项目开发的热门选择。但是,随着Lua脚本在项目中的重度使用,其和引擎结合后的性能问题就不断地凸显出来。因此,我们针对Unreal引擎开发中看到的Lua性能问题进行分析和总结,并通过示例讲解如何对Lua代码使用过程中的性能问题进行快速地定位和优化。

这些问题主要包括:CPU耗时性能瓶颈、堆内存分配的性能瓶颈和GC调用频繁等。希望通过本课程,可以让开发者掌握如何在Unreal引擎中更高效地使用Lua脚本,从而带来性能更佳的游戏体验。

《Unity运行时动态图集的实现》

讲解Unity运行时动态可复用图集的原理以及代码解析。同时提供动态不可回收但空间利用率更高的动态不可复用图集的解析和实现方案。

我们使用动态图集可以将多个小图合并到一张图集中,从而达到减少Draw Call的目的。同时,通过算法管理图集的空闲区域与已用区域,从而达到动态回收无引用计数的纹理,进而实现在一张图集中动态管理当前UI系统中所用的真实纹理,该图集不仅可以常驻内存,且可达到永久复用的效果。

《Unreal Insights 功能详解》

本次报告将主要介绍Unreal Insights的重要功能,主要包括:高效Tracing API框架、Unreal引擎的各个模块如何使用和如何扩展、如何使用Unreal Insights来帮助开发者洞悉引擎内部的工作流程,以及通过具体案例来说明如何借助这些信息来高效定位问题和优化游戏。

《Unreal引擎渲染效率解析》

在Unreal中,如何分析渲染部分的开销?如何定位渲染的瓶颈?在各类设备上如何制定合理的渲染配置?基于UWA的项目优化经验和数据统计分析,针对当前流行的渲染效果和常用技术做更进一步的解析,从而能够更高效地实现高品质的渲染效果。内容包括:

  • 渲染模块的开销分析与瓶颈定位
  • Unreal渲染模块中各种渲染效果性能开销总结

《Unity引擎渲染效率全解析》

Unity中各种高大上的渲染效果在实际开发中效率到底如何?如何去定位渲染中的性能热点?具体多大的渲染数据量算是合理的?基于UWA对各种不同类型游戏项目的优化经验和数据,针对当前流行的PBR以及实时阴影渲染技术做更进一步的详细介绍。为大家提高产品渲染效果、增加美术表现力提供合理有效的解决方案。内容包括:

  • Unity渲染模块中各种渲染效果性能开销总结
  • Unity中PBR渲染性能开销分析
  • Unity中阴影渲染性能开销分析

《Unity UI模块优化案例精讲》

对UI模块常见的性能问题进行全方位的解析,具体分析UGUI和NGUI各自的优势和性能瓶颈所在,以及提升性能的主要方式,主要包括:

  • 如何降低界面的渲染开销
  • 如何降低界面的更新开销,以及避免峰值
  • 如何高效地处理大量HUD元素等

《Unity移动游戏中动画系统的性能优化》

基于对Unity移动游戏的动画系统性能瓶颈进行有针对性的分析,并通过大量案例在不同移动设备上实际运行的性能分析,将动画系统性能瓶颈进行归纳和总结,进而提出优化建议和解决方案。主要包括:

  • 动画系统的性能瓶颈现状
  • 动画系统中需要关注的重要性能参数
  • 针对各性能瓶颈的优化建议和解决方案
  • 对动画系统在多角色场景中的应用提出多种解决方案

GPU

《深入理解移动 GPU 和性能优化》

优化是游戏程序员经常面对的问题。在手游画质越来越逼近主机的今天,渲染往往会成为影响游戏性能的“罪魁祸首”,而缺乏对移动端GPU这个“黑盒子”的深入了解往往使得许多图形优化变成了毫无目的的尝试和玄学。

本教程分为四个部分:第一部分(包含第1节和第2节)从经典的图形渲染管线出发,介绍了GPU硬件常见的并行优化设计及其原理;第二部分概述了移动端GPU和桌面端GPU的异同及发展趋势,详细介绍了TBR架构;在此基础上,第三部分以Mali GPU为例,深入探讨了移动GPU内部硬件架构,并重点介绍了移动端GPU针对功耗的优化方案;第四部分结合一些常见的性能优化实践,分析优化手段背后的逻辑,旨在帮助读者更加清晰地理解移动端渲染的性能优化。

《Unreal引擎渲染效率解析》

在Unreal中,如何分析渲染部分的开销?如何定位渲染的瓶颈?在各类设备上如何制定合理的渲染配置?基于UWA的项目优化经验和数据统计分析,针对当前流行的渲染效果和常用技术做更进一步的解析,从而能够更高效地实现高品质的渲染效果。内容包括:

  • 渲染模块的开销分析与瓶颈定位
  • Unreal渲染模块中各种渲染效果性能开销总结

内存

《Unreal引擎中Lua代码的性能瓶颈定位与优化》

目前,随着大家项目对于热更新的需求越来越高,Lua脚本与Unreal引擎的结合逐步成为了大型项目开发的热门选择。但是,随着Lua脚本在项目中的重度使用,其和引擎结合后的性能问题就不断地凸显出来。因此,我们针对Unreal引擎开发中看到的Lua性能问题进行分析和总结,并通过示例讲解如何对Lua代码使用过程中的性能问题进行快速地定位和优化。

这些问题主要包括:CPU耗时性能瓶颈、堆内存分配的性能瓶颈和GC调用频繁等。希望通过本课程,可以让开发者掌握如何在Unreal引擎中更高效地使用Lua脚本,从而带来性能更佳的游戏体验。

《Unreal Insights 功能详解》

本次报告将主要介绍Unreal Insights的重要功能,主要包括:高效Tracing API框架、Unreal引擎的各个模块如何使用和如何扩展、如何使用Unreal Insights来帮助开发者洞悉引擎内部的工作流程,以及通过具体案例来说明如何借助这些信息来高效定位问题和优化游戏。

《天谕》手游的内存控制

作为一款次时代、大世界的MMORPG手游,《天谕》手游在性能方面一直以来就面临着巨大的挑战。本次分享将聚焦在内存控制上碰到的问题及解决方案。主要内容包括:
(1)内存的基本概念
(2)UWA等Profile工具和内存优化流程
(3)基于budget和分级的内存控制策略
(4)资源(贴图 mesh 动画 shader)
(5)MONO的内存
(6)Lua的内存

《移动游戏加载性能和内存管理全解析》

基于UWA测评过的大量性能数据,我们对项目运行时的加载模块和内存模块进行了全方位的解析。结合大量的实际案例,让大家了解和掌握加载模块和内存模块在开发过程中需要注意的核心问题和相应的解决方案,主要包括:

  • 如何提升场景切换效率
  • 如何完善运行时的资源管理
  • 如何快速定位内存瓶颈
  • 如何快速查找内存泄露

高阶

精品项目案例

《一起来飞车2》特效GPU性能量化实践

《一起来飞车2》是一款大世界赛车竞速手游,机型适配范围比较广,需要兼容高端机的效果和低端机的性能,在这个过程中遇到一些挑战。本次报告主要分享项目在机型适配上所做的工作,主要内容包括:基于Mipmap和TextureStreaming特性的贴图规范、大地图地形重建、数据压缩和内存控制、动骨Trasnform计算Jobs优化,基于评分机制的特效性能评估以及特效性能消耗的动态控制、Shader Core Cycles性能分析等。

从零开始打造手办老婆 - 《高能手办团》技术进化之路

《高能手办团》是一款手办题材的放置类手游,除了提供休闲的玩法,更希望在移动设备上还原手(lao)办(po)的真实表现,给玩家提供更真实的体验。本次报告将分享在研发的过程中团队从无到有,再到精致的渲染进化之路,以及我们这个小团队在面对短开发周期挑战时摸索积累的一些经验和教训。主要内容包括:立项前的准备、逐步提升渲染效果的过程、流程规范优先原则、造轮子的取舍。

引擎技术助力《航海王:热血航线》游戏工业化生产

《航海王:热血航线》是一款由朝夕光年和中手游联合发行的正版航海王3D动作手游。该游戏自上线至今以丰富的玩法、精细的效果和优异的性能取得良好的玩家口碑。无双工作室技术中台,作为项目的研发支持,将在本次演讲中分享对于顶级IP合作下的角色效果研发思路,以及在后期的优化技术和方案。主要内容包括:基于IP的角色效果选型、基于Unity的角色效果技术支持方案、角色性能优化技术,以及性能优化拓展工具等。

《深度剖析大型MMO移动游戏的性能优化》

针对大型MMO移动游戏来说,复杂场景、百人同屏、逼近端游的画质表现已经成为了MMO游戏发展的硬核趋势。同时,这些需求对于移动设备来说,其性能压力也是一个非常巨大的挑战。因此,本次报告将从性能和画面表现两方面入手,分享欢乐互娱引擎中心在《龙之谷手游》和《仙境传说RO:爱如初见》项目开发过程中的制作方法和优化技巧,主要包括:

  • Shader中的性能优化;
  • 高效的图像后处理框架;
  • 多人同屏时的Imposter使用;
  • 结合顶视图的场景制作策略。

《重度MOBA的优化之路》

针对《小米超神》这款重度MOBA项目,嘉宾将分享开发过程中遇到的各种各样的技术问题以及解决方案,内容主要包括:

  • 对于英雄头像和技能图片等UI元素,如何通过渲染到纹理的方法来降低其Draw Call;
  • 对于频繁移动的HUD和小地图上的UI部分,如何自行构建UI Mesh来进行管理;
  • 如何优化UI界面中的粒子特效;
  • 如何解决因角色过多而导致的GameObject状态更新和组件Update开销过大的问题。

CPU

《详解UGUI DrawCall计算和Rebuild操作优化》

本文主要分为以下内容,帮助大家深度了解UGUI的重要原理和优化方法。

  • 讲解UGUI DrawCall的工作原理,并结合大量实例讲解Unity引擎如何计算DrawCall以及如何通过合批来降低DrawCall。
  • 描述用于ScrollView的Mask和RectMask2D的具体原理以及它们是如何对DrawCall产生影响。
  • 重点讲述我们在优化UGUI时经常被忽略的问题:Canvas Rebuild和动静分离、粒子系统与UI界面结合、UI系统的Raycast Target以及界面OverDraw的相关优化点。

《Unity移动游戏项目优化案例分析(上)》

UWA为大量项目进行深度优化服务时会提供全面深入的性能分析和有针对性的解决方案。本次报告将总结UWA四年来深度优化过程中所遇到的各类实战性能问题。通过具体的案例,分析各类性能问题的相关机制原理,介绍如何借助UWA分析工具快速、精准地定位性能瓶颈,以及可操作、行之有效的解决方案。

第一场主要内容包含渲染、UI等模块的性能问题总结、分析和解决方案。

《Unity移动游戏项目优化案例分析(下)》

UWA为大量项目进行深度优化服务时会提供全面深入的性能分析和有针对性的解决方案。本次报告将总结UWA四年来深度优化过程中所遇到的各类实战性能问题。通过具体的案例,分析各类性能问题的相关机制原理,介绍如何借助UWA分析工具快速、精准地定位性能瓶颈,以及可操作、行之有效的解决方案。

本次报告是《Unity移动游戏项目优化案例分析》的第二场,主要内容包含的是逻辑代码(包括Lua)以及其他引擎模块的性能问题总结、分析和解决方案。

视频的第8小节动画部分提到的 Animator.keepAnimatorCOntrollerStateOnDisable 选项在部分Unity版本中存在Bug(不起效),因此使用时仍需要注意。

《Unity引擎移动游戏性能优化全解析》

目前,UWA已经为超过70款移动游戏项目进行了深度优化。在针对这些项目的性能进行深度剖析时,我们遇到了大量的“疑难杂症”。在此,我们将这些问题进行总结和归纳,通过大量实际案例,让大家能够了解和掌握如何对Unity引擎各个模块、资源和内存管理方面的性能问题进行快速的定位和精准的分析,内容主要包括:
1、渲染、UI、加载、物理等Unity引擎各个主流模块的“疑难杂症”分析;
2、纹理、网格等主流资源的资源加载和内存管理。

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

针对Unity引擎中的逻辑代码(C#脚本)自身及其在与Lua交互的过程中常见的性能问题进行针对性的分析,并通过示例介绍如何通过UWA GOT等工具对相关问题进行快速地定位和优化,内容主要包括:

  • 堆内存峰值过高;
  • 堆内存泄漏;
  • GC调用频繁;
  • CPU耗时瓶颈定位等。

GPU

《移动游戏的GPU性能优化》

随着精品移动游戏的大量涌现,移动设备GPU端的性能压力越来越大。对此,我们从Bandwidth、Fillrate和Shader等几方面出发,结合大量优化过程中的实际案例让大家了解和掌握如何快速定位和分析游戏在GPU端的性能瓶颈,以及游戏开发过程中需要注意的性能点,以求有效降低移动游戏的GPU压力,避免不必要的性能开销。

内存

《Unity移动游戏项目优化案例分析(下)》

UWA为大量项目进行深度优化服务时会提供全面深入的性能分析和有针对性的解决方案。本次报告将总结UWA四年来深度优化过程中所遇到的各类实战性能问题。通过具体的案例,分析各类性能问题的相关机制原理,介绍如何借助UWA分析工具快速、精准地定位性能瓶颈,以及可操作、行之有效的解决方案。

本次报告是《Unity移动游戏项目优化案例分析》的第二场,主要内容包含的是逻辑代码(包括Lua)以及其他引擎模块的性能问题总结、分析和解决方案。

视频的第8小节动画部分提到的 Animator.keepAnimatorCOntrollerStateOnDisable 选项在部分Unity版本中存在Bug(不起效),因此使用时仍需要注意。

《Unity引擎渲染、UI、逻辑代码模块的量化分析和优化方法》

Unity引擎的渲染、UI和逻辑脚本耗时是大多数项目的Top 3耗时模块。对此,我们对这三个模块进行量化地统计和分析,介绍准确定位性能瓶颈的方法。同时,从常见的性能问题入手,分析和对比各种可行的性能优化方案,以求显著地提升这些模块的效率。内容包括:

  • 渲染模块的重要参数分析以及优化方法
  • UI模块瓶颈的精确定位和优化
  • C#/Lua瓶颈函数的优化方法

《Unity引擎加载模块和内存管理的量化分析及优化方法》

Unity引擎的资源加载和内存管理一直是项目开发的重中之重。对此,我们从定性和定量两方面来分析各种资源的加载耗时及其对于内存的影响。通过本次报告,我们希望通过研发团队可以对加载模块和内存使用达到一个全面的、数字化的认识,从而达到高效定位和优化相关的性能问题。

《Unity引擎移动游戏性能优化全解析》

目前,UWA已经为超过70款移动游戏项目进行了深度优化。在针对这些项目的性能进行深度剖析时,我们遇到了大量的“疑难杂症”。在此,我们将这些问题进行总结和归纳,通过大量实际案例,让大家能够了解和掌握如何对Unity引擎各个模块、资源和内存管理方面的性能问题进行快速的定位和精准的分析,内容主要包括:
1、渲染、UI、加载、物理等Unity引擎各个主流模块的“疑难杂症”分析;
2、纹理、网格等主流资源的资源加载和内存管理。


以上就是我们本期为大家梳理的优化模块学习路径图。需要说明的是,这个路径图并不是捷径,相反34篇文章会更加训练大家的意志力。作为体系化的知识,我们希望大家能掌握背后的逻辑与原理,结合学习方法论并反复实践,未来尝试在自己的项目中创新创造出自己满意的效果。

往期回顾

《Unity引擎渲染模块知识Tree汇总》
《Unity引擎UI模块知识Tree》
《UWA学堂|逻辑代码模块》
《UWA学堂|开发流程模块》
《UWA学堂|解决方案模块》