I was reading about flow fields recently, and they look really good for fast and fluid pathfinding for large crowds. I was thinking about putting together a "fortress" type demo in which thousands of agents are traveling around the fort doing various tasks.
Basically, if you don't know, a flow field is a set of vectors over a space which give each location a direction. The idea is that if you have a finite number of interesting places, then they can have a vector field already calculated, and if someone wants to e.g. go to the infirmary they just look up the infirmary's vector field where they are, then "flow" in that direction, instead of running pathfinding.
Obviously if there are a large number of "interesting" places to go or deformable terrain this complicates things a bit more, but the benefits of having pre-calculated paths already worked out is too interesting to ignore. I've been thinking about how compact a flow field could be. If you encode 2 bits as left/right/up/down then that's enough, you can infer diagonals by looking at the code in the next tile you want to move to. With a 64 byte cache reads, that's 512 bits, or 256 tiles, or each memory access gives you 16x16 tiles of pathing data for a single flow-field.
A good design might be to enforce a system of "zones". e.g. give the player incentives to create areas with related functions, living space etc. inside the zones, normal pathfinding would be used, and each zone would have a related flow field which directs visitors towards the zone.