The wavefront-expansion pathing algorithm described in the paper is very similar to the approach in the roguelike game Brogue [1], whose author refers to as using "Dijkstra maps". The game uses it for many purposes, such as seeking the player, fleeing, finding food and treasure, and even auto-exploring [2]. It was also one of the discussion topics when the game featured on the Roguelike Radio podcast [3].<p>[1]: <a href="https://sites.google.com/site/broguegame/home" rel="nofollow">https://sites.google.com/site/broguegame/home</a><p>[2]: <a href="http://roguebasin.roguelikedevelopment.org/index.php?title=The_Incredible_Power_of_Dijkstra_Maps" rel="nofollow">http://roguebasin.roguelikedevelopment.org/index.php?title=T...</a><p>[3]: <a href="http://roguelikeradio.blogspot.com/2011/10/interview-brian-walker-aka-pender.html" rel="nofollow">http://roguelikeradio.blogspot.com/2011/10/interview-brian-w...</a>
The mob motion reminds me of Liquid War.
Details about their algorithm at <a href="http://www.ufoot.org/liquidwar/v5/techinfo/algorithm" rel="nofollow">http://www.ufoot.org/liquidwar/v5/techinfo/algorithm</a>
Seems pretty straightforward.
The 'wavefront-expansion' algorithm does a breadth-first expansion from the goal node, to every other node. As this is done, the distance from each node examined, to the goal, is stored.
Afterwards, in order to move towards the goal, an entity at a particular node, moves to its neighboring node that has the shortest distance to the goal.
Have you seen this paper: <a href="http://grail.cs.washington.edu/projects/crowd-flows/" rel="nofollow">http://grail.cs.washington.edu/projects/crowd-flows/</a> ? It touches on many of the same issues.