44
\$\begingroup\$

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.

\$\endgroup\$
  • \$\begingroup\$ I'm voting to close this question as off-topic because we do not support questions asking for resources. \$\endgroup\$ – Gnemlock May 11 '17 at 1:29
  • \$\begingroup\$ @Gnemlock Glad you caught it in time. Wouldn't want an off-topic question lingering here. \$\endgroup\$ – Ricket May 11 '17 at 17:17
24
\$\begingroup\$

The Don't Dread Threads series by Intel, is quite good. It has 3 parts, the basics are covered in the first 1.5 of them.

Summary of what was covered in first 1.5:

Avoid Functional Decomposition

enter image description here

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

enter image description here

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.

enter image description here

It's kind of like a bunch of people eating a pizza. Everyone takes a slice until the pizza's done.

enter image description here

Of course, now I'm hungry.

\$\endgroup\$
10
\$\begingroup\$

A brief overview of Multi-threaded engine approaches. Gamasutra to the rescue.

\$\endgroup\$
5
\$\begingroup\$

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'.

\$\endgroup\$
1
\$\begingroup\$

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.

\$\endgroup\$
0
\$\begingroup\$

The book Game Engine Architecture does also have some informations on how to design a game engine with multi threading support.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.