GlowstoneMC / GlowstoneMC/Glowstone

[#396] Entities: Pathfinding

Open
#503 6 comments 0 reactions 0 assignees View on GitHub
bounty Category: gameplay feature Category: server feature help wanted Type: story
Dominant language
Java
Stars
2k
Forks
280
PR merge metrics
No merged PRs in 30d

Description

[![Bountysource bounty](https://api.bountysource.com/badge/issue?issue_id=46548046)](https://www.bountysource.com/issues/46548046-396-entities-pathfinding)

This issue is part of [this story](https://github.com/GlowstoneMC/Glowstone/issues/396), *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.

* Decide on an appropriate pathing algorithm, which may be A* (currently used in Vanilla) or one of its many derivatives. Based on my personal work and research on this, A* seems much more efficient and appropriate for 2D environments, but less so with layered 3D environments. The decided algorithm would have to be implemented with the concept of a 3D voxel world in mind (not a closed environment!)

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. Begin by surveying Glowstone's entity and voxel-world code to find where pathfinding actions would integrate, then clarify the algorithm and concurrency requirements. Done means entities can reach specific targets in a 3D world without unacceptable server performance impact.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.