DOTS Navigation

Does it generate navmeshes at runtime?

My package relies on the existing tooling for NavMesh generation. As you may know, that can take place at authoring or runtime. I wouldn’t recommend much runtime generation with the existing tooling, but if someone were to DOTS-ify generation with the new mesh API, then that would make a huge difference in terms of performance. I don’t have the need for runtime generation in my other projects (and thus no incentive to implement it), but if someone were to create such a package I would be happy to integrate mine with it. I’m also open to PRs.

In my demo scenes, such as the one in the quote, I’m showing that nav meshes can be transformed (without being regenerated). Really, all my code is doing is figuring out how the agents should move in conditions such as that. In “normal” conditions, you can just think of it as multi-threaded, 3D path-finding.

2 Likes

I see, well i could take a look!

Hi @adriant . Any new update? What’s the ETA of releasing preview package?

1 Like

Hi, I don’t have any news. It’s still too early to talk about a preview package.

4 Likes

Any News or Updates yet?
My project is still waiting for the DOTS-NAV-MESH!

16 Likes

Any update on DOTS navmesh? Any rough estimates for the preview package? 2021? 2022? 2023?

3 Likes

Checking in again to see if DOTS is coming to unity navmesh. This is a must have IMO for any game that is larger then a few units and a small area.

3 Likes

I think at this point your are expected to write your own ECS navmesh from scratch…

That’s fine I suppose. It looks like it’s been done a few times.

Hi @adriant . Any new updates of DOTS Navigation first preview package version soon? Is that implemented in pure DOTS way?

10 Likes

@adriant any chances we will get something with DOTS 0.5 or 1.0?:slight_smile:

2 Likes

Any updates on this?

@reeseschultz Is it possible to do navmesh cutting at runtime with your package (like when the player places a building in an RTS)?

RIP DOTS Navigation

1 Like

Hey @lclemens . In my GitHub repository, there are two packages at this time: navigation (heavy) and pathing (barebones). Both of them are interoperable with (and depend upon!) Unity’s conventional NavMesh tooling, so stuff like obstacle carving is supported. Use these packages at your own peril, as they depend on experimental APIs. Be aware that I’m considering big changes for the future of my Unity packages, including how they’re maintained.

@Onigiri , navigation is a massively broad umbrella term for a plethora of divergent use cases (hence why I regret the name of one of my packages). I’m of the opinion that Unity should not build a monolith; they should focus on low-level, DOTS-compatible tooling, so folks can use it to make purpose-built middleware. This product board seems to indicate that low-level APIs actually are the focus. Note, for example, the “queryable navigation model,” where the plan is to have:

An enhanced set of API methods for querying the navigation data in greater detail than before, compatible with Unity’s Job System.

I have concluded that it is enough for Unity to reconcile NavMesh and grid-based, low-level APIs, with Jobs and Burst. I am highly skeptical of incorporating ECS into any low-level or middleware solution, at this point, because there are two major ways to use it. There’s the approach I prefer, which is basically using components in terms of state machines (I wish we had a GUI for that). To my knowledge, that approach is, however, less performant with Unity ECS’ memory model than maintaining the same set of components on an entity for its entire lifetime. To understand this issue better, please see this blog post comparing two Rust-based ECS frameworks, Specs and Legion. I am aware of a technical solution that accounts for both approaches; I believe it has been (or is being) incorporated in Legion, which is used in the Amethyst game engine. Someone correct me if I’m wrong.

Anyway, for Unity to build out a high-level navigation solution, users would likely expect components and systems, in terms of ECS, to go along with it, not just for it to simply be compatible with ECS. I built something with ECS, literally for free, and users were still dissatisfied because they disagreed with my assumptions/opinions. I am convinced there is no way Unity can do something similar without major backlash, so I would warn against it, at least without a few more years of R&D. Third-parties can build out middleware in the meantime that caters to different audiences via open source, sponsorware, the asset store, etc.

4 Likes

Any updates or news?

1 Like

Really? Still nothing?

1 Like

I hope Unity 6 will have DOTS Navigation.

1 Like

XD

1 Like