不过,玩家扒出这个惊天“屎山”后,对 R 星严重的不满,《GTA 5》联机版这个祖传“屎山”代码终于在玩家的强烈吐槽下被优化了,这其中也进行了大量的工作去重构代码。当然,R 星这样的“甩手掌柜”在游戏的开发过程中还是少的,更多的开发者都在尽力发挥软硬件调度的效率保证游戏的高效流畅运行,在游戏优化过程中我们也看到类似《英雄联盟》这样的网游不管是在什么硬件条件下都能进行流畅的游玩,这些归根结底还是通过工具快速定位问题,并进行专门的优化和调试以此适应不同硬件场景。
图片来源于网络
其实在游戏优化这件事情上,软件和硬件都需要共同努力才可以达到最好的运行效果,对于开发者而言,完全吃透硬件而进行优化是一件非常难的事情,特别是小团队的游戏开发商,他们更多的是依托现有的游戏引擎进行开发。
《戴森球计划》就是一个例子,它基于 Unity 引擎进行开发,而很多优化引擎方和大型游戏开发商已经和硬件提供方进行了深度的合作进行联合调优。最典型的例子就是英特尔,英特尔目前在处理器的性能表现上已经有着非常不错的表现,在此之前,英特尔就早早的成立游戏合作技术部门,希望游戏整个生态可以做的更好。
英特尔游戏合作技术经理卢卷彬在今年 ChinaJoy 期间向我们介绍了现阶段在游戏优化领域英特尔做的一些工作。对于游戏生态来讲,硬件是基础,软件优化则是非常重要的,通过这几年硬件市场的观察来看,存储系统是处理器计算能力的一个瓶颈,这里主要是 L1、L2、L3 缓存以及系统内存,CPU 架构上提升这些模块都可以带来不错的性能提升,就以 11 代酷睿高性能移动处理器来说,英特尔提升了 L2 和 L3 缓存的大小,以此带来了更大的数据吞吐能力。
前面我们提到,很多小的游戏开发公司都不会重复发明新的工具或者引擎,针对游戏开发者,“工欲善其事,必先利其器”这一点非常重要,工具是提升开发效率的关键也是帮助开发者进行错误定位、软件优化的重要组成部分。在游戏发发过程中,游戏性能是非常复杂的,特别是一些元素特别多、每个元素都有自己对应的动作、每个元素之间都有碰撞,这要求游戏开发者进行高度的性能优化,才能保证在绝大部分的硬件设备上都能流畅的进行游戏。
实际上,这些复杂的场景首先会有专门的游戏引擎公司进行开发,前几年虚幻引擎宣布引入 Chaos 物理破坏引擎,通过 Chaos 引擎,游戏中的各种元素都可以破坏,破坏出来的粒子和石块之间也可以互相碰撞,有了这些专业的游戏引擎,小的游戏工作室也可以快速的利用这些现有的开发工具进行游戏制作。如今虚幻、Unity、Cry Engine 等游戏开发引擎已经覆盖了 PC 和移动端的游戏制作,这些游戏开发引擎非常复杂,每个当中都有上百万条代码,涵盖的模块也非常多,包括资源管理、内存管理、角色行为、AI、图形渲染、声音、网络、物理、UI、特效、动画等等,极大的方便游戏开发者进行开发。即便是一些大的游戏开发公司,他们也会利用现有的游戏引擎进行二次开发,大的游戏开发商以及游戏开发引擎需要从底层进行优化,因为他们直接面对的是硬件,小的游戏开发商虽然在游戏引擎基础上进行开发,但代码的简洁性和效率等问题同样也要进行优化,只要开发就一定会涉及到优化问题。
这里,英特尔在帮助游戏开发者和游戏引擎开发商提供了 Intel Vtune Profiler、Intel Graphics Performance Analyzers 等工具实现快速的问题定位。
Intel Vtune Profiler 是一款业内名气比较大的分析工具,无论是服务器还是客户端,它可以帮助开发者分析每个 DLL、每个函数、每条代码、每个线程,甚至每条汇编语言都可以清楚的进行分析。从高层到底层,都可以通过 Vtune Profiler 进行全面、直观的分析。
通过 Vtune Profiler 我们可以了解到游戏的执行在哪里出现了问题,每个线程在不同的时间节点活动是什么样的,线程之间是否有同步或者竞争关系,对于开发者来讲,他们通过 Vtune Profiler 就可以对游戏有一个整体的了解,知道哪个模块是瓶颈、哪个代码有问题,知道在哪里修改会得到最好的优化,开发者和引擎厂商有的放矢,这样才能更高效的进行产品提升。