Wed Nov 14, 2007 11:47 am
As much as I think the game could benefit from it for the non programmers out there its not like you simply go into the code and change a value to "on". You have to declare seperate threads and then actively put the language around the part of the program you want to run on that thread.
The KEY part to understanding how difficult this can be is that threads running on seperate processors have very very limited ways of communicating with one another. So if you want to have a process running on a thread that sets a condition that another part of the program running on a seperate thread can then use you have to use timers and other thread conditional logic.
In other words coding a single application to use multiple processors is ALOT of work. Multiple processors mainly benefit when seperate programs run on different processors that have no need to communicate to the other program. Like running IE and Word simultaneously and allowing the OS to put those programs on seperate processors. This is the simpliest and most commonly used application of multiple processors and in some cases can simply be switched "on" by a game, like telling the sound or video driver to run on the other processor and this is really only available when the driver programming itself allows for it Basically this is the difference between changing the cover sheet of your thesis or going into every page and re-editing every sentence.
Although full architechting of games from day one of coding to fully integrate multiple threads on multiple processors can have HUGE performance increases, you can very easily see this in Supreme Commander.
Sorry for the diatribe just wanted to step in and point out that what your asking is for reverse engineering of a completed game is an enormous amount of work. Not to mention that thread IPC (inter process communication) can be a real nightmare to debug. Putting serious multi threaded code into an existing single threaded engine could potentially be more work than simply re-writing the game from scratch.