游戏优化是什么意思(游戏优化是怎么优化的)

不知各位在玩游戏的时候是否有遇到过这种情况,明明你的电脑配置就还算给力,或者你玩的是统一规格的游戏主机或者航机,但你在玩特定游戏的时候就是会莫名其妙卡顿或掉帧,这个时候你可能就会吐槽这款游戏的优化也太烂了吧.但说到底游戏优化到底是什么?没错,这次我们就来聊什么是游戏优化.

游戏优化是什么?网络上有各种专业的解释,但这些夹杂着大量专有名词与专业术语的阐述,先不说大家能不能看得懂,我自己都快读睡着了.其实不管再怎么复杂,游戏优化的目的总归就两个字“不卡”,换句话来说让一款游戏不卡的技术就叫做优化.在玩游戏的时候,无论是操作上、流畅度、表现上、甚至是画面的观感上,只要你玩起来觉得有点卡卡的,那这款游戏可能就还存有优化的空间.当然,这是较为广义的优化,其中涉及到使用者界面和使用者体验.要详细地解释“游戏优化”问题,我们就得大致从“游戏为什么会卡顿”、“开发者们优化游戏有哪些手段”这些方面出发.

首先游戏为什么会卡顿?这就得从现代的电子游戏基本运作流程开始说起.无论你的游戏平台是手机、游戏机还是电脑,这些设备基本都包含了负责运算的CPU、GPU;临时储存设备(比如:内存条)、长期储存设备(比如:硬盘);用于输出画面的屏幕,以及像是键盘、鼠标、手柄、触控等这些形态不一的输入装置.

游戏下载好之后就会存在硬盘里面,当玩家按下开始游戏的时候,CPU就会把存在硬盘里可能会用到的资源翻到内存条里面,这个过程就叫做载入.接着CPU就开始处理逻辑运算,在这个瞬间,玩家按了什么按钮,按了按钮之后应该要发生什么事,都是在这里处理的.

当CPU处理好运算之后,就会根据运算的结果通知GPU该把哪些东西从内存条里面拿出来,一层一层地画到屏幕上,这个阶段叫做渲染.等到渲染完成之后,画面显示出来,也就是完成了一个帧.如果这流程哪里出了问题,像是CPU运算量过高或者GPU来不及绘制,以60FPS为例,画面就没有办法即时在六十分之一秒内做完,原本的一帧理论上只会出现0.0166秒,但这一帧可能停留了0.1秒,玩家就会觉得游戏卡了,这就是所谓的掉帧.

但如果一款游戏对于硬件的需求高于玩家使用的设备时,CPU和GPU就会长期处于一个需要花费高于预期时间才可以输出画面的状态,于是就会出现帧数不稳定的状况,游戏体验也就直线下降.对开发者来讲,无论是突发性的掉帧还是持续性的帧数不稳定,都是需要极力去避免的,毕竟要让玩家愿意花时间来体验你的游戏,只有做到不卡他们才有机会获得一个良好的游玩体验,而处理这些问题的行为就是优化.

那具体来说,开发者们会怎么做优化处理呢?从上一点可以知道解决掉帧问题是优化的首要目标,而掉帧的原因通常是CPU或GPU处理不过来,那我们就换CPU跟显卡,一张RTX3090不够就插两张,12代i7不够用就上i9,如果预算无上限,你组台天河计算机都可以.当然这是不切实际的,不是所有玩家都有能力负担一台高性能电脑,也不是所有平台都可以跟PC一样想换就换,所以我们需要反过来思考,如何在有限的硬件条件中让游戏顺畅地运行呢?我个人总结出三个大方向,分别是改变资源消耗的时机;尽量在不被注意到的情况下降低画面品质;以及烘焙.

先来说说改变消耗资源的时机,这主要是为了应付瞬间的掉帧.有的时候即时创造或者销毁一个物件,所需要消耗的资源是很高的,这就有可能导致在创造或销毁的瞬间画面卡顿.这个时候我们就可以导入“对象池”的概念,这个对象池有点类似于铅笔盒,作为一个好学生,身上少说也会带个三五支笔吧?但如果你不把它们全部放在铅笔盒,而是直接丢进书包里,那每当你需要换一支笔的时候,你就得去翻书包,这样就很浪费时间对吧?



所以合理的做法当然是准备一个铅笔盒,把这些笔全部都放进去,每次需要用的时候就把铅笔盒拿出来放在桌上,想要换笔你就不用特意去翻书包了.“对象池”也是一样,设计师会把可能用到的东西在载入场景的时候一起带进来,如果需要用到很多同样的东西,就像铅笔盒里面会有好几支笔,这时就会把这些物件一次多载入几个进来,形成一个池.虽然这么做并不会降低创造物件的成本,就像大部分的时候你也不会同时用到铅笔和橡皮擦,但是在“Loading”画面中多等一帧,和你在游玩过程中卡顿的那一帧相比可划算太多了.这些物件在使用完毕之后也无需销毁它,只要把它关掉,丢回对象池里面,等到下次要用的时候再打开就好了,这样做也就很大程度上减少了瞬间掉帧的情况.

再来讲讲尽量在不被注意到的情况下降低画面品质.一款游戏如果想要最大程度地表现细节,它的模型面数肯定会稍微高一些,如果只是一个室内的场景,画面上只会有几个模型,那也就算了.可若换成森林、城市那种复杂的场景,只要稍微把摄影机拉远,画面上的模型数量就会非常的大,不做处理的话,这些模型所夹带的总面数就会非常多,GPU就很有可能来不及运算,进而发生持续性的掉帧.所以基于性能的考量,设计师通常会使用“LOD”去做处理.LOD的全名是Level Of Detail,顾名思义就是把细节分成好几个等级,距离摄影机比较近的模型就会以面数最高、细节最多的形态呈现,反之距离摄影机越远,模型就可以显示得越简陋.

还有一些比较狠的做法,会把动画的帧数调低,总而言之就是各种取巧,毕竟大部分游戏都会尽量让玩家的注意力,集中在离自己比较近的地方.何况远方的物件在屏幕上占据的像素点并不算太多,只要处理地够好,通常是不太会被发现的.当然这只是理想上的状态,实际上大多数的游戏,特别是开放世界类作品,只要你慢慢往前走,甚至是在原地旋转一下,视角或多或少地还是可以看出远方物件的闪烁、消失等异常情况.虽然说破之后会有些尴尬,但正因为有这些处理,玩家才可以在游戏中体验到广袤无垠的开放世界场景嘛.


最后再来讲讲“烘焙”.烘焙这两个字稍微有一点抽象,游戏怎么会跟烤面包扯上关系呢?烘焙其实是指把一个原本在即时运算中特别吃效能的功能,在开发阶段就先花时间算好,并保存起来,之后如果要再用到这个功能时,就不用再花大量CPU和GPU资源去即时运算了.我们都知道游戏的帧数最少也要30,所以游戏对即时运算的要求是非常非常高的.而在3D的世界中,光影的计算又是特别消耗效能,所以很多像是静态阴影、光照探针、法线贴图、镜面反射等等都会使用到烘焙.这样做的好处在于几乎不牺牲画面品质的情况下,就可以做到更好的效能控制.简单来说就是画面又好看、又不会卡.

但相对的,因为这是事先处理好的东西,所以只要烘焙的东西一被改变就会穿帮.比方说《漫威蜘蛛侠》里的高楼大厦,它的镜面反射就是事先算好,所以如果你看得够仔细的话,就会发现它的反射贴图呈现的影像,跟实际在大楼对面的物体是完全不一样的,在工地地板的水滩也可以穿透天花板看到天空的颜色,因此这算是一种有利也有弊的技术吧.

除了刚刚提到的三大方向之外,优化当然还有很多其他的种类.这三种只是比较经常使用的方式罢了,其他像是游戏容量、发热耗电量、集体占用量等方式,会根据开发平台、游戏类型、美术风格的不同,使用有其独特的优化方式.而且所谓的优化并没有一个绝对的标准,不是说为了极限压制效能,甚至不惜牺牲画质来获得更高的回报,试问如果厂家都把游戏压缩在480P的分辨率,游戏是都能流畅运行了,但你的眼睛答应吗?

因此游戏优化更多时候是在品质和流畅度之间取得一个平衡,回归一切的原点,可以让玩家顺畅地游玩开发者的心血结晶,完全沉浸在他们所架构出来的世界里.不用去过分在意游戏的载体,不用再为了画质、设定而反复斟酌,也不会因为莫名的掉帧而被迫从游戏体验中抽离,让好玩的游戏变得更加好玩,这才是游戏优化最终的目的.

以上就是“游戏优化是什么意思(游戏优化是怎么优化的)”的全部内容,更多内容敬请关注

您可能还会对下面的文章感兴趣: