and I thought I was on the edge with my 8 cores.
Well... if you have the money, you can buy a system with 48 cores...
http://cgi.ebay.com/NEW-TYAN-AMD-OPTERON-6174-G34-48-CORE-MAGNY-COURS_W0QQitemZ270529337772QQcmdZViewItemQQptZCOMP_EN_Servers?hash=item3efcce19acI'd really like to see the render times on that monster. Though that's the only thing I can think of that might use all cores.
The problem is still that the engine was never designed for that kind of abuse (and the lack of documentation certainly doesn't help).
FSO relies heavily on global structures, and synchronising access to those is likely to be an extremely difficult task.
Just think about what would happen if you tried to call the dereference operator on a vector at the same time as another thread was doing an insert or push_back operation (yes, particles, looking at you). You'll crash straight away and not know why, and worse still, it'll be an intermittent crash that won't show up easily.
Not to mention that MT is just difficult to start with. SCP does not have anyone with sufficient experience to do MT reliably in FSO.
I know it won't happen, just because it needs to happen. It's not like I know what the solution is either...
All I'm saying is, that when I have slow-downs in FSO, most of the time is caused by the CPU limitation, which is a shame, because FSO only uses one of my four cores.
The real question is: Does FSO have a future without MT?
If it doesn't, what can we do? Is nobody here interested in learning MT coding?
From here on I doubt we'll see many non-MT games anymore, except for small freeware titles.
In fact I think more and more games will not only use MT (more and more cores), but also make use of GPGPUs (via OpenCL, CUDA, Stream, ect.).