Actually, I don’t think anything could make multithreading less difficulty for a developer, short of ancient Aztec magic. You know, because the Aztecs were just awesome with the whole concept of hardware threads and “Tony” units.
Unable to tap into whatever the Aztecs knew, Microsoft has come up with its own solution. Well, for the Xbox 360 anyway. Included in the August 2007 SDK for the console was a new library, called XMCore.
Microsoft’s Pete Isensee detailed the features of the new library at Game Connect last weekend. To put it simply, XMCore will make “lock-free programming” easier for game developers.
So what the hell is lock-free programming?While there’s multiple ways to approach multithreading, one method Microsoft recommends is called “message-based concurrency”. Using message-based concurrency, each thread owns its own data, and instead of threads accessing common pools of data, they send chunks of information between themselves.
The problem is, in order to write to a piece of data, a thread has to “lock” it, to prevent other threads from tainting it while the work is being done. Managing data locks can be a massive headache for a developer, and, despite the performance benefits and scalability of message-based concurrency, it’s just too tricky and time consuming to implement. According to Isensee, it’s also incredibly easy to get wrong.
With XMCore, locks should no longer be a barrier to making message-based concurrency work. That’s the plan anyway.
Don’t worry PC users – Microsoft’s intends to trial XMCore on 360 and, if all works well, bring it across to Windows.
If all of this has gone over your head, basically it’s good news for multi-core games development… if you own a 360 or PC.