Why 64-bit and Multiple cores matter

Published on Sunday, April 21, 2013 By Brad Wardell In PC Gaming

imageThere are two main problems game developers, particularly *strategy* game developers are trying to deal with these days:

1. Memory


2. Feeding the GPU

There's almost a third which involves CPU starvation which has to do with the poor way we handle our data structures but that's a lesser issue.

Now, with regards to memory, we can say all day that graphics shouldn't matter but they do. Forums are full of people saying how much they still like some old game but the fact is, visuals matter. A lot. It has nothing to do with coding ability. High resolution textures use a lot of memory. Moreover, Megatextures (which help with CPU starvation) use a ton of memory in exchange for greater performance, especially on lower end hardware.

People like pretty graphics and the 2GB limit we've been programming to since 2001 remains the same. On a 32-bit setup, you'd be hard pressed to beat the visual experience of Supreme Commander or Age of Empires 3 even today. Memory, not CPU or GPU, is the limiting factor on strategy game visuals.

As a result, we developers have had to find other ways of improving the visuals of strategy games while staying in 2GB of memory. We limit zooming out. We design games that have fewer units in them (there's a reason that Sins of a Solar Empire hasn't gotten a 4th faction, there's not enough memory).
Going 64-bit solves that problem right away.

Second, feeding the GPU. This is where cores come in and DirectX 11. Having a large chunk of the market sticking with Windows XP until recently was really painful because DirectX 9c only allows one thread to interact with the graphics driver. So all those cores you have on your CPU could do some nice things but at the end of the day, only 1 thread can interact with the GPU. DirectX 11 fixes this completely (other than video drivers that serialize things still but that's an issue that is being addressed). With DirectX 11, every thread (which are enhanced by your cores) can talk directly with the video driver.

When you combine these things, you could potentially have strategy games that comapre well to scenes from The Two Towers. Note that none of the Unreal engine demos take on that kind of scene. Pay attention to the number of units/objects in a given scene. To be able to show entire armies battling it out in amazing cool detail you need memory and you need multiple cores sending stuff to the GPU in parallel.