Multi-Core CPU optimized Games?

How can you tell what games benefit from multi-core cpu's?

Also, aside from personal bias between amd and intel; 4, 6, 8 cores, how much of a difference does the number of cores make when they run about the same GHz?

I know Crysis 2 and Crysis 3 can utilize up to 12 cores, Planetside 2 can utilize up to 6 cores, and most PC games released in the past 4-5 years can use up to 3-4 cores, with 5 years being a stretch...

Clock speed performance is debatable...and is difficult to compare since there have been several generations of CPUs in the timelines I mentioned, and you can't directly say that moar Megahertz = moar frames when you compare, say a quad core, to an 8 core. You have other things that matter too, like L1, L2, and even L3 cache to a certain extent.

I don't really understand multi-core optimization well enough to go into detail.

infested planet has an option for how many cores to run

A newish paradigm in multi-threading is so called task-based concurrency. This involves breaking the game logic into as many discrete "tasks" as possible, then assigning them to be completed by some number of worker threads. This should scale very well to a large number of cores, to the point that, say, an 8350 would perform twice as fast as a 4350 at the same clock speed. The only game I know of that does this today is Civ5, but there may be a few others.

The more common paradigm seems to be "break the graphics into one thread, the AI into another thread, etc.". Often, this is done because it's the most obvious way to do things. This does not scale past a small handful of cores, and it's quite inefficient compared to the task-based approach. Each thread is dependent on the others in complex ways, and this causes a lot of waiting around for other threads to finish. So much waiting, in fact, that even games with 8 threads may perform identically on CPUs with 4, 6, or 8 cores.

Another common approach is to design the game as if it were single-threaded, but break individual steps into multiple threads where possible. For example, say one step of the game logic is pathfinding. Pathfinding for n entities can usually be broken into n threads. This is good scaling. However, at some later stage, the engine has to interface with DirectX or OpenGL. This can usually only be done with one thread, two at best. For this stage of execution, the scaling is really bad, and the other cores are sitting around with nothing to do. This can essentially be thought of as single-threading, with some help.

The last one is most often employed by game engines written before multi-threading was common, and were not rewritten to take advantage of it, just tweaked a bit. Arma most likely uses that. It explains why (1) it vastly prefers Intel CPUs with their high per-core performance and (2) it does not much care how many cores there are, despite claiming a high level of multi-threading.

So how do you tell how efficiently multi-threaded a game is? If it employs the first strategy, relative CPU performance closely resembles IPC * clock speed * number of cores. If it's the second strategy, core scaling drops off dramatically after a certain number, usually 2 or 4. If it's the third strategy, the game basically runs like shit regardless. More seriously, it runs like a well-optimized, single-threaded game. Hybrid approaches do exist, of course, and individual games still perform differently on some CPUs for more complicated reasons.

At the end of the day, benchmarks are still the only real way to know how a given CPU will run a certain game.

I believe Battelfield 4 can use at least 8 cores, but don't quote me on that.

Hey, thanks for the reply. Very insightful. Always enjoy getting information on things I don't know.