游戏多核优化不好的原因主要有以下几点:
任务分解和结果预期性:
游戏并不适合将任务分解为多个独立的部分来并行处理。与数据类工作不同,游戏任务的执行顺序和依赖关系较为复杂,难以简单地将计算任务拆分并分配给多个核心。
并行性差:
游戏的并行性不好,不容易编写多核并行的代码。很多游戏是单核或双核优化的,即使有多个核心,也往往只使用其中一部分,导致其他核心处于闲置状态。
软件引擎和设计思路:
游戏硬件、软件引擎和游戏本身的设计思路都是从单核和简陋图形处理部件发展过来的,设计思路自然也是跟着过去来的。如果多核、多GPU的玩家多,问题可能会集中处理,但改进的速度往往较慢。
技术门槛高:
游戏想要充分利用多核,需要巧妙地将计算任务拆分成为多线程,例如不同的线程负责物理碰撞、AI行为等,这需要高水平的技术和大量的工作量。
内存访问问题:
多核编程和优化的难点在于需要处理相同内存的读写操作。如果任务之间没有对相同内存的访问,多核编程和优化会变得相对容易,但实际上这种情况很少见。
游戏体量和复杂性:
随着游戏体量的增大,优化难度也会增加。现代游戏项目周期长、bug多、优化差,这也影响了多核优化的效果。
综上所述,游戏多核优化之所以不好,主要是因为游戏任务的复杂性和执行顺序的依赖关系,以及多线程编程的技术难度和内存访问问题。要提高游戏的多核性能,需要克服这些技术难题,并且需要投入大量的时间和精力进行开发和优化。