Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Feedback Better multiscene workflow

Discussion in 'World Building' started by useraccount1, Jun 7, 2020.

  1. useraccount1

    useraccount1

    Joined:
    Mar 31, 2018
    Posts:
    275
    Small but crucial feature for working on larger levels

    https://github.com/Madgvox/unity-scene-groups

    I have found It on the internet, made 2 years ago, code has some bugs but still works. This tool is basically creating a fancy shortcut that allows to open several scenes which you have to set up previously. Really amazing feature, Unity should implement that asap.
     
  2. Flavelius

    Flavelius

    Joined:
    Jul 8, 2012
    Posts:
    943
    It looks like you found an extension that already does this. If it can be added with this little code, is something that's not used very often and expands the already quite convoluted create asset menu or requires custom menu entries, my opinion would be that it's better to leave it up to those extensions or developers to add the few required lines if they need it.
     
  3. useraccount1

    useraccount1

    Joined:
    Mar 31, 2018
    Posts:
    275
    The problem with this tool is that its old, has one bug and is one of the most important features I have added to every single of my project I have made for some time.

    Multiscene tools are something that unity editor is lacking the most and something that seems to be not understood by some game developers at all. Every slightly bigger level you create should be done with multiple scenes for performance and loading times improvements (in game and in the editor). The problem is that doing this with unity is masochism without 3rd party tools.

    Currently, when you want to open multiple scenes, you have to drag every single one of them manually and once you will switch the scene to something different and then go back, you have to add all of those scenes again because unity doesn't save that. This is rather an easy fix for this issue.
     
  4. Flavelius

    Flavelius

    Joined:
    Jul 8, 2012
    Posts:
    943
    Then again, this multiscene handling depends on the structure of the game. If it's an open world game it would probably be a grid based loader with more info or a preview for each 'cell' (like in UE4 i think, or something i tried creating long long ago https://github.com/Flavelius/OpenWorldPatchStreamer (didn't really finish it though)); or games that require a special manager/singleton/preload scene (like vegetation studio that errors out otherwise), or levels that represent LODs.. would require different ways to handle them. A generic builtin solution would have to make either assumptions and be wrong half of the time, or have every option available and be complex (with increased risk of bugs).
    And i'm not sure if now with the prefab scene/stage for example this really is rather an easy fix, because undo-redo is scoped to it and like this there are a few other gotchas that i wouldn't want to be handled for me behind the scenes (without knowing the sideeffects).
    And that's why it's a good thing that the editor is scriptable and allows to just build the exact tools for a task and leaves it to the programmer to decide how handle the edge cases; and if your game requires just loading a few selected scenes always together than that's an easy implementation, like in that extension.
    Btw. can you name the bug in it? It's probably fixable.
     
  5. useraccount1

    useraccount1

    Joined:
    Mar 31, 2018
    Posts:
    275
    It doesn't fix anything, neither anything you have posted here. Do you understand I'm not talking about the way to handle level streaming in the game but an editor tool? The one that would literally help developers with literally every single game, but the ones with procedural generators? What's more, this tool would make much easier to develop games in teams including prototypes.

    And also, one of the biggest weaknesses in unity is that compared to every single other engine It doesn't help nor provide tools for anything which is slowly changing.
     
  6. Flavelius

    Flavelius

    Joined:
    Jul 8, 2012
    Posts:
    943
    Yes, i'm talking about the editor too. That's why i posted my own repository, even though it's garbage, and mentioned the other cases. The main obstacle is that the editor is scriptable, and every professional developer creates custom tools for their purposes.
    I can give an example:
    Let's say you have an larger game where you partitioned your world into a grid with cells and each cell is a scene. For many cases you will find that objects in those cells overlap outwards, so the editor would need to load adjacent scenes/cells too. This can be solved with a custom toolscript. And you wouldn't want to create x*y SceneSetup presets.
    And then there's using tools from the asset store or other developers in general.
    I mentioned vegetation studio, becase it's a prime example. It uses a singleton approach, which may work well in a minuscule part of cases, but it was designed that way either way. If the editor loads multiple scenes that contain this singleton it just plainly errors out and you can't work correctly, because the interactions of when and how scenes load and objects interconnect have to be solved by the developer and this one just chose a path that worked for the cases they thought were most common (single scene setups with one manager i guess).
    Both cases would not work well with a system that just saves and restores scene compositions, because it skips/ignores the other editor tools that also try to handle scene management.
    And if a game requires multiple concurrent scenes active chances are higher that they also require special treatment.
    And if a game only has a few selected scenes that need to be loaded concurrently, a simple editor script fixes that.
     
  7. useraccount1

    useraccount1

    Joined:
    Mar 31, 2018
    Posts:
    275
    I think you are missing the point somewhere. Even If this tool isn't useful in 100% of the cases you have to remember:

    - This tool doesn't block you in any way from creating your own tools If you need It.
    - In almost all the cases, you don't need a separate solution for making large scenes with several people than the one posted here. Obviously that would be a nice thing to have but definitely not necessary. This one is universal, and it can't do harm to anyone.
    - Unity doesn't have any tool inside of the editor that could allow for nice, easy and fast workflow with multiple scenes.
    - It is a basic idea that seems to be a genius one which is a good thing because It helps with the stuff unity engine is lacking the most while at the same time doesn't seem to be a potential problem with supporting it. I mean, this repository was made in 2017 and has 1 bug which is caused by a feature It doesn't even need to have (even though It's a very nice one).

    And at the same time. You said yourself, you have tried to make tool like that yourself, haven't finished It, the solution isn't perfect. Now think about others. Is everyone as good programmer as you? Does every single indie developer have the knowledge about how to optimize their levels?

    And then think about the reason why there shouldn't be a tool like that in the editor. Why not helping yourself and why not helping others with this tool? I simply can't understand It. If you want to write something else, then do, but why blocking everyone from having any solution?

    The thing is, this simple solution can benefit everyone.