View Single Post
Old 18th December 2007, 08:04 PM   #7 (permalink)
humndislocation
Hardcore is serious guys
 
humndislocation's Avatar
 
Join Date: Mar 2003
Location: Dundee
Posts: 5,933
Band: Blasphemous Necrorapist
humndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond reputehumndislocation has a reputation beyond repute
It's very difficult to program game engines to make efficient use of multiple cores.

Multithreaded programs are bottlenecked by the parts of the code where multiple threads have to share data, or have to work together in some way.

The most efficient multithreaded programs, are ones in which the threads can all go off and do their own thing, without needing input from the others. Vertex shaders are a good example of an algorithm that works well on multiple cores. Each vertex sent to a vertex shader is completely independant of the others, and doesn't rely on data from other vertices.

Because of the nature of a game, a lot of parts of the game have to work together, for things to work properly. For example, collision and physics will affect the decisions that NPCs can make. For example, an NPC can't be walking around or attacking players after he was just ragdolled by a car collision. He can't walk through a solid object that's just blocked his only path to the power-up he was route-finding to. AI have to be made aware of recent events in these subsystems.

Last edited by humndislocation : 18th December 2007 at 08:11 PM.
humndislocation is offline   Reply With Quote