使用Game Guru MAX和Intel® GPA优化你的游戏性能
目录
- 欢迎
- 什么是GPA?
- 为什么选择使用GPA?
- 发现性能问题
- 解决性能瓶颈
- 性能提升带来的影响
- 性能目标与特点
- Game Guru Max的用途
- 发布计划
- 总结
欢迎
在本期的游戏开发故事系列节目中,欢迎来到Game Guru Max与Intel GPA的搭配。我是来自Intel的软件技术咨询工程师Pamela Harrison,专门为游戏开发者提供Intel Graphics Performance Analyzers的技术支持。
今天我和Lee Bamber一起,他是The Game Creators的合作伙伴,将为您展示如何通过一个使用案例来分析他的应用程序。
Lee Bamber是一位自称为“老派编码者”的游戏开发者,从8位计算机时代开始,他就一直致力于创建游戏和游戏开发工具。在过去的30年里,他开发过许多作品,如Dark Basic、3D Game Maker、App Game Kit以及最近的Game Guru Classic。他将在英国威尔士的家庭工作室与我们交谈。
那么,Lee,你对什么感兴趣?为什么开始使用GPA呢?
什么是GPA?
GPA,即Graphics Performance Analyzers,是Intel开发的一款性能分析工具。它的主要功能是帮助游戏开发者找到游戏中的性能瓶颈。在开发现代游戏时,不仅需要出色的视觉效果和游戏玩法,还需要确保高性能的运行。因此,我们使用GPA来分析和优化游戏性能。
为什么选择使用GPA?
使用GPA可以帮助开发者深入了解游戏引擎的内部工作原理。开发一个游戏引擎是一项复杂的任务,但你需要知道实际发生了什么。通过使用GPA,我们可以实时监测游戏引擎的性能,找到需要优化的部分,并解决性能问题。
使用GPA可以让我们清楚地了解引擎的运行情况,发现哪些部分需要进行优化,从而提高性能。通过GPA,我们可以看到引擎内部的细节,了解游戏运行时的各个环节,找到影响性能的瓶颈,然后有针对性地进行优化。
发现性能问题
在开始使用GPA之前,我们的引擎已经达到了一个很好的状态。多年来,我们一直在开发游戏引擎和图形引擎方面有着丰富的经验。但是,即使经验再丰富,我们仍然会犯一些假设,而这些假设可能导致性能下降。
我们发现了一些问题,其中一个最明显的问题是反复渲染相同的对象,这在性能上占用了大量的处理时间。这是一个非常重要的问题,需要我们重点解决。
独立的对象渲染
在分析GPA收集的大量数据时,我们发现有一个单一的对象,它被反复渲染了多次。每次渲染这个对象都会消耗大量的性能资源。这个问题很明显,虽然数据量很大,但我们通过钻取分析如何解决这个问题。
如何通过GPA发现问题
我使用GPA的方式是先运行游戏,找到性能低下的点,然后进行帧捕获,即一次性收集游戏一个桢的信息。将这些信息导入GPA后,我会展开所有的部分,然后将指标设置为GPU时间。这个指标非常好用,可以从左到右显示整个桢,并显示每个部分所占的时间比例。
我们的游戏引擎可以分为四个部分:深度通道、阴影渲染、渲染目标和后期处理。通过GPA,我们发现在其中两个部分,性能消耗最大。当我们进行深入分析时,我们发现了许多小的绘制调用,它们占用了大量的性能资源。通过GPA,我们看到了这些绘制调用的模型,最终发现了一个引起性能问题的树对象。
解决性能瓶颈
发现了性能瓶颈后,我们有两个选择:重写或优化。
重写与优化的选择
通常,我们会选择进行优化,因为这通常是最快的方式,可以快速提高性能,然后继续编写下一个代码段。
但是,这一次,团队有一项特殊要求:他们需要比我们目前渲染的100或200棵树更多的树。所以,我们选择了重写这个系统,这样就能够解决性能问题,并考虑到我们需要的大量树木数量。
优化后的系统
优化之后,我们的树系统为我们提供了更多的树木使用数量,这对于团队来说非常有用。相比于仅能放置一两百棵树木的效率低下的方式,现在团队可以在地形上铺满树木。
这个改进取得了令人满意的效果,团队非常满意。尽管进度延迟了一些时间,但是看到了这样显著的改善效果,他们对此非常满意。
性能提升带来的影响
团队对性能的改善非常高兴,因为他们能够实现之前无法触及的功能。有了更高的性能,他们可以提高游戏的帧率,并添加更多的组件和功能。
对于我们团队来说,性能一直是我们的动力。在开始一个游戏项目时,由于游戏还没有任何内容,所以性能肯定是很高的。但是随着增加功能和内容,性能就会下降。对我们来说,重要的是将性能回归到可接受的水平。
同时,性能提升也意味着我们有更多的性能余量。当我们有了足够的性能余量后,就可以添加更多的游戏功能。这使得我们的团队非常满意,因为他们现在可以在游戏中添加更多的创新功能。
Game Guru Max的用途
Game Guru Max不是一个普通的游戏,而是一个游戏引擎。通过Game Guru Max,您可以轻松创建自己的游戏场景,并添加各种对象。
自定义场景
使用Game Guru Max,您可以创建游戏的标题画面、不同的关卡和地貌。您可以创建各种生态环境,如北极、沙漠、森林、雨林以及其他行星。只需从我们的库中挑选一个对象,将其放入场景中,即可快速创建一个游戏。
添加对象
我们提供了超过1000个带有内置行为的对象。如果您不想涉及编码或创建艺术资源,只需从库中选择适合的对象,将其放入场景中,即可快速创建一个游戏。您还可以从外部世界导入对象,以增加游戏的多样性。
创造独特的游戏
初始阶段,我们提供的对象可以帮助您快速开始项目。但最终,您会希望根据自己的想法、艺术资源、声效等创建独特的游戏内容。通过Game Guru Max,您可以实现自己独特的创意,并与全世界共享。
发布计划
Game Guru Max的早期版本将于2022年11月底在Steam上发布,并提供早期访问版。我们计划在2022年发布完整版本。
总结
在本期节目中,我们向大家介绍了使用GPA来优化游戏性能的故事。与此同时,我们还了解了Game Guru Max的功能和用途。
GPA是一款非常有用的性能分析工具,可以帮助开发者找到并解决游戏中的性能问题。通过GPA,我们可以深入了解游戏引擎的内部运行情况,找到性能瓶颈,并通过优化来提升性能。
Game Guru Max是一款强大的游戏引擎,可以让开发者轻松创建自己的游戏场景,并添加各种对象和功能。无论是初学者还是有经验的开发者,都可以通过Game Guru Max实现自己的创意并享受游戏开发的乐趣。
谢谢Lee Bamber和The Game Creators团队的分享,以及谢谢您的收听。敬请关注我们的游戏开发故事系列,了解更多有关游戏开发的故事和技术。
资源