Introducing: Roblox Pathfinding


#1

Hey Developers,

Today, we’re excited to announce the launch of Roblox’s brand-new pathfinding system, which is now available to all users. This brings awesome new features along with huge improvements that will allow developers to create more accurate paths and produce innovative gameplay experiences.

Here’s a brief summary of the improvements made to the pathfinding system.

  • Improved resolution: The old system used 4x4x4 voxels. The new navigation mesh system is built on a 1x1x1 voxel grid. That’s 16 times more detail!
  • Dynamic Navigation Mesh generation: The navmesh will automatically regenerate when obstacles move around the world.
  • Background tile processing: All navigation mesh tiles are processed in the background, without blocking any of the main engine systems. This means scripts keep running, and it’s less likely to drop frames.
  • All obstacles are important: In the old system, small obstacles or thin walls were ignored by default. In the new system, all obstacles are marked as such and rendered to the navmesh.
  • Avoid non-traversable areas: The new system takes into account the default size of the humanoid and avoids areas where the agent does not fit.
  • Automatic Jumps: The new system automatically detects which areas could be better connected if the humanoid jumped.

With that being said, we encourage our developers to make the best use of our brand new pathfinding system to create new unique experiences for everyone in our community! If you’re a member of the Developer Forum and you’ve experimented with this new system and have created anything impressive with this, we’d love for you to share it with us on the Developer Forum or by using #RobloxDev on Twitter!

Below we’ve released a few wiki articles to help you get started! We will be releasing more articles in the near future and will keep this thread up to date as new information is available for our developer community to check out!

http://wiki.roblox.com/index.php?title=API:Class/PathfindingService
http://wiki.roblox.com/index.php?title=API:Class/Path
http://wiki.roblox.com/index.php?title=API:Class/PathWaypoint

The new pathfinding system is live on PC and Mac, and will be coming soon to mobile and Xbox. We will update this thread when it becomes available for the remaining platforms.

Thanks,
Developer Relations Team


#2

Thank you so much! This is something I’ve been looking forward to this ever since it was announced at RDC. Keep the good changes coming.


#3

OH MY GOD YES IVE BEEN WAITING SO LONG

@Proxidius ITS HERE. THE BEST PATHFINDING WE’VE EVER HAD


#4

Super excited

…but now I cant escape the monsters in games anymore by trapping them behind walls, darn-it


#5

These updates have been poppin’ lately.

Keep up the good work! :grin:


#6

Thanks for this! Can’t wait to try it out.


#7

Shout out to @portenio! Great job on this. You are a hero.


#8

Is there any way to keep it from finding paths that require jumping?

If not, this won’t work for npcs that are designed to not jump

It’d be nice if there was a way to specify the minimum width needed to traverse a surface and set the maximum jump distance so it’s useful for more than just default characters

Other than that it looks fantastic :+1:


#9

Can’t wait to test this out. ^.^
Keep them coming. Love these types of updates.:slight_smile:

#UpdatesAllDayEveryDay


#11

actually that’s 64 times as detailed

is this separate from NavigationService? the link in the OP goes to PathfindingService, which has the same name as the old pathfinding system.


#12

Can’t wait. In my use case this would really help to make more realistic NPCs in buildings as players can close doors and such. Thanks for the upgrade!


#13

whao


#14

This is great! I do hope one day we can get a pathfinding system that can ignore certain objects, though (not having to make the object non-can collide to be ignored).


#15

We are experimenting with adding support for Collision Groups to allow developers to mark objects that should be ignored by the pathfinding system.


#16

oh no
image

OH NOOOOOOOOOOOOO


#17

Amazing!


#18

PathfindingService is now using the new implementation; we decided to go that route instead of introducing a brand new service .


#19

To add onto that, the NavigationService has been removed.
It never even got to see the light of day, even though it got shipped onto production for some reason.


#20

The updates being pumped out are absolutely amazing. Thank you so much for this update, I’ve been needing it like I’ve needed everything else. It’s a little late so I’m not doing my usual freakout over the great updates.


#21

Goodbye A* and Dijkstra.

Hello Roblox Pathfinding!