Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

New NavMesh Components ETA? Thoughts?

Discussion in 'Navigation' started by Zullar, Jun 6, 2018.

  1. Zullar

    Zullar

    Joined:
    May 21, 2013
    Posts:
    615
    I really like the looks of the new NavMesh components
    https://docs.unity3d.com/Manual/NavMesh-BuildingComponents.html
    -NavMeshSurface
    -NavMeshModifier
    -NavMeshModifierVolume
    -NavMeshLink

    I really need a system that can handle different agent sizes (i.e. large monsters cannot fit through small areas, but small monsters can).

    I do not see these components on the Roadmap. Is there an ETA when when these components will officially be released? I'm a little hesitant to use them in their ~Beta form from GitHub (I made that mistake with UNET and wasted a lot of time before abandoning it).
    https://github.com/Unity-Technologies/NavMeshComponents

    Has anybody else tried these components? What's your thoughts? Thanks.
     
  2. christougher

    christougher

    Joined:
    Mar 6, 2015
    Posts:
    428
    This system can handle varying agent sizes, it just requires using multiple navmesh surfaces. There is an example scene in the GitHub with exactly what you are describing demonstrated.
     
    Harinezumi likes this.
  3. Sharlatan

    Sharlatan

    Joined:
    Jul 23, 2013
    Posts:
    111
    I've been looking into it today and so far I'm not at all impressed. I've been loking into (2D) NavMesh every year or so and I know it sounds harsh and I'm sorry, but in my humble opinion it's really not impressive at all but rather disappointing...

    Griefs with pahtfinding for 2D
    • There's been a feature request for 2D support since 2013 and you'll also find a compet from May 27, 2014 from a Unity employee, that they want to add this and are doing research (https://feedback.unity3d.com/suggestions/make-2d-work-with-navmesh-and-terrain)
    • Will Goldstone in 2014 as well mentioned them working on support for 2D (https://twitter.com/willgoldstone/status/475441492124004352)
    • Paul Tham (also from Unity made a comment in 2015 that work is still in progress and we should have something soon. I still have the link but sadly the page doesn't exist anymore. But I remember it vividly (and still had the link), because I did some research concerning 2d pathfinding back then as well and found that thread and also mentioned it to another Unity employee in a Twitter DM
    • Back in the days, 2D navigation was on the official Unity roadmap. It then got removed but Unity said that this will be resolved with the new NavMesh system, that was now put on the roadmap and was supposed to be an overhaul that improved on a lot of things and also add support for 2D pathfinding
    • The new NavMesh components were then released but with no real 2D support. The only thing you can do now is to have NavMesh surfaces with arbitrary rotation and with what even gets called "hacky" workarounds by Unity employees (somewhere in this video: https://unity3d.com/learn/tutorials/topics/navigation/walking-walls-and-ceilings?playlist=17105), you can get some basic 2D pathfinding working (but will still have to add 3D colliders) but it would be a huge stretch to call it "2D support".
    • No kind of NavMesh support is currently anywhere on the roadmap, so, no sign they are still working on it at all
    I mean.. come on, 2D support has been promised for more than 4 years now. We still don't have it and even worse, there's no mention of it anymore at all. This feels like the networking components all over again...

    General griefs with the new NavMesh system (or rather how it's treated by Unity)
    • The new system (at least to me) seems to be far from done, yet, it completely disappeared from the roadmap. So, we don't even have an idea if this will be improved upon at all, let alone when
    • There's also no list of planned features anywhere (not in the forums, not on the roadmap, not on github)... it's not only that we have no roadmap, we don't even have any info if anything more's planned at all.
    • This morning I tried the new NavMesh components and on GitHub was a notice that the 2018.1 branch has to be used for 2018.2. When I downloaded and opened the project, I got some upgrade exceptions.
      Funny enough, while doing some research for this post here, I went to GitHub again and saw that they made a 2018.2 branch just today (but really, before they stated that 2018.1 works for 2018.2). With this branch, I don't have the problems anymore, so that's good at least...
    • Even in the new 2018.2 branch, when I run the unit tests that come with the repository, one of the tests fails. Quality control, anyone? Running this tests takes about 3 seconds. Maybe do that before pushing a commit?
    • In the last year, there was only one single person committing to this repository. It makes you wonder, how important this is to Unity.
    • Sometimes, months go by without a single commit. Again, you really get the impression that Unity doesn't care about this at all.
    • This thing is still not in the package manager and according to the dev (statement is from May), it won't be "most probably not earlier than a few more months" (https://github.com/Unity-Technologies/NavMeshComponents/issues/82), which probably is the best case. What's the point of the package manager, if they don't integrate their products into it and make all this stuff a unified process?
      Also, it's just tedious that you always have to manually download and update this project every time we get a new Unity version
    • Apparently, this not modular enough to work independently of the Unity versions (considering my problems with the 2018.1 version in Unity 2018.2 and also the fact that they have a separate branch for nearly every Unity version. Yet, it doesn't seem important enough to make sure this is also up to date whenever Unity releases a new main Version.
      Between the release of Unity 2018.2 and the NavMeshComponent version that's 100% compatible with 2018.2, a little over two months passed. This, at least for me is another sign that it's really, really low on Unity's priority list.

    It's a real shame. Ignoring all the circumstances, I'd label this a really good and promising beta with some really nice features that's not completely "there" yet but has a lot of potential (even if some things like 2d support literally took years and are still not there).
    Though, the big "BUT!!!" is, that, at least to me, everything points to this having no priority at all in Unity's eyes and that sure makes one wonder if and when they will make this thing really good and usable. I really don't count on it and if you can't work with what's already there, I don't feel there's any sens in waiting in hope they will improve this anytime soon. or maybe ever :(
     
  4. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,923
    2D has been supported for over a year. You can now have any orientation. If you mean baking against 2D colliders then I guess an editor script will be needed to temporarily create 3D colliders, or a mesh.

    If you mean side-on then those games do not use navmeshes unless you want to abuse this system.
     
  5. Sharlatan

    Sharlatan

    Joined:
    Jul 23, 2013
    Posts:
    111
    Sorry, maybe I wasn't clear enough. I know that you can work around it and indeed meant baking against 2D colliders when I said

    But thanks for pointing this out in case I wasn't aware!

    And yes, you can fix that with some scripts (or e.g. permanently add colliders in the scene if performance etc. isn't an issue) yourself. I'd probably be able to do that and thinking about it, it probably wouldn't take *that* much time. But that's the thing.. if indeed isn't too hard to at least do a hacky version, it wouldn't be too hard for Unity neither; on the contrary, they should be the pros.
    Yet, 4 years after the promise of 2D pathfinding, we still don't have an out of the box solution, let alone an elegant one.

    And theoretically, I could almost do anything myself (given enough time) but that's not why I use an engine. I probably would even just suck it up, if they never had any kind of pathfinding system or didn't promise any improvements. But as things are now, it just looks like they promised something a long long time ago and made some good progress on it but now it's in this weird, frustrating kind of beta state, where things are almost good but not so good you'd really like to use them and seemingly nearly all work stopped on it and there's absolutely no indication of future plans and if they will pick this up again or just let it fizzle out or whatever and that's just.. a little frustrating. Sorry, if I was too negative.

    Btw., I didn't even think about side-on games and am not planing to develop one. But just out of curiosity, do you have any good resources on how that's done on hand? If not, please don't put in an effort, I'll just use Google in that case!

    Thanks and have a nice day.
     
  6. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,923
    For side on I did navigation by creating a walkable list of edges (line segments) that I could then just run through A*. I had connectivity for climbing, grapple etc... if you need help making things like a tool for baking out 2D navmeshes please do ask for help in dedicated thread for it. Also pinging @MelvMay regarding 2D navigation in case he knows more.