Let's say all 8 directions are covered in a tile based game around the target, would movement never end? It's this instant where getting to the target is impossible that I want feedback on.

A* explores all open nodes. It's a fantastically dumb pathfinding solution, but it's also really easy to implement and highly generalized so it will work with just about anything. That's why DM uses it.

When the destination is reached, that's called an early success and we don't have to investigate other nodes.

When the destination can't be reached, though, we have to exhaustively search every single possible node that is reachable. This is worst-case.

Unfortunately, one-directional A*'s ability to detect early failures is a major downside to the implementation.

I wrote a BDA* implementation, but it could probably do with some cleanup and optimization.

http://www.byond.com/forum/?post=1666799

Pathfinding is something you can dump years of research into and make zero headway. I know. I've done it.
In response to Lummox JR
Ah, I see. I was confused and thought the process itself was failing in some way.

One thing you could do is turn those failure conditions (1000 steps) into parameters for the various pathfinding procs and just let developers handle it on their own, deciding how they want to deal with lengthy pathfinding checks.
The pathfinding is really ingrained in the language (in kind of an uncomfortable way) so I'd have to make major changes to add more params. That was really unpleasant when pixel movement rolled around. Still, I suspect that simplifying the whole setup is worth doing at some point, especially if I can let something like a list path fall out of it.
+1.

It'll be a lot of effort, but having effective pathfinding is really important to a large number of games.

Dang, I was hoping the adjustments I made not too long ago would have made a bigger impact.
In latest beta you've actually cut down world.cpu of 10 to 0 in the game where it troubled me but that game doesn't use pixel movement.
Page: 1 2