英特尔|英特尔是如何优化游戏性能的?

游戏已成为ChinaJoy的重要组成部分。在今年的ChinaJoy上,英特尔特别邀请了英特尔游戏合作技术经理卢卷彬,为与会媒体们分享了很多英特尔在游戏方面的优化措施,干货颇多,值得大家细细品味!
英特尔|英特尔是如何优化游戏性能的?
文章图片
英特尔游戏合作技术部门是服务客户的团队,需要时常跟游戏开发者一起讨论很多技术问题,而现在的疫情对我们的团队影响也是非常大的。作为一个全球团队,英特尔游戏合作技术部门在欧洲、美国、中国、日本、韩国等所有在游戏开发上非常有实力的国家和地区都有团队在负责,我们会尽可能接触所有的游戏开发者,为他们提供技术优化的服务。我们去帮助游戏开发者是搞定性能问题,当然游戏好不好玩,我们能提供的帮助不多,但是我们希望能够在性能优化上成为客户的依靠。
为什么游戏性能很复杂?英特尔可以提供什么帮助,以及简单的游戏优化的方法。
英特尔|英特尔是如何优化游戏性能的?
文章图片
这是一个最简单的游戏架构,可以看到最下面是驱动和硬件,上面就有Graphics Runtime,包括DirectX、OpenGL或者是很多其他的中间件。再上一层就是引擎,还有最上面的游戏,每一个模块里都有非常多的公司去提供解决方案。比如说中间的游戏引擎,像Unreal、Cryengine、Frostbite、Unity等,这里面 Unreal 和 Unity 是商业化最成功的引擎,也是大家听得最多的,不管是手游还是 PC 游戏都在用。它们非常复杂,当中都有上百万行的代码,因为都是开放的,可能会有两三百万行的代码,非常复杂。模块也非常多,包括资源管理、内存管理、角色行为、AI、图形渲染、声音、网络、物理、UI、特效、动画、输入等等,非常复杂。当中的厂商很多、模块很多、代码巨大,游戏类型也是非常大的。比如说一个车枪球,这种游戏的玩法差别是非常大的。但是有一个好处是说,一个系统太复杂之后,就像人类社会一样,我们会把它分工,每个人把自己的那一块做大。游戏系统也是如此,有专门做引擎的,有专门做声音的,有专门做物理的,有专门做渲染的等。有了这些非常专精的公司把很多内容包装好之后,对很多游戏开发者来说就非常容易了。其实在图中黄线以下,就像 Unreal 的引擎,把很多内容都已经包装好了,即便你只是一个开发者,你也可以使用它的引擎去开发一个还不错的游戏,极大的方便了游戏开发者,也很大程度上推动了游戏行业的发展。对于一些大的游戏公司来说,即便是用 Unity、Unreal 等引擎仍然需要进行二次开发,这时性能问题就需要你自己非常关注,因为经过二次开发,很多代码已经被改变,要支持这么复杂的游戏系统,性能优化就非常重要了,而这个时候我们就可以提供帮助。
英特尔|英特尔是如何优化游戏性能的?
文章图片
性能优化如何去做呢?其实非常简单,就像你怎么把大象装到冰箱里一样,找到问题,解决问题。这两个问题都是非常重要的,甚至某种程度上,找到问题更重要。因为解决方案其实现在这个支持在互联网时代大家都是共享的,你遇到任何的问题都不是你独有的问题,在互联网上会有很多人也许就这个问题进行过讨论,你可以从中得到很多的启示。
英特尔|英特尔是如何优化游戏性能的?
文章图片
【英特尔|英特尔是如何优化游戏性能的?】在这里面,英特尔能够提供什么帮助呢?我们说工欲善其事,必先利其器。英特尔这几年的经验有相当一部分的资源就是有一整套的性能分析工具。一个负责任的性能分析工具应该是什么样的?应该是自上而下的把程序的问题搞的清清楚楚、明明白白。英特尔 Vtune 分析工具在行业里面名气还是响当当的,无论还是服务器还是客户端,它可以从系统层面一直到每一个线程,每一个DLL,每一个函数,再到每一行代码,再到汇编都可以给你整的清清楚楚,明明白白的。这也是经过了我们几十年的沉淀,而且它是免费的。下面是一个非常简单的截屏,当你用 Vtune 跑的时候,它会有一个整体概况,左边我们可以看到,这个程序花了多长时间,对多线程的利用是多少,右边还会去建议你下一步还可以用微架构再跑一次,更详细的针对微架构的分析,或者再跑一次针对内存的分析,可以让你进一步了解。右边的就是针对微架构的分析,可以看到是前端有问题,还是在解码有问题,还是说内存有问题,L1、L2、L3,包括DRAM Bound各自的百分比是多少,都会给你演算出来,这是一个非常整体的概况。

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。