What are the best resources on multi-threaded game or game engine design and development? As this is obviously where computers are headed, I intend to study this topic and I'd like to know what resources and examples are out there.
Some intel resources.
The Don't Dread Threads presentation by Intel, is quite good.
Summary of what was covered in first half of the presentation:
Avoid Functional Decomposition
First of all, they discourage using Functional Decomposition. Functional decomposition is just "put the AI on one thread, put the audio on another thread, put the graphics on the 3rd thread"
So that kind of looks like this
So that's __bad__™. Instead you want to use Data Decomposition.
Use Data Decomposition
Data decomposition means you cut up every thing in your game into small achievable tasks. You spawn x threads, say 4, and then for each of those 4 threads they continually grab a task from the task pile and work on it until they're done.
It's kind of like a bunch of people eating a pizza. Everyone takes a slice until the pizza's done.
Of course, now I'm hungry.
Here's a blog post that provides a practical example in task management. It assumes some knowledge about parallel engine design on your part but you might still find it useful as 'advanced reading'.
I think you should look into a task- or job-basedd approach.
Game Engine Gems has 2 or 3 articles on the subject.
There have been a couple of presentations on the subject at different conference etc.
For example "Parallel Futures of a Game Engine" by Johan Andersson
Also take a look at the GDC Vault there are a number of presentations and full videos on the subject in the free section. http://www.gdcvault.com/
ps. Couldn't post any more direct links due to being a new user. ds.
The book Game Engine Architecture does also have some informations on how to design a game engine with multi threading support.