Marcel

Results 68 comments of Marcel

I'm sure that even in the originals, PCs frequently turn around and go for another route when their allies ahead shortly block a narrow way, let's say passing a door....

Yes, the more `XYZ re-pathing ignoring actors` in the log appears, the longer to wait. Bumping-check is implemented by this: https://github.com/gemrb/gemrb/blob/71bb2f80ecbd4ce0604672b5078b7be8b2569ea8/gemrb/core/PathFinder.cpp#L374-L375 Hm, maybe we can exempt party members from this...

That's just the path planning here, the actual can-bump-on-step test is in `DoStep`. If re-pathing is about to be done, this particular actor check goes away anyway, unless there is...

The bad news: When exhausting on a big map, the algorithm is simply expensive, all the observed frame drops are a result of unfortunate geometry/searchmap blocking. It is especially bad...

The algorithm is fine. I'm thinking about some pre-processing, like: Test whether and what party members are close together (by radius) and whether they have a passable, straight line of...

I've been playing around with other approaches of path finding without calculating so much. One of the attempts looks like this: ![pathfinding_idea](https://user-images.githubusercontent.com/238558/206873077-c2897f69-0f06-4a94-b057-7abd5e96bdaf.jpg) 1. Try to find groups of PCs that...

I see these main issues: - The path calculation may be exhausted in some cases. This is fine, but is a real performance pain on large maps with a full...

This problem is even more extreme when playing on higher FPS. I propose another idea: We apply some kind of flood algorithm in a way that two legally adjacent, non-blocking...

> That wouldn't change anything for door approaches though. But it appears this issue is now hosting several issues and should be split into individual reports / discussions. Is it?...

Then, on the other hand, we could use this to distinguish the problems. One case: skipping pathfinding completely, or otherweise trying something with actor bumping, moving, ordering instead, since we...