Improving Pathfinding Quality With New Algorithm

Is there any chance we ever get access to the navmesh? I’m currently using A* with nodes, and it would be nice to be able to keep my heuristics while still getting the benefits of more fine grained and dynamic pathfinding. It’s just much easier to write complex agent behavior when you can make choices. Not hoping for any manipulation of the mesh or anything, I just want it exposed and readable.

5 Likes

This is something we are discussing internally. We have heard that developers wanted navmesh access to fix issues themselves. With these improvements, we sincerely believe that should no longer be necessary. In cases where the navmesh is still problematic, we will treat it as a bug and fix it.

That said, there are scenarios where developers might want to query the navmesh, such as getting the closest point on the navmesh or performing a raycast on it. We are exploring options to see if those functionalities can be exposed, but nothing can be promised yet. If I understood your request correctly, you are more interested in accessing those APIs rather than the actual navmesh?

14 Likes

I have few questions:

  1. Will agent jump height be ever exposed so that we can control it? Right now I think it might be tied to the agent height.
  2. Will navigation mesh generation be improved for meshes? Last time I checked, it kept failing to generate proper nav mesh for a structure in my game and I was forced to place invisible collidable parts to fix it.
  3. Will we get an ability to disable Humanoid behavior so that pathfinding won’t exclude models that have it, and get an instance that makes its parent model get excluded from pathfinding?
  4. Will we get an ability to generate alternative paths? Sometimes I want have my monster take an alternative path, not always the shortest.
7 Likes

would it be possible to be given direct access to the generated navmesh as well? navmesh generation is hard so being able to use it for any custom pathfinding implementations would be very helpful

7 Likes

I’d be most interested in accessing the navmesh directly as a set of nodes or however it’s setup, so that I can run a pathfinding algorithm on it.

3 Likes

Since this is related: Could we have support for an “AgentCanDrop” parameter?

12 Likes

you can control the jump height from the humanoid it self

I’m talking about jump height that pathfinding considers a viable path, not the capability of the humanoid.

2 Likes

Really appreciate that there’s a lot of improvements!

I got excited to try it out and found this bug where a path was generated through a gap that’s too small for the agent radius –
image


Making the radius smaller (that would fit the gap) actually made it hug the walls better:


Radius of exactly the same size as the gap generated this:
image


Finally, making the radius bigger than the gap generated a path that really marked it as untraversable


Here’s the repro file
PathfindingUseImprovedSearch - gap bug repro.rbxl (53.6 KB)

6 Likes

Thanks for the repro. We will investigate

7 Likes

THANK YOU SO MUCH TO THE ENTIRE TEAM THAT WORKED ON THIS :pray::pray::pray::pray::pray::pray::pray::pray:

You have no idea how much time I spent trying so many solutions to get pathfinding to not suck, and usually eventually give up and gave restrictions to map builders on what they can or cannot do for pathfinding purposes

THANK YOU!

6 Likes

WOOOOOOOO! Roblox is really cooking!

1 Like

Will pathfinding API safe to call in parallel?

2 Likes

such an out of the blue update but this is awesome! keep up the great work

This update is a REVELATION for us developers!!!

I’m very excited with this news and I’m sure everyone else here is feeling the same way. I will be putting this straight into my game.

Are we getting the name of the new algorithm anytime soon? @watIsInTheName

1 Like

How did you get that UI in that image?

Roblox, are skinned meshes ever getting ragdoll support without having to divide them into 15 parts?

1 Like

This is awesome. :slight_smile: now I can finally add an entity to my infinite maze generation game without using my old hacky attempt at getting the nearest path.

This plugin by tyridge77

1 Like