Multi-core scalable and efficient pathfinding with parallel ripple search

Sandy Brand, Rafael Bidarra
Computer Animation and Virtual Worlds, Volume 23, Number 2, page 73--85 - 2012
Download the publication : BB12a.pdf [2Mo]  
Game developers are often faced with very demanding requirements on huge numbers of agents moving naturally through increasingly large and detailed virtual worlds. With the advent of multi-core architectures, new approaches to accelerate expensive pathfinding operations are worth being investigated. Traditional single-processor pathfinding strategies, such as A* and its derivatives, have been long praised for their flexibility. We implemented several parallel versions of such algorithms to analyze their intrinsic behavior, concluding that they either have a large overhead, yield far from optimal paths, do not scale up to many cores, or are cache unfriendly. In this paper we propose Parallel Ripple Search, a novel parallel pathfinding algorithm that largely solves these limitations. It utilizes a high-level graph to assign local search areas to CPU cores at 'equidistant' intervals. These cores then use A* flooding behavior to expand towards each other, yielding good 'guesstimate points' at border touch on. The process does not rely on expensive parallel programming synchronization locks, but instead relies on the opportunistic use of node collisions among cooperating cores, exploiting the multi-core's shared memory architecture. As a result, all cores effectively run at full speed until enough way-points are found. We show that this approach is a fast, practical and scalable solution, and that it flexibly handles dynamic obstacles in a natural way.

Images and movies


BibTex references

@Article { BB12a,
  author       = "Brand, Sandy and Bidarra, Rafael",
  title        = "Multi-core scalable and efficient pathfinding with parallel ripple search",
  journal      = "Computer Animation and Virtual Worlds",
  number       = "2",
  volume       = "23",
  pages        = "73--85",
  year         = "2012",
  note         = "doi: 10.1002/cav.1427
  url          = ""

Other publications in the database

» Sandy Brand
» Rafael Bidarra