Baritone AI pathfinder

Baritone AI pathfinder

72.7k Downloads

Chorus Fruit and Ender Pearls

Amaroq-Clearwater opened this issue ยท 4 comments

commented

Describe your suggestion

Basically, I want to see a system that assists in (or even automates) the use of Ender Pearls and Chorus Fruit. In the case of the latter, I am not entirely sure how that would be implemented.

Context

Could be very helpful for making quick escapes in tricky situations, or for reaching places that are otherwise difficult to reach. Might also help with fast travel, since being able to teleport with such high precision could open up a myriad of new shortcuts.

Further development

Might also mesh well with the "Blink" hack on any servers that allow it, in which artificial ping is produced when it might be beneficial. (Note: Only on servers that allow it.)

commented

I don't see how these would be viable, ender pearl sway is random when thrown so it would not be possible to predict where it lands before throwing and chorus fruit without an rng cracker is also completely random

commented

It could use some kind of probability analysis based on maximum range and available terrain. Might be very dependent on machine learning.

commented

I don't think we have a dataset trained to do what you say, @Amaroq-Clearwater. It's a good idea, yes but the implementation is going to be hell.

commented

This is basically a duplicate of #1469 which has been closed as out of scope and I don't think the chorus fruits change anything about this because they are less useful and harder to use.

I think calculating (no ML involved) the trajectory of an ender pearl is possible with the required precision unless you throw it super far and the real problem would be the computation time of the many hundred ray traces (or rather trajectory traces) per expanded node.
For example, if we assume a range of 30 blocks (a bit more than they can reach when thrown directly upwards) and are standing in a flat area, we can reach over 5000 blocks with two possible angles each and thus need to check 10k trajectories per node.
This approach is flawed in that it checks blocks that share their trajectory multiple times, so you could decide to instead always check a given set of angles and I do not know if that would end up being more efficient, but I do know that you would need a lot of checks here as well and to just make all blocks in a flat 30 block range reachable, you would need 5k / 10k checks per node as well.

Chorus fruits are, as said, completely unpredictable and a* needs deterministic movements, so the best approach would probably be to just choose one block, make sure you can reach it from all positions you could be teleported to and then assume some cost for eating and walking to that spot. Because you will have to walk anyways this would only really rarely be useful, for example to cross bedrock walls.