Thank you for the reply Ashaman! I hadn't thought about dynamic vs kinematic controllers. And I guess it just felt like the path finder had to control everything but yeah, it can just execute a direct action if the object it's chasing is within its vicinity, and otherwise it uses the path finder.
The first method you had really didn't look that bad. Sure some cases it didn't handle well, but do other people notice? As long as the AI can handle most of the cases, you might just shrug and say, "good enough". You could also cheat, and ensure that all levels work with the AI, ie, just get rid of the cases the AI can't do.
(I realize neither of those might be acceptable to you, but I think it's worthwhile to at least consider them, even if only briefly)
It looks like, for the first method, it might work if you just expanded the possible move set for the character to check, and perhaps widen the search a little. It gets a little specific, but it reminds me of games like Dawn of War \ Company of heroes, which basically have a set of moves that vehicles can make, like three point turns, and tries to overlay those over the tiles, and see which ones are valid to use or blocked, and then use the end position of the valid ones to continue the next search from.
EDIT: To expand further, for example, knowing all the methods of getting to a tile that is 2 tiles to the right, and 2 tiles up, just cycle through all the possible methods. So you end up with basically an array of moves for traveling from one tile to another, for each of the X tiles surrounding the jumper. Something like the surrounding 24 tiles. sort of vaguely similar to marco pinters 24 or 48 square directional search.
This confirms what I've had doubts about, that I was doing it too "manual" or hardcoded by giving it all these cases, but I guess it's a pretty legit method.
You might want to take a look at this answer:
The answer basically says "Look at how Mario AI did it" and my question is, "I want to do it like Mario AI..how?"
I'm currently implementing the first method and it's actually playing well against a human player or against each other with a little tweaking. But I'm still thinking about doing something that searches steps in the future so it can allow for "unlimited interactivity in mid-air"
Maybe if instead of considering every possible step (left, right, up, up right, up left and no key) at each and every node. It just draws out a path from the current grid cell to the next. So it keeps left pressed until it passes 256 pixels, and same for other keys, and that would be the second node. This would VASTLY lower the search space, and of course lower its flexibility but I think by tweaking the grid size we may have something that would work great and be fast enough. Will have to experiment more with it.