As is understood, the Pathfinding behavior basically plots waypoints from Point A to Point B. These waypoints are largely straight lines and, depending on the cell sizes that the waypoints occupy, there is not a lot of "natural" movement when using the behavior to work as part of an AI system.
It would be helpful if we could make it so Pathfinding generates and moves along its paths based on how an object would move with other movement behaviors. (Obviously, some will not work so well and Pathfinding already moves very much like the Bullet behavior as it is.)
The movement behaviors I think might work well in conjunction with the Pathfinding behavior are:
- Tile Movement
- 8 Direction
- Movement along the path is largely dictated by the Car behavior properties.
- Movement can be progressed or regressed along the path (Point A to Point B or Point B to Point A).
This is potentially beneficial if the object while moving along the path gets stuck on a wall/solid object and cannot complete its path... Instead, in such cases, it can be instructed to reverse direction and even recalculate its path to its destination
- Allow for a steering speed high/low range to make moving along the path easier (such as when turns are too tight).
For instance, if moving at higher speeds, the turning radius will be smaller. Lower speeds will make turning easier. The turning radius would adjust according to the moving speed co-dependently. This figure could also be added to the Car behavior, itself.
- Given the properties of the Platform behavior (move speed, jump, gravity, etc), plot a path for the object to move about the environment so that it moves on its own. Essentially, instant AI.
- This has tremendous potential in that developers could use this as part of a tutorial level for their platform games or as guides during an in-game story element, etc.
- Add a feature that periodically checks that all objects used to calculate the path (and only those objects to avoid needless excessive CPU overhead) are still in place. This would probably be best done through an event check.
Tile Movement and 8 Direction
- Functions largely similar to their normal movements, but restricts Pathfinding exclusively to how these two behaviors operate... I recognize that trying to conjoin Pathfinding with these two movements might be redundant. But maybe someone sees something I don't...so, I included them.
Finally, my amendment idea for Pathfinding, itself, is the ability to have objects seek out waypoints at offset. To offer a slightly more varied movement system, the object would reach its X/Y destination within a given range of the destination or waypoint.
For instance, if the current destination (or waypoint) is at coordinates 10, 10 and the offset range is +/- 5, then the object would arrive anywhere in the range of 5 to 15 on the X-axis and 5 to 15 on the Y-axis. However, if the obstacles listed would conflict with this range, then the range is reduced accordingly.
While I have no idea how these ideas could be implemented in reality nor how difficult it might be to do so, I hope that's clear enough and I thank you for your time to consider it. Have a great day, Scirra Bros!