Conversation
|
Thanks! Though, I'd recommend splitting up the changes that you're planning into more PRs to make for cleaner diffs and to make them easier for me to review. Also, fyi, I've been holding off on making large updates to the pathfinder until there's a realistic benchmark for it. Azalea's pathfinder is several times faster than Baritone in some cases and I'd kind of like to keep it that way. :3 This is why pathfinding through water isn't implemented yet -- it's fairly easy to implement with custom moves but I think doing it without hurting performance might be hard, and I'd like to have an easy way to check that. There are a couple benchmarks for the pathfinder, and they are useful for checking some types of changes, but they're not realistic. I think a good way to add a realistic benchmark would be by copying a region file (or a few) from a Minecraft world into Azalea's benches directory, and having a benchmark that parses that region file into Azalea's in-memory world representation and calculates a path over it. |
|
Ok |
|
I think litematic is more good becas you can use only special regions and not import all anvil regions which is ver big 💀 idk how it knows what performance was improved maybe i randomly run 2 times and forgot |
|
Tiny is tiny parkour map, getting over it its map where you need climb on big mountain and labyrinth its just labyrinth |
|
Will be cool make func what predicts capacity of call_successor_fn vec: let mut edges = Vec::with_capacity(16);Capacity 16 is no good. If i make 32 getting over it alredy go to 32% performance boost. |
|
Where are you? |
|
Hi, I'm sorry, I'm currently pretty overwhelmed and do not have time to review this (also why I haven't made any substantial commits to Azalea in a few weeks). I'll review this when I have time. |
|
oka |
|
@suprohub while doing the PR you might wanna fix the parkour in general, because the current pathfinder can block the tick thread on complex terrain (sync patch/recalc), which causes rubberbanding/timeouts. Perhaps move it to AsyncComputeTaskPool? |
You might want to repost that comment as an issue and answer these questions there, but I'm curious what your setup is. Path patching is deliberately blocking (it has a very small timeout and is meant to be able to react instantly), and path recalculations are already done on a separate thread. Are you running in release mode (if not, is the problem still present if you do)? How many bots are you running? What hardware (CPU, mainly) are you using? What's the terrain that you're pathing over like? |
|
Hmm. After update, i see performance regressions. |
|
I appreciate your work and patience, but I'm closing for now since this change makes pathfinding significantly slower (approx half the speed) for not much benefit. I will note that bots can implement their own custom moves by using Also, I've implemented a more realistic benchmarking setup in a separate repo (which will be published soon). |
This pr adds advanced parkour system, where bot can jump in all directions