December 30, 2008

Spore is horribly single threaded

I received Spore for Christmas and so far I do like it. It’s not exactly what I had hoped but its a fun distraction. One thing that bugs me though is how often the game slows down. Entering a planet’s atmosphere becomes slower and slower as more models are no longer kept in the graphics cache. What’s odd though is that PC specs are well above the recommended system requirements for Spore. To simply explain, in the Windows Performance Ratings my computer rates at 5.2 while Spore recommends a computer rated at a 4. Why should I have a problem?

I investigated and looked at one of the most important performance bottlenecks today: the lack of multi-threaded programming. Using the Vista’s built-in performance monitor, I checked CPU core usage over 30 minutes of game time. The graph below illustrates the problem.


Look at the core in yellow. At no point does its usage go above 20% while the purple core goes to near 100%. In short, Spore is not correctly multi-threaded. What’s silly is that model generation can be done in a totally parallel fashion since models aren’t dependent on each other. AI requires some level of connection but a large amount of the computation can be done separate.

To sum it up: EA got lazy and their customers suffer because of bad multi-core performance.

No comments: