Skip to content
Media 1 for listing Customizable Pathfinding

Description

BASIC SETUP VIDEO TUTORIAL | SHORT VIDEO SHOWCASING INCLUDED EXAMPLE LEVELS | ADVANCED TUTORIAL

Blueprint exposed customization:

  • Setting box-shaped area of the graph
  • Agent shape (simple shapes)
  • Agent dimensions
  • Octree depth, 0 - grid, 3 - for large open spaces. 2 by default, suitable for most scenarios.
  • Graph resolution (choosing size of the smallest voxel)

C++ customization:

  • Modification of generating phase by overriding a single function. Each voxel can also carry additional user data that can be used during path calculation.
  • Overriding the fitness function used by the pathfinding algorithm, with access to generated data.

Graph is generated at runtime, by default at begin play. Both generation and pathfinding requests are done asynchronously, on up to 32 threads.

Core functionality is a single global Find Path function, that takes two world locations and returns an array of nodes between start and end location.

Supports dynamic obstacles. Making an object affect the graph in real-time is as simple as adding a component.

Path following should be implemented by the user. However, the plugin does include a simple flying pawn, with an example implementation of a "GoTo" function. It is showcased in provided example levels.

Pathfinding is implemented via customized A* algorithm with post-smoothing. It's faster than Theta* while producing very similar results. Implementation details will be included in my thesis (work in progress). The code is also available on GitHub.

Patch Notes

Version 1.03:

  • Added a simple benchmark tool with results printed to logs and a .csv file
  • Significantly improved pathfinding thread management
  • Created a simple interface for getting a path in C++, similar to the blueprint one
  • Added FindPathSynchronous node to blueprint

Version 1.02:

  • Added support for UE 5.1
  • Fixed linker error when statically accessing plugin classes
  • Occupied nodes are now drawn correctly when selected
  • User Data can now be passed to every FindPath call
  • Added new example level with 2D setup and modified pathfinding rules (covered by advanced tutorial on youtube)
  • Many other minor bugfixes and QOL changes

Version 1.01:

  • Added support for UE 4.27. Example levels cannot be degraded, so for proper example levels please download the Unreal Engine 5 version.
  • Added missing dependencies when adding to a blank project
  • Minor bugfixes

Included formats

  • logo of Unreal Engine format