游戏优化方法论

  • 设定你的绩效目标
  • 一般优化工作流程
  • 英特尔工具如何提供帮助
  • 在你开始之前
  • 识别有问题的场景
  • 确定游戏受限于CPU还是GPU
  • 如果游戏受 CPU 限制
  • 如果游戏受 GPU 限制
  • 平衡视觉效果和性能

当没有明确的方向时,优化游戏是一项艰巨的任务。如果没有任何起始信息,甚至很难确定从哪里开始。了解如何使用各种英特尔性能分析工具以清晰、系统的方式优化您的游戏。

设定你的绩效目标

严格来说,您可以无休止地优化任何软件,而在优化应用程序的同时,性能收益与时间和精力的比率不断下降。因此,有必要设定一个明确的性能目标,并在达到该目标时停止执行优化。

首先,您需要考虑游戏的类型、风格和游戏元素。对于竞争激烈的第一人称射击游戏来说,稳定的 FPS 和低输入延迟可能是关键因素。对于慢节奏的叙事游戏,视觉保真度可能超过对 >100 FPS 值的需求。具有预渲染背景的点击式冒险游戏可能根本不需要任何图形优化。

您还需要考虑您的目标受众以及这些人可能使用的硬件类型。您的目标是拥有顶级、高性能硬件的 PC 爱好者,还是您的受众群体是使用带有集成显卡的笔记本电脑的游戏玩家?一些在线游戏供应商可以提供帮助,因为他们会定期发布月度和/或年度硬件和软件调查结果。Steam* 硬件和软件调查就是此类全球调查的一个例子 。此类调查可以深入了解全球真实游戏玩家使用的硬件和软件类型。

这两个因素将共同决定您的绩效目标。

具有竞争力的第一人称射击游戏的一组基本性能目标示例可能如下所示:

  • 稳定的 FPS 值 >=120 FPS,可在 120 Hz 显示器上获得流畅体验
  • 精确定位的低输入延迟
  • 良好的服务器端性能可实现公平的游戏玩法和得分
  • 灵活的图形选项,最大限度地覆盖不同硬件的人
  • 在根据自己对目标受众和硬件调查的想法选择的配置上进行测试时,游戏表现良好并提供流畅的体验

一般优化工作流程


优化是一个迭代过程。当您的游戏没有达到预期时,您的典型工作流程可能如下所示:

  1. 识别有问题的场景。
  2. 检查游戏在此场景中是否受 CPU 或 GPU 限制。
  3. 确定主要性能瓶颈。
  4. 深入分析并确定根本原因。
  5. 解决问题。
  6. 检查游戏现在是否满足您的性能目标。
  7. 如果是,请停止优化。如果没有,请转到步骤 1。

英特尔工具如何提供帮助

英特尔提供了多种性能分析工具,它们共同涵盖了此工作流程中的所有步骤。

最有用的工具是:

  • Intel® Graphics Performance Analyzers
    英特尔® 图形性能分析器是一套功能丰富的工具,涵盖所有图形优化和分析需求。
  • Intel® VTune™ Profiler
    英特尔® VTune™ 分析器是CPU 性能分析的综合工具。附带一组分析类型,涵盖所有 CPU 优化需求。
  • Intel® Advisor
    英特尔® 顾问是一种性能分析工具,重点关注线程化和矢量化。

在你开始之前

在开始优化游戏之前,选择一个合适的测试系统来进行性能评测是很重要的。

对于性能评测,请使用一个平衡的系统,其中CPU和GPU都属于相同的时间段和价格范围。使测试系统规范与您的性能目标和目标受众保持一致。

在接下来的步骤中,这一点尤为重要,即测试游戏是否受CPU或GPU限制。在一个拥有顶级CPU和超预算GPU的系统上评测你的游戏将不会产生有用的结果,因为游戏在这样的系统上总是绑定GPU的。这同样适用于强大的gpu加上预算或过时的CPU:知道你的游戏是CPU限制在这样的系统上很难代表现实世界的情况。

确保测试系统的规格与目标用户一致。一个以讲故事为导向的图形化简单的游戏不应该在超高性能硬件上进行测试,因为这无法考虑到大部分设备性能一般的玩家。

识别有问题的场景

一旦您制定了性能目标并配置了测试系统,您就可以开始优化了。

很可能,你会意识到你的游戏只是在某些情况下很慢。

一些可能的例子(从明显到更复杂):

  • 查看地板/地面会提高FPS,查看其他地方会将FPS降至不满意的水平。
  • 查看特定的树或灌木模型会显著降低FPS。
  • 离那棵树远一点并不能改善情况。
  • 激活光源(如手电筒)会显著降低性能。
  • 当你进入一个新的位置后,游戏会慢一分钟,然后会有所改善。
  • 游戏加载特定模型和纹理的速度很慢。
  • 看似零星的性能下降没有明显的解释。

GPA-System Analyzer 是一个可以帮助您更轻松地查找问题场景的工具。您可以在启用系统分析器HUD的情况下启动游戏,并查看当前FPS值和最多四个选定的度量图,直到找到有问题的点。

您还可以使用System Analyzer窗口实时跟踪多个度量,在遇到问题时快速捕获帧或跟踪,并在度量集之间切换以分析性能的其他方面。

根据您的测试系统,远程分析游戏可能很有用。在这种情况下,您将System Analyzer连接到运行游戏的远程系统,并且所有度量都显示在您的客户机上。这减少了开销并尽可能地减少了干扰,当您的测试系统与性能较差的硬件的目标受众相匹配时,这尤其有用。

要启动游戏并链接System Analyzer,请通过Graphics Monitor窗口启动游戏。因为下一步需要跟踪捕获, 所以需要确保在跟踪模式Trace mode下启动游戏。

如果性能问题是零星的,并且您发现很难在适当的时间捕获跟踪,请设置触发器trigger。当满足某个条件时,触发器将自动捕获帧的跟踪。

一旦您发现一个问题场景或区域,下一步是捕获跟踪,以确定在这个场景中游戏是CPU还是GPU受限。

确定游戏受限于CPU还是GPU

使用Trace Analyzer tool of Intel® GPA.可以确定是CPU还是GPU问题

要捕获跟踪Trace,您可以在游戏过程中使用System AnalyzerCapture Trace按钮或按Ctrl+Shift+T

捕获跟踪后,使用Trace Analyzer工具打开它(你捕获的跟踪)并查看主视图。在收集跟踪时,您应该会看到 CPU 和 GPU 上的所有活动。这包括所有逻辑处理器、应用程序线程和多个 GPU 指标。

在最简单的情况下:

  • CPU 受限:逻辑处理器大部分时间都在忙于执行应用程序代码,而 GPU 没有加载;例如, GPU 忙 (%) 指标值较低。
  • GPU受限: 与 GPU 占用相关的 GPU 指标较高,而 CPU 内核大多处于空闲状态。

你的情况可能没有那么简单。有关更多详细信息,请参阅完整的 Trace Analyzer 工作流程。

如果游戏受 CPU 限制

如果您的游戏受 CPU 限制,尝试以下操作可能会有所帮助:

  • 使用ITT API为您的 CPU 端代码添加注释 ,以便在 Trace Analyzer 中查看耗时过长的任务。
  • 使用英特尔® VTune™ Profiler 查找热点并优化 CPU 利用率。请参阅 用户指南和 食谱,看看这个工具可以在你的情况有所帮助。
  • 如果您怀疑您的应用程序在线程化和矢量化方面存在问题,请使用Intel® Advisor。请参阅 User Guide and Cookbook ,看看这个工具可以在你的情况有所帮助。

根据 CPU 端问题的性质,这些工具中的一个或多个可以满足您的 CPU 优化需求。

可能导致CPU性能不理想的问题有:

  • 不佳的游戏逻辑代码。例如,负责将NPC位置映射到地图上的点的功能实现得很差,每次刷新地图都会导致整个游戏的速度减慢。
  • 多线程游戏不能正确使用同步,CPU线程大部分时间处于空闲状态。

使用上述提供的工具发现热点并解决问题。

如果游戏受 GPU 限制

如果您的游戏受 GPU 限制,则下一步是捕获有问题场景的流或帧以确定根本原因。

frame是渲染一帧过程中GPU活动的捕获。在帧分析器中打开您的帧,以获取有关特定场景如何在 GPU 上渲染的大量信息。

如果您发现很难在正确的时间捕获帧,请设置触发器。

帧是由draw calls组成,这些draw calls调用图形 API 以执行一个或另一个操作。使用Frame Analyzer的提示、实践、和其他特性去定位最长的draw calls 并确定其根本原因。

在 Frame Analyzer 中查看帧后,您可以测试渲染管线以定位高级瓶颈。例如,如果您使用 2x2 纹理 实验,用 2x2 像素方块替换所有纹理,帧时间急剧下降,这可能表明此场景中存在过于复杂的纹理。

您还可以在着色器代码中找到最重的指令,并在不更改原始游戏代码的情况下对其进行即时试验。

如果您怀疑问题在多个帧中仍然存在,请尝试捕获stream流. 流是一系列帧,每个帧都可以在 Frame Analyzer 中单独打开。

有关详细信息,请参阅完整的 帧分析器工作流程。

平衡视觉效果和性能

根据 GPU 性能问题的性质,您可能会考虑简化对象模型或纹理以提高性能是否会牺牲视觉质量。答案实际上取决于问题的性质。

考虑上面的一个例子,当特定的树出现在视图中时性能会下降,而当离开树时性能不会提高。

造成这种情况的最可能原因是:

  • 树模型过于复杂,多边形过多。在这种情况下,最好简化模型,为性能牺牲一些视觉质量。大多数玩家很可能甚至不会注意到保真度的降低,但会欣赏性能的提高。
  • 此树的 LOD 设置不正确。在这种情况下,最好确保正确启用 LOD。这里没有牺牲视觉保真度,因为本质上,LOD 会随着与观察者距离的增加而降低模型的视觉质量。

总而言之,您可以发现自己处于两种情况:

  • 性能提升需要牺牲视觉质量
    在这种情况下,请考虑调整对象以查看性能如何随着质量的变化而变化。如果质量的显着降低导致性能大幅提升,则最好采用更改。
  • 性能提升不需要牺牲视觉质量
    在这种情况下,请考虑是否满足您的性能目标以及实施是否困难。确定收益与实施工作的比率是否足够好,并在此基础上实施修复。

GPA-游戏优化方法论相关推荐

  1. win10玩cf不能全屏_游戏莫名卡顿四招搞定!Win10游戏优化教程

    很多网友都说Win10下玩游戏卡顿,相反在Win7里就会好很多.这一方面是由你的电脑硬件决定,另一方面也和游戏版本有关.通常来说,新游戏对于Win10的兼容性会更好一些.此外在Win10里,也有一些简 ...

  2. Unity MMORPG游戏优化经验分享

    今天由Unity技术支持工程师高岩,根据实际的技术支持工作经验积累,分享如何对Unity MMORPG游戏进行优化. 在优化Unity游戏时,我们一般从四个方面:CPU.GPU.内存.工程配置等入手, ...

  3. win10玩cf不能全屏_游戏莫名卡顿三招搞定!Win10游戏优化教程

    [PConline 技巧]很多网友都说Win10下玩游戏卡顿,相反在Win7里就会好很多.这一方面是由你的电脑硬件决定,另一方面也和游戏版本有关.通常来说,新游戏对于Win10的兼容性会更好一些.此外 ...

  4. 安卓游戏优化加速器v1.0.5

    软件介绍 GameBooster是一款游戏优化加速器,极大程度优化游戏的画面清晰度.游戏帧数等等优化条件,充分调用手机资源,极大程度的提升游戏视觉体验和操作体验,提升游戏速度告别卡顿,快速上分.www ...

  5. win10亮度_Win10玩游戏优化设置教程,八大游戏优化设置,让游戏体验更佳

    很多人说Win10系统游戏兼容性差,游戏体验不好.其实这种说法是很不正确的,对于大多数游戏玩家而言,Win10算是一个不错的游戏平台.不但兼容性好,Xbox的原生加持也让玩家们更加过瘾.很多人并不知道 ...

  6. 全新的Unity移动游戏优化解决方案

    全新的Unity移动游戏优化解决方案 在今年的CJ CGDC 中国游戏开发者大会上,来自Unity大中华区的技术支持经理张鑫带来了关于<全新的Unity移动游戏优化解决方案>的精彩主题演讲 ...

  7. win10 SystemParametersInfo 设置屏保 不好使_Win10系统游戏优化

    [电脑分享] 很多人都说Win10系统游戏兼容性差,游戏体验不好,其实这种说法是不正确的. 对于大多数玩家而言,Win10算是一个不错的游戏平台,不但兼容性好,而且Xbox的原生加持也让玩家们更加过瘾 ...

  8. Unity游戏优化[第二版]学习记录6

    以下内容是根据Unity 2020.1.01f版本进行编写的 Unity游戏优化[第二版]学习记录6 第6章 动态图形 一.管线渲染 1.GPU前端 2.GPU后端 3.光照和阴影 4.多线程渲染 5 ...

  9. Unity游戏优化指南大全(持续更新中!)

    Unity游戏优化指南大全 三个官方优化提示: 性能和优化 (Performance and Optimization) - 关于性能分析器以及性能和优化技巧的 Unity 学习教程. Best pr ...

最新文章

  1. 测试自己像什么动物软件叫什么,【测试】你最像哪种动物?
  2. centos 多个yum源,系统怎么选择
  3. JavaScript实现京东购物车页基础面效果
  4. 神经网络中的激活函数的比较
  5. Hi3516DV300 U-boot移植应用开发指南(1)
  6. ios 获取html的高度,iOS Webview自适应实际内容高度的4种方法详解
  7. w ndows无法识别usb,电脑无法识别usb设备的解决方法
  8. javafx 剪切板_JavaFX技巧18:路径剪切
  9. 信息学奥赛一本通 1166:求f(x,n)
  10. Spring mvc 返回json格式 - 龙企阁 - 博客频道 - CSDN.NET
  11. 使用 Keras搭建一个深度卷积神经网络来识别 c验证码
  12. 【语音处理】基于matlab GUI语音信号综合处理平台【含Matlab源码 290期】
  13. log4j配置文件配置及解读
  14. 驱动人生:微软补丁如何修复CPU占用过高问题,Windows系统如何更新到win10
  15. Java IO流知识点总结
  16. Android系统开启蓝牙源码分析(上)
  17. 交互式数据可视化_我如何构建一个交互式仪表板Web应用程序以可视化拳击数据...
  18. 推荐学习!通过五轮面试斩获offer阿里实习生亲述,深度解析,值得收藏
  19. 制作双启动(传统BIOS与UEFI均可引导的U盘)
  20. css盒模型(css盒模型包括)

热门文章

  1. 浏览器原理:7.1DOM树的构建
  2. 1—6年java程序员涨薪攻略,值得一看
  3. JAVA外卖项目第六天 购物车和订单模块
  4. 苹果cms V10双域名设置教程 电脑访问www域名 手机访问m
  5. ECharts 实例
  6. MATLAB--randperm函数
  7. TTI bundling
  8. 美的微晶冰箱荣获智能保鲜先锋奖项,打造智能保鲜行业微晶现象
  9. 银行使用计算机实现个人存款,江苏计算机二考试基础知识重点题
  10. 计算机二级access模拟题库,计算机等级考试二级Access模拟题