Quote:
RTS can benefit greatly from multi-threading. Supreme Commander 1 in 2007 supported at least 8 threads.Originally Posted by TranquilTempest 
It's true that some tasks are difficult to split into multiple threads, but the vast majority of software isn't anywhere close to that. Take the main loop of a game engine, RTS for example, I see no reason I/O, rendering, pathfinding, unit creation, collision, AI, physics, and unit removal can't run simultaneously, Most of them may have to complete their tasks every iteration, but you can start them all from the state of the previous loop, and update the master game state in a deterministic manner after starting all the tasks. You're still limited by whichever task takes longest, but you know where to optimize. The best reason not to do this is that the target hardware is fast enough to run it all in one or two cores at acceptable framerates.

It's true that some tasks are difficult to split into multiple threads, but the vast majority of software isn't anywhere close to that. Take the main loop of a game engine, RTS for example, I see no reason I/O, rendering, pathfinding, unit creation, collision, AI, physics, and unit removal can't run simultaneously, Most of them may have to complete their tasks every iteration, but you can start them all from the state of the previous loop, and update the master game state in a deterministic manner after starting all the tasks. You're still limited by whichever task takes longest, but you know where to optimize. The best reason not to do this is that the target hardware is fast enough to run it all in one or two cores at acceptable framerates.
However, FPS do not as much. Most processes are dependent on one single function.... real-time user input. So no matter how threaded the game gets, many process still run off user interaction. Being the case, how much does further threading benefit the end-user? If some process requires 1% of the CPU, is it worth throw it off into separate thread?
i.e. BF3 runs about 30-40 threads.












