Skip to main content
GameDev.net gamedev.net
🔒 Locked

Multi-threaded Design?

Started by TheAsterite May 12, 2013 at 8:33 AM 1 replies 2.7k views
Original Post
TheAsterite
TheAsterite

So as of now, I have a somewhat decent grasp about how to break up jobs into smaller parts for parallel processing. I wanted to move to designing an engine framework that revolved around handling different systems such as physics or rendering as different threads when I came across this article by intel: http://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine.

It seemed really interesting, so I downloaded the source code to their demonstration and was looking at it.

My question is, how relevant is this paper today? Is this scheduling technique used widely in the games industry?

AgentC
AgentC

My view is that the Intel Smoke framework is somewhat over-generic (universal scene, which is extended with system scenes, change management) and some of its concepts are dubious, such as conflict resolution if several systems change the same property such as object transform (IMO that should not happen in the first place.) It doesn't really address the ordering of tasks within a frame, which doesn't hurt in the demo, but in an actual game it could lead to nasty non-determinism if for example AI is sometimes running one frame ahead, sometimes one frame behind in respect to physics. I'd consider it potentially dangerous if used directly as a basis for learning or for own engine.

I'd recommend, at least in the beginning, to be very explicit (even hardcoded) of what systems or tasks are actually running simultaneously, and what are the changes they're propagating to each other. For example physics updating object transforms, which the renderer picks up. Then profile constantly to discover the bottlenecks and to able to decide if threading will actually benefit them.

Some more resources (in case you're not familiar with them yet)

http://www.gamasutra.com/view/feature/1830/multithreaded_game_engine_.php

http://www.gamasutra.com/view/feature/2463/threading_3d_game_engine_basics.php

http://bitsquid.blogspot.fi/2010/03/task-management-practical-example.html

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.