Have you played any of the unreal tournament games? The way it pathfinds is like what you're asking. It uses a graph ( a bunch of nodes connecting to each other. It actually pre-calculates pathfinding, but you don't need to worry about that at first )
Looking at the image, image 1 = health,l 2=flak gun, 3 = ammo, 5 = flag, etc... If a bot wants to go from 3 to 5, you can use A* to find the path.
It just needs a graph ( a bunch of nodes, which can connect to other nodes ) The actual (x,y,z) location of the nodes doesn't matter. ( But if the distance is too far, you need to take that into account by the weight, or, add a node between them )
a graph, as in just a regular x, y kind of thing? I don't need an overly complex library, is something less complex available?
You can use a regular list-type of tiles. And each list item holds a list of pointers to all tiles that it connects to. If you are doing a tile based map, using a 2D array could simplify things. ( using numPy )
# this is a bad example, but, to give you an idea:
>>> class Tile(): >>> def __init__(self): self.clist = []
>>> t1 = Tile() >>> t2 = Tile() >>> t3 = Tile()
# 1 connects to 2 and 3 >>> t1.clist.append( t2 ) >>> t1.clist.append( t3 )
# 2 connects to 1 >>> t2.clist.append( t1 )
# 3 connects to 1 >>> t3.clist.append( t1 )
# map a list of Tile()s >>> map = [t1, t2, t3] -- Jake