One of the keys though, is a way for us to get them to go around something that's blocking their path. They need to stop, wait a second and then transfer to pathfinding. Players can set mini-circles around their obstacles and we'd effectively have full-world navigation.
Also, I don't see any way for a bot to cross from one object's waypoints to anothers. Think about giving us parameters that are built directly into the waypoints. Perhaps a set of tendency percentages that will help direct the AI's decision, built right into the pathing editor. Some tendencies could be "pause here", "maintain forward", "Turn around", "scan for enemy", "move to new object path(@object)". If no values are set, the tendency is ignored.
That way, we could put like 8 points around a building that if the AI encounters while on a chase, he uses the paths to go around and once he gets to a particular point, he breaks and goes back on the hunt, based on the path information, not his own constant checks.
Squat,
some very good requests / points ...
This is starting to head into the same direction I was going ...
I think what you are in essence describing is a way for the NPC/Bots to perform some advanced level pathfinding (incl. obstacle avoidance) ...
Ideally, they would be able to respond to dynamically changing environments. As a matter of fact, there are some algorithms to do that ... most of them are based on an A* pathfinding algorithm with some additions for a.) changes to the paths during runtime and b.) restricting the (re-)calculation of the path (google "Constrained Dynamic Route Planning" or CD* algorithm).
But all these algorithms require a 2D graph, so the bot knows where to traverse. Putting the nodes into a level will most likely always be a manual task, but generating the edges connecting the nodes could be automated (see what IntenseX is doing in 3DGS). The GC path points are woefully inadequate for this, because they merely connect point A to point B and the Bot can use it as a "rail" to move along, not to independantly navigate through the level.
Enhancing Bot AI to include various behaviours requires some sort of control mechanism (either a pure finite state machine or a "goal based" AI). That way you could have different reactions / behaviour.
But this is something that (from what I now understand) can be handled through the layered AI that GC supports. However, GC does not intrinsically provide such complex AI (neither does 3DGS !). It needs to be programmed (and it is no trivial task ... the IntenseX folks have worked on it I think for nearly two years).
So basically, what needs to be programmed (by someone ... it's not automatically Gekido's job to provide everything we need) is:
a.) A good pathfinding functionality (A* or even better CD*)
b.) A "Grid Generator" that builds up the pathfinding graph
c.) Some AI control code - the basic state machine support in GC goes a long way towards this, but GOAP (Goal Oriented Action Planning) would be "better"
Cheers,
Andreas