Originally Posted by NamelessPFG
I'm just left wondering why the heck PlanetSide 2, ArmA III, DCS World, etc. run so poorly with anything short of the latest Core i5/i7s overclocked quite a bit. Seriously, just fire up PS2 and go to some hotbed of activity like The Crown, or whip up a quick mission in DCS with a lot of AI units around, and your framerate is gonna tank below 20 FPS in all likeliness. (Of course, that's on an old Q6600 overclocked to 3 GHz...) Whatever the case, those games are bottlenecked so hard by the CPU that even SLI GTX Titans will leave you seeing slideshows at times.
Is the code just that hard to parallelize, to the point where single-threaded performance is still a priority for game engines?
And of course, they're planning on porting PlanetSide 2 to the PS4...I'd like to see how the hell they're going to pull that off without it going into slideshow mode.
Quote from the above article:
Our engine sucks at that right now. We are multi-threaded, but the primary gameplay thread is very expensive.
As it says, the primary gameplay process/thread usually is heftier to calculate than lesser processes involved. I'm not completely sure what parts can and can't be parallellized as I'm no programmer, but I would guess that sound effects, logistics and physics can be separated into their own processes to some degree, but because they all interact and require information from each other, you can't just split them into smaller processes. Programming in parallel is difficult to comprehend for anything other than "simple" embarrassingly parallel workloads, which sort of make sense even visualized in layman's terms (like multiple threads rendering equally big parts of an image..)
I don't think you're running into memory bandwidth issues though, I mean, look at Minecraft, it's relatively simple as a game but has to handle volumes of voxel data and freezes on the mightiest machine if you spawn too much TNT and make it explode.
But yeah, DDR2 and DDR3 didn't really make a big difference, neither will DDR4 as the other components (and programming, as noted here) lag way behind in an enormous majority of cases.