> Navigation meshes, visibility graphs, and hierarchical approaches are all worth a look.
Navigation meshes in particular are worth consideration. There is a great reference here [1] from Epic Games about navigation meshes, and why they made the switch from a traditional node-based graph to them for the Unreal Engine. Although for most simple cases, a graph is much easier to conceptualize and implement.
[1] https://udn.epicgames.com/Three/NavigationMeshReference.html