In today's exclusive Gamasutra Technical Feature, veteran application engineer Holger Gruen guides us through proper terrain smoothing via threading in multi-core processors.
"Creating a multi-threaded game engine is a challenging task," says Gruen. "Various game tasks like rendering, Artificial Intelligence (AI) computations, physics or collision detection often rely on the sequential availability of results from other game tasks. If game engine developers choose to run several different game tasks, like physics and rendering, in parallel (task level parallelism) it can be complicated to have required results from other tasks available in time. After all one does not want to add too much synchronization overhead. The other possibility is to work on several problems of the same kind in a data parallel way (e.g. path finding for 4 characters in parallel). To be as efficient and as scalable as possible your game engine should ideally be implemented using a mixture of task level and data level parallelism. This guarantees scalability for more cores to be available."
You can read the full Gamasutra feature
, which includes downloadable source code (no registration required, please feel free to link to this feature from external websites).