It is common for modern video games to be badly optimised due to, partly, inefficient usage of multiple cores on a CPUs.
I’d assume that developers know this, but don’t have the time to rectify this.
So, therefore, what are the difficulties in utilising various cores of a CPU effectively? Why does it require so much focus, money, or perhaps time to implement?
In: Other
Two reasons
1) one is legacy, 15 years ago a game would be slower if it was multithreaded as there is a cost to context switching. While modern CPU’s are far better at this sometimes it takes a while for everyone to adapt. However the latest cpus have heavy versus light cores. So now you kind of want to still have one big heavy thread going to make sure the OS and CPU assigns it to a performance core.
2) locking isn’t free nor is it easy. I’m trying to think of a comparable example. Maybe think of things like sequenced swimming competitions, an air show with multiple plans or even a ballet.
It’s very different problem to have one person or object (a plane) doing tricks. But when you have 20 people doing it then each object has to be careful not to interfere with the others except at designated points in time.
The same thing about just doing work. If you know what needs to be done, you can just do it yourself. But if you get 20 people together for the same job, it’s not going to finish 20 times faster. Additionally you’ll be spending far more time trying to “manage the chaos” than doing the work yourself.
Latest Answers