{"repo":"quasilyte/pathing","free":true,"listed":false,"github":"https://github.com/quasilyte/pathing","clone":"git clone https://github.com/quasilyte/pathing.git","description":"A very fast & zero-allocation, grid-based, pathfinding library for Go.","language":"Go","stars":135,"topics":["a-star","ebiten","ebitengine","game-development","gamedev","go","golang","greedy-bfs","library","pathfinding"],"license":"MIT","category":"game-templates","readme_excerpt":"quasilyte/pathing A very fast & zero-allocation, grid-based, pathfinding library for Go. Overview This library has several things that make it much faster than the alternatives. Some of them are fundamental, and some of them are just a side-effect of the goal I was pursuing for myself. Some of the limitations you may want to know about before using this library: 1. Its max path length per BuildPath() is limited (56) 2. Only 8 tile kinds per Grid are supported Both of these limitations can be worked around: 1. Connect the partial results to traverse a bigger map 2. Use different \"layers\" for different biomes To learn more about this library and its internals, see this presentation. When to use this library? You need a very fast pathfinding You can live with the limitations listed above If you answer \"yes\" to both, consider using this library. Some games that use this library: Roboden Cavebots Assemblox Quick Start This is a simplified example. See the full example if you want to learn more. Some terminology hints: Grid - a compact matrix that holds the \"tile tags\" GridCoord - an {X,Y} object that addresses the grid cell Pos - a world coordinate that can be mapped to a grid Tile (or a tile tag) - a enum-like value that represents a tile kind GridLayer - translates the tag into a pathing value cost (where 0 means \"blocked\") Note that it's possible to convert between the GridCoord and world positions via the Grid type API. Greedy BFS paths quality This library provides both greed","default_branch":null,"files":null,"tree":[],"storefront":"/r/quasilyte","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/quasilyte/pathing/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}