Search Unity

Vertical vs Horizontal vs Hybrid layouts

Discussion in 'Visual Scripting' started by CameronBondeSAE, Oct 20, 2021.

  1. CameronBondeSAE

    CameronBondeSAE

    Joined:
    Feb 9, 2017
    Posts:
    6
    With all the discussion on Bolt 1 vs 2, as a teacher of beginners, the vertical layout would be much much better.
    Simply because it separates code flow (vertical) from calculations (horizontal). Which is close enough to normal code that they can transfer over easier.

    Another HUGE aspect that everyone seems to be forgetting, is that literally millions of school kids are learning scratch. Which is traditional vertical flow layout like code. THAT is your future audience.

    Bolt 2 vertical snapped blocks + horizontally snapped code for parameters etc + the ability to use a keyboard to INSERT blocks would be perfect, but no one does it?



     
  2. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    2,073
    To be fair, that Bolt 1 graph has duplicate code that could be nearly 50% reduced with a for loop.

    And while I prefer vertical myself, it introduces another layer of complexity - port portals for connections that connect a higher node to a lower node. You can't draw the connection under or over nodes since it crosses over them, so a portal is used.

    Portals also can make the graphs harder to read since you can't see many connections directly. So while you're sorta fixing the spaghetti with vertical, you're introducing new UX problems that don't have simple solutions and require extra systems that don't exist in the current version of UnityVS. And there are dozens of features and improvements that would benefit UnityVS users more than vertical flow, so I prefer they focus on that.

    It would be nice to have, though.
     
  3. CameronBondeSAE

    CameronBondeSAE

    Joined:
    Feb 9, 2017
    Posts:
    6
    There's nothing stopping the page from being able to have separate chunks of code. So if you need to wire over to another part you should be able to. Any feature the current mess has can be used in a hybrid vertical/horiz setup.
    In scratch it's all snapped blocks BUT you can just put another chunk of code anywhere on the page. It's so easy yet still structured just enough to not be crazy.
     
  4. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    2,073
    Are you saying they should adapt a scratch-like stack for the logic? I'm not convinced the scratch approach scales up to large studio pipelines, which is the actual main target audience for the tool.

    Scratch looks like a visual representation of low level API coding, which is what Bolt 1/UnityVS also currently is. But they want to focus the tool more on high-level nodes going forward as that's the main workflow in studios - designers request some piece of logic to support a new mechanic, then coders produce high-level nodes with that game specific logic, then designers use that logic to construct level design, puzzles, etc. And while low level API is still available, it's for handling edge cases, it's not the main mode of being.

    They also want to ship a collection of high-level nodes that offer bundled functionality for native Unity systems similar to how Blueprints does it.

    Long story short, Unity Visual Scripting is not intended to be a regular code replacement which scratch seems to be. And the scratch stack doesn't appear to be a good fit for complex high level nodes and large graphs in general.
     
  5. CameronBondeSAE

    CameronBondeSAE

    Joined:
    Feb 9, 2017
    Posts:
    6
    You'd have to give me a specific example where completely free form nodes with wires is better than a hybrid of snapped vertical bricks and node/wires feeding functions etc.
    Also aren't 'high-level nodes' just... functions? :) Obviously things like state machines/planners etc need some specific UI, but that's the same as it is now.
     
  6. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    2,073
    I'm not saying one is better than the other.

    I'm saying I don't see the scratch approach working for complex high-level nodes with many inputs and outputs that might implement custom drawers for custom types and for inputs that display collections on the node itself, for example.

    A high level node is not just a single function, it could be a whole character controller with many configuration options on the node itself. It could also selectively display or hide inputs/outputs based on the data you feed into it in real time, which is also something that scratch like stack would have trouble doing, I think.

    They plan to replace the UI completely sometime in the latter half of 2022 or in 2023. The new UI solution called Graph Tools Foundation will be standardized for all Unity Graph based tools. VFX graph has vertically stackable groups so you might get that as an option. But until the Graph Tools Foundation migration, we won't really see any major changes to the UI.

    GTF will also be tool agnostic so someone could come in and code up a scratch like UI layer for UnityVS even if they don't go that way.
     
    Last edited: Oct 22, 2021
  7. Starpaq2

    Starpaq2

    Joined:
    Mar 14, 2013
    Posts:
    77
    I certainly love the look and idea behind vertical node layouts however, there is one big glaring issue in my opinion...

    Primarily for latin based langues we read/write left to right. This can pose an awkward problem for certain nodes and how they size and layout. Aesthetics is quite important especially with nodes.

    My attached image of one of my projects should demonstrate this. This node laid out in a vertical manner may not be reasonable.

    upload_2021-10-22_14-36-59.png

    However, I'm sure creative design could designate a collapsible or hover(tooltip) to prevent sizing issues. But this would probably complicate the engineering coupled with design process.
     
  8. Coin9

    Coin9

    Joined:
    Feb 14, 2019
    Posts:
    16
    I think the vertical style is easier to understand but i still prefer the horizontal style just because there's more space to view your nodes. I would also like an option for the connection lines to be less bright and only highlight when hovering over with a mouse to reduce the messy look and maybe some kind of small pins to deform the connection lines so i could organize them better and not having to go under several nodes.