Best practices when dealing with navigation for massive landscapes

What are some of the ways to deal with needing AI that traverses massive landscapes, but also keeping it performant enough to actually be usable?

For example when I have a train the size of 0.5km x 0.5km and use a single Navigation Mesh for it, there is around 1min of lag when testing it in editor, let alone on consoles or mobile devices, or even bigger landscapes.

So what are some good approaches to tackling this issue?

you probably have to look into Navigation Invokers.

Interesting, I looked into that, and my question regarding this is how performant this would be?
Since I am targeting mobile, that is something I need to remember.
Also, is there any way to ‘bake’ or pre-cache the navigation mesh for a level in something like the build data so that it doesn’t need to happen more than once? Since I know that the landscape / assets in it will not change.

i couldn’t tell you about performance, you’d have to test to know for sure.

“baking” the nav mesh like you have described is just the normal method of using a volume and baking that.

Well the reason that I made this post in the first place was that I have a massive one that seems to drop the performance to sub 1fps for the first minute when running the level.

The game thread spikes to about 1000~2000ms, then calms down to around ~40ms.
That said if I remove the nav-mesh completely it just runs at around 5~10ms.

So I assumed either 1. it is being recalculated initially runtime, or 2. it is too large and takes too long to search through.
Invokers didn’t seem to change that for me.

Would using world partitioning be an option?

For a large world you have to use some sort of streaming option, you can’t load everything all at once.