The Quest for More Processing Power, Part Two: "Multi-core and multi-threaded gaming"by Johan De Gelas on March 14, 2005 12:05 AM EST
- Posted in
Threads & GamingTim gave us some extremely interesting information. Yes, the extra computing power of multi-cores is welcome in the gaming industry. Better game physics, animation and intensive and accurate sound effects are made possible with more than one core.
 Galactic Civilizations is another example of how game developers can make good use of multithreading. This galactic domination game, which has a lot of emphasis on diplomacy, research and empire management, needs an AI with the most complex decisions. By multithreading this engine, it is possible that the game engine is thinking while the player is playing instead of working turn-based. In the next years, we may expect much better AI. But the price (game) developers have to pay is high: a multithreaded game engine triples or at least doubles the development effort, as Tim told us.
The tools, which Intel advertises in almost any multi-core presentation, are next to useless for the problems that the developers face, as Tim explained. Auto parallelisation is a nice trick to increase the spec FP score, but it is next to useless for a real world application. The good news for Intel, AMD and others is that the CPU will play a much more important role again. Physics, Artificial Intelligence and animation can be improved significantly by being parallelised and using the extra capabilities in dual core CPUs. But there are limits to Thread Level Parallelism. While increased ILP (Instruction Level Parallelism, IPC) might require exponentional increasing efforts of the manufacturer, using more and more threads, or increased TLP (Thread Level Parallelism), requires exponentional efforts from the developers. Tim clearly emphasizes that only parts of the application can be economically parallelized. Increasing parallelisation, using more threads, is simply not feasible. There is a pretty hard economic limit to TLP.
Tim Sweeney resumes:
"You can expect games to take advantage of multi-core pretty thoroughly in late 2006 as games and engines also targeting next-generation consoles start making their way onto the PC.
Writing multithreaded software is very hard; it's about as unnatural to support multithreading in C++ as it was to write object-oriented software in assembly language. The whole industry is starting to do it now, but it's pretty clear that a new programming model is needed if we're going to scale to ever more parallel architectures. I have been doing a lot of R&D along these lines, but it's going slowly."