Multithreaded Cold!

Got back from my ski week-end with a cold :(. However, temperature was perfect and the conditions were awesome. I stopped skiing 2 years ago because it got boring but I must say I really enjoyed it this time!

Lately, I’ve been monitoring a thread on the GDAlgorithm mailing list about multi-threaded game engine programming. This is quite the hot topic these days with dual core processors becoming more and more mainstream and the next-generation gaming hardware like the Xbox 360 and the PS3.

I’ve always been more concerned with the rendering part of the engine and used to get away only knowing a little bit about what else was going on elsewhere in the engine. However, with all the problems multithreading brings, from a design perspective, you need to be aware of a lot more and design really carefully. Otherwise, you’ll be in a lot of trouble later on when weird things start happening and you need to spend hours trying to figure out why you get a certain deadlock and find a way to fix it in a flawed design.

Nobody can claim to have the solution to all the problems because this entirely depends on the technology (read engine) you’re using. Of course, when designing and building an engine from the ground up, you can plan ahead, but oftentimes you have to refactor and re-enginner what you have on hands and that’s where the nightmare begins!

Here are a couple of links to multithreaded programming where you’ll be able to gather more info on the problems and techniques this new challenge brings:

David Wu’s GDC talk – http://www.pseudointeractive.com/games/DavidWuGDC2005.ppt

Article on Kyle Wilson’s site – http://www.gamearchitect.net/Articles/ManagingConcurrency1.html

Herb Sutter – The free lunch is over: A Fundamental Turn Toward Concurrency in Software

Insights on how Ageia does it – http://ageia.com/pdf/NovodeX Physics SDK Documentation.pdf

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: