I was researching Xbox 360 development, and Microsoft recommends multithreading your game. The A6 engine in DLL form is multithreaded, no? If so, what is the nature and extent of the threading, and how much do I need to do in my C-Script to use that (if anything, which I imagine I don't)?
For the most part A6 is not multithreaded. However, for stability reasons the physics engine is running in its own thread which is synchronized with the main thread. I would be interested in reading the MS statement since I don't see too many spots where multithreading would be useful in a game engine.
I've read that the new engines in coming years will have to be multithreaded to take advantage of the multiple cpus found in new computers and consoles. Such as the PS3 which I believe has 8 cells/cpus. On the other hand, some say its not possible to completely multithread an engine. Is this true? If so, then how are all these cpus going to be taken advantage of past using them soley for physics? I don't know too much about the inner workings of engines, and thank you for any further understanding on this.
I've read about the next generation of multithreaded engines, as well. Unfortunately, I can't find a really good link I read about it and how it should be done. Also, for actual game development, there will be "microthreads" with a very small overhead and none of the problems of regular threads, so that you can run each entity in its own thread. This can already be done with Stackless Python.
Quote: I would be interested in reading the MS statement since I don't see too many spots where multithreading would be useful in a game engine.
When you have to feed 3-8 cpus, multithreading is a must have.
Anybody who is thinking about writing engines for next generation machines should study it. But poorly done multithreading can slow things down and cause stability problems, so you shouldn't do it lightly.
3DGS doesn't have lots of threads because it is build to run on a single CPU. When multi-CPU systems become more common, or if somebody hires us to write for a next-gen console, we will make more use of threads.
In my experience, A6 is plenty fast enough on a single core, even for intense or expansive games. I'm fairly certain that the game I'm doing will run fine on a single 360 core, assuming I can build (or discover) the bridge between the A6 DLL and the XNA Build tools. I'm doing an RPG, so the most intense thing for me will probably be the graphics, which should be more than capably handled.
Later today, I'll do some testing with the tools and report back.