All Projects → hugoscurti → hierarchical-pathfinding

hugoscurti / hierarchical-pathfinding

Licence: other
Implementation of Near-Optimal Hierarchical Pathfinding (HPA*) algorithm in Unity, tested with maps from Dragon Age: Origins

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to hierarchical-pathfinding

Gdx Ai
Artificial Intelligence framework for games based on libGDX or not. Features: Steering Behaviors, Formation Motion, Pathfinding, Behavior Trees and Finite State Machines
Stars: ✭ 907 (+907.78%)
Mutual labels:  gamedev, pathfinding
Baritone
google maps for block game
Stars: ✭ 3,868 (+4197.78%)
Mutual labels:  pathfinding, astar-pathfinding
AI-Companion
Created in Unity 5 for the purposes of learning AI techniques. Features behaviour trees and A* pathfinding.
Stars: ✭ 22 (-75.56%)
Mutual labels:  pathfinding, astar-pathfinding
Jumper
Fast, lightweight and easy-to-use pathfinding library for grid-based games
Stars: ✭ 540 (+500%)
Mutual labels:  gamedev, pathfinding
Self Driving Vehicle
Simulation of self-driving vehicles in Unity. This is also an implementation of the Hybrid A* pathfinding algorithm which is useful if you are interested in pathfinding for vehicles.
Stars: ✭ 112 (+24.44%)
Mutual labels:  gamedev, pathfinding
cepathfind
a path find for tilebase game in unity
Stars: ✭ 30 (-66.67%)
Mutual labels:  pathfinding, astar-pathfinding
tektosyne
The Tektosyne Library for Java provides algorithms for computational geometry and graph-based pathfinding, along with supporting mathematical utilities and specialized collections.
Stars: ✭ 52 (-42.22%)
Mutual labels:  pathfinding, astar-pathfinding
first-person-controller-for-unity
A First-Person Controller for Unity.
Stars: ✭ 18 (-80%)
Mutual labels:  gamedev
uastar
Minimal A* implementation in C. No dynamic memory allocation.
Stars: ✭ 76 (-15.56%)
Mutual labels:  pathfinding
o3tanks
A command-line interface tool to build and run O3DE (Open 3D Engine) in containers
Stars: ✭ 19 (-78.89%)
Mutual labels:  gamedev
Unity-Visual-Behavior-Tree
Reactive Visual Scripting Behavior Tree Tool for Unity 2018.x+
Stars: ✭ 36 (-60%)
Mutual labels:  gamedev
awesome-n64-development
A curated list of Nintendo 64 development resources including toolchains, documentation, emulators, example code, and more
Stars: ✭ 210 (+133.33%)
Mutual labels:  gamedev
newport
Modular game engine built in Rust
Stars: ✭ 4 (-95.56%)
Mutual labels:  gamedev
ecs
A dependency free, lightweight, fast Entity-Component System (ECS) implementation in Swift
Stars: ✭ 79 (-12.22%)
Mutual labels:  gamedev
uesvon
3D navmesh generation and pathfinding plugin for UnrealEngine
Stars: ✭ 165 (+83.33%)
Mutual labels:  pathfinding
Pathfindax
Pathfinding framework
Stars: ✭ 20 (-77.78%)
Mutual labels:  pathfinding
Pathfinder
A pathfinder visualizer in Flutter. Create mazes, generate random walls, or draw your own walls and see the pathfinding algorithms in action
Stars: ✭ 14 (-84.44%)
Mutual labels:  pathfinding
Nav3D
3D Pathfinding and cover system plugin for UE4, using Sparse Voxel Octrees.
Stars: ✭ 58 (-35.56%)
Mutual labels:  pathfinding
octoawesome
This is the code repository for the OctoAwesome project - a collection of daily, 20 minute long game development tutorial videos, iterating over the same piece of code
Stars: ✭ 104 (+15.56%)
Mutual labels:  gamedev
Maze solver
An interactive online maze generator and solver able to use several different algorithms.
Stars: ✭ 40 (-55.56%)
Mutual labels:  pathfinding

Hierarchical Pathfinding

In this project, we explore a variation of A* which utilizes the concept of abstracting a map into clusters and precomputing information to do pathfinding. This method is called Near-Optimal Hierarchical Pathfinding (HPA*).

The idea is to separate a map into multiple levels of clusters and to precompute information on how to navigate between clusters so that we can use this information later to do pathfinding on a higher level. This method mainly addresses the issue of pathfinding in real-time. Searching for a path should be efficient and should be done often. Moreover, given that the state of a game is constantly changing, we often disregard many of the pathfinding done. By using HPA*, we divide a map into clusters and precompute information on how to travel from a cluster to another. Therefore, we can efficiently do pathfinding on a higher level at a much lower cost, reusing precomputed low level paths between clusters. Consequently, pathfinding is generally faster than a traditional A* algorithm, and disregarding unnecessary paths is less heartbreaking. However, given that we travel from cluster to cluster by predetermined boundary nodes, the resulting paths from this method can be a bit less optimal than a straightforward A*, hence the name “Near-Optimal”.

Near-Optimal Hierarchical Pathfinding was implemented on grid-based maps using arbitrarily-sized automatically generated clusters. We tested the results of our algorithm on real maps from BioWare’s commercial game Dragon Age: Origins, provided by the Moving AI lab (See credits).


Credits

  • HPA* was introduced in this paper written by Botea, Müller, and Schaeffer.

  • All .map and .scen files found in the Maps folder come from Moving AI's 2d Pathfinding benchmark sets

  • The Priority Queue used in this project comes from BlueRaja's High Speed Priority Queue for C#. All files in folder Priority Queue comes from the repo's Priority Queue folder.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].