GlowstoneMC / Glowstone

A fast, customizable and compatible open source server for Minecraft: Java Edition
https://glowstone.net
Other
1.9k stars 274 forks source link

[#396] Entities: Pathfinding [$50] #503

Open gdude2002 opened 7 years ago

gdude2002 commented 7 years ago

Bountysource bounty

This issue is part of this story, Completing entities in Glowstone (#396). To make the work easier and bounties fairer, we've split it into multiple issues.

Anyone can participate in the completion of this issue, which will be a major turning point in the development and the possible use-cases for Glowstone as a Minecraft server alternative.


Before getting started! If you are unfamiliar with Glowstone, please remember that Glowstone is a complete rewrite of the Minecraft vanilla server, aimed to be a better alternative to other software like Spigot. You are by no means allowed to push code to this repository based on Mojang's own platform (whether it be Forge, MCP, decompiled binaries, etc.) Doing so will cause in the rejection of your Pull Request. You are allowed to use other resources like the numerous wikis that exist on the Internet (Minecraft Wiki, wiki.vg, etc.) as well as trial-and-error.


Pathfinding

Glowstone currently lacks a 3D pathfinding tool for entities to reach a specific target. Keep in mind that dozens of entities may be running pathfinding actions simultaneously, which may hinder the performance on the server. This pathfinding algorithm would need to be able to not affect performance too much, while being a rough equivalent to the Vanilla functionality.

--- There is a **[$50 open bounty](https://www.bountysource.com/issues/46548046-396-entities-pathfinding?utm_campaign=plugin&utm_content=tracker%2F14691067&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F14691067&utm_medium=issues&utm_source=github).
Salil999 commented 6 years ago

Interested in working on this. If A* is used, what heuristic are we looking at? Manhattan distance is what I'm presuming...

aramperes commented 6 years ago

I would think that Euclidean distance heuristic would be used. Even though the world is just a set of cubes, mobs (entities subject to Pathfinding) don't have to follow the grid. They can go from A to B diagonally.

smartboyathome commented 6 years ago

One thing to check as you work on this is the affects of precision on whatever algorithm you use as you get close to the default Minecraft world border at 30,000,000 blocks. While in Vanilla this doesn't happen at 30,000,000 blocks, if you mod it to remove this limit, you'll see entities start to fall into loose lines. Youtuber AntVenom has done some good exploration around this: https://www.youtube.com/watch?v=uHWoB9GCSYk

Salil999 commented 6 years ago

Got something in there: https://github.com/GlowstoneMC/Glowstone/pull/799

Although I don't know how to remove all the odd formatting errors that are on CircleCI.

mastercoms commented 3 years ago

@creatorfromhell You can probably propose #924 as a resolution for this issue, for the bounty.