南昌周边适合老人游玩的地方
2023-11-07 12:45:44
应用优化是什么意思(游戏中的优化指的的是什么?)
游戏软件的优化和一般软件是有一些区别。
游戏通常是软实时(soft real-time),就是说运行上有时间限制,但没有硬实时般严格。
先谈固定硬件的游戏平台,如游戏机和街机。在这些平台上,通常会设置固定的帧率目标,例如30 FPS(即每帧33.3毫秒)。游戏开发者希望在这个时间限制下,尽量提升游戏的品质,例如更精细的角色和场境、加入更多效果、提升人工智能水平等。优化的目的除了令游戏顺畅,也是提升游戏品质的必要条件之一。
对于PC或手机平台,因为硬件的性能有很大差异,优化就没有一个具体的目标,而是希望尽可能在大部分平台上都能做得最好(虽然PC游戏有几百FPS的情况,但实质上几乎不能增加流畅性)。
从玩家角度,我认为游戏的性能指标大概有这几方面:
平均帧率
流畅性(不要「卡」,专业地说就是少spikes)
互动延迟(输入后至看到反应的时长)
等待时间(读盘、写档、网络连接等)
内存用量
游戏体积
网络流量(主要是移动平台)
耗电量(主要是移动平台)
而在开发的角度来说,我认为优化方法可以分为无损和有损的。无损是指不影响品质,纯粹通过技术上的优化去提升整体性能。而有损是指通过简化、近似化去改善性能,例如简化着色器(shader)、要求美术降低某角色的三角形数目、要求关卡设计师减少一些NPC等。
优化前我们要先进行性能剖析(profiling),找出性能问题的核心,然后再看看有什么方法可以尝试。主要可分为算法上的和底层的优化方法。不详细说明,就举个例子吧。
例如,在二维弹幕射击游戏中,需把大量子弹与飞机做碰撞测试(相交测试)。如果有n颗子弹,m个可被击中的目标,蛮力法需要mn次测试。我们可以看情况,使用一些空间分割的算法,把子弹和目标分配到不同的空间范围里,只需对每个范围里的物体做测试。而在底层方面,我们可以考虑使用多线性、SIMD指令,并考虑到缓存一致性等方面去优化。
上述例子主要是在CPU上进行的游戏逻辑方面的优化,而许多游戏中也需要在CPU/GPU上对图形方面进行优化。在PC/手机平台上,因为瓶颈不固定,游戏开发者通常会尽力优化每一个部分。
2023-11-07 12:45:44
2023-11-07 12:43:29
2023-11-07 12:41:13
2023-11-07 12:38:57
2023-11-07 12:36:41
2023-11-07 12:34:26
2023-11-07 12:32:10
2023-11-07 12:29:54
2023-11-07 12:27:38
2023-11-07 12:25:23
2023-11-06 10:05:58
2023-11-06 10:03:42
2023-11-06 10:01:26
2023-11-06 09:59:10
2023-11-06 09:56:54
2023-11-06 09:54:38
2023-11-06 09:52:23
2023-11-06 09:50:07
2023-11-06 09:47:51
2023-11-06 09:45:36