Search Unity

  1. We would like to hear your feedback about Unity and our products. Click here for more information.
    Dismiss Notice

DOTS Visual Scripting first experimental drop

Discussion in 'Data Oriented Technology Stack' started by ans_unity, May 13, 2019.

Thread Status:
Not open for further replies.
  1. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    Hi everyone, some exciting news about Visual Scripting.

    Today we are releasing our first experimental drop to the community. We encourage you to download the build and start experimenting but first, let me start by stating some important disclaimers:
    • Not for production use.

    • Very early picture of what VS will be, not representative of the final version.

    • You will need to be tech savvy to use this version. Not yet ready for everyone.

    • Things will change.
    We share this build to be as transparent as possible with our process and get your early feedback. This is an opportunity for you to see how DOTS and Visual Scripting are evolving and participate in the discussion.

    These are the features present in the current build:
    • Nodes, links and stacks - Most functionalities are present

    • Graph manipulation - Most functionalities are present

    • Blackboard - Basic version

    • Searcher - Basic version, will definitely get smarter

    • Minimap - Useful for navigating large graphs, will eventually work with Searcher

    • Code generation - C#, DOTS compatible code instantly generated from the graph. Using Live Edit will generate another instance of the code that we do not merge well at the moment.

    • Live Edit - Change the graph at runtime

    • Notes - Add customizable sticky notes to your graph
    These are the features that are not yet available or that can’t be used without major pains:

    • Tracing, currently broken

    • Undo/Redo, unstable - will likely crash

    • Copy/Paste between graphs, unstable - will likely crash

    • Groups, unstable

    • Variables' creation is not present yet. The graph (System) has to be stateless. You can store state in components or use the GetSingleton node which wraps DOTS' EntityQuery.GetSingleton method.

    • High level nodes not yet available
    Again, this is a very early release, expect glitches, bugs, weird behaviours and incomplete workflows for the current features. Other drops will follow regularly, improving with every iteration until we reach our planned preview release for 2020.1.

    Here is a brief introduction to the Visual Script window:



    1. Build All button: Will compile the graphs. The compiled script will appears in Assets/Runtime/VisualScripting/[GraphName].cs. Note: You don’t need to click this button all the time to see your changes as we’re live editing but don’t forget to compile your graph before packaging your game.

    2. Code Viewer button: Will prompt a window with the generated code. The code is refreshed every time you make changes to your graph.

    3. Show/Hide the mini-map.

    4. Reset the blackboard to its original size.

    5. Refresh UI button. Sometimes, when you connect/disconnect nodes, you can see an issue where nodes are not updated. Trigger the Refresh UI button to fix visually update the graph.

    6. First, double click on the graph background to display this inspector. When checked, the system will use job when possible. If unchecked, the system will run on the main thread.

    7. First, double click on the graph background to display this inspector. Then double click on the stencil ScriptableAsset to access the stencil’s inspector. A stencil is what defines a graph. In the stencil’s inspector you can manage system’s dependencies by selecting which system runs after or before the current one.

    8. Queries: This is your entity queries. In this example, we want all the entities with a Translation component.

    9. Criteria: This a condition to iterate on entities. In this example we want all the entities that have a Translation component with a x value greater than 100.
    Steps to test Drop 1:

    1 - Download and install Unity 2019.2.0a14 win or mac (Linux will be supported at a later time)

    2 - Download and unpack VisualScripting project

    3 - Load the project with Unity 2019.2.0a14

    4 - (Optional) If you want some samples, download and import the sample unitypackage file

    If you find any major bug, you can report them in our Github repo. Please keep in mind that this is a very early version so our focus is not so much on the minor stuff yet.

    I'm sure you will have many questions, so please ask away!
     
    Last edited: May 16, 2019
  2. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,221
    Does it work with 2019.2 beta?
     
  3. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    2019.2 Beta might create some issues, 2019.2.0a14 is safer.
     
    psuong and hippocoder like this.
  4. Creepgin

    Creepgin

    Joined:
    Dec 14, 2010
    Posts:
    232
    Ah, a lovely Monday surprise! What time do you think this will get off google drive and be a preview package? During 2020.1alpha/beta or before?
     
  5. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    Yes the plan is to have our preview package release for 2020.1.
     
    FROS7 likes this.
  6. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,032
    Thanks for letting us test it out!
     
    FROS7 likes this.
  7. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,221
    I hope people will see it as something a bit new and DOTS-centric rather than the potential clone of blueprint some might be mistakenly expecting.
     
  8. dadude123

    dadude123

    Joined:
    Feb 26, 2014
    Posts:
    784
    This is pretty important.
    Just takes one official post stating this to avoid many months of misunderstandings, and all sorts of bad consequences really.
    People are ravenous for an official blueprints clone as we've seen in the many threads over the years. :D
     
  9. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    We are definitely DOTS-Centric but, like blueprints, we also propose a visual scripting solution. Could you expand on what you mean by "clone of Blueprint" and what you dislike about that eventuality?
     
    Lars-Steenhoff likes this.
  10. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    To add on that: we're not aiming for a blueprint clone. The goal is to minimize the usual performance trade-off with code generation while preserving a common language between programmers and VS users.

    We do minimize the complexity of DOTS - eg. component read/write access is automatically determined according to the current graph, but we still have the notion of query.
     
    Lars-Steenhoff likes this.
  11. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,032
    Would it not make sense to auto compile when packaging the game?
     
  12. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    That's what we do. We probably need to do it when an editor domain reload happens too just in case
     
    Lars-Steenhoff likes this.
  13. Flurgle

    Flurgle

    Joined:
    May 16, 2016
    Posts:
    368
    Nice!

    Looks like the node gets blurry after you zoom out, and then click a node on the mini map ('report a bug' window wasn't working)
    upload_2019-5-13_18-11-21.png
     
    Last edited: May 14, 2019
  14. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,221
    I don't dislike anything, I'm very happy. I'm just pointing out that you haven't actually explained the differences in thinking between the DOTS VS and general VS solutions at large.

    The users coming in might need orienting better, is my point, else some won't know what opportunities this better design is offering them and will quickly drag you back to whatever it is they already know.
     
    ans_unity, Akshara and Prodigga like this.
  15. thelebaron

    thelebaron

    Joined:
    Jun 2, 2013
    Posts:
    247
    Will the DOTS VS support jobs(or does it currently?)? I've only fiddled with it briefly, but I didn't see any indicator of it being in there
    - edit nevermind literally just read the double clicking the background to enable job support!
     
    theor-unity likes this.
  16. ans_unity

    ans_unity

    Unity Technologies

    Joined:
    Oct 12, 2017
    Posts:
    70
    Yes it does, you just need to tick the "use Job System" checkbox (look at point 6 in the window description of the original post).
     
    Lars-Steenhoff likes this.
  17. eobet

    eobet

    Joined:
    May 2, 2014
    Posts:
    176
    Sorry, but as someone who admittedly jumped ship to Unreal in part due to not wanting to code anymore (I forgot my last semicolon or bracket in this lifetime, it's not for me), will you be able to do full game using only Visual Scripting?

    I ask, because the announcement with the switch to DOTS focus makes it sound (to me), like it's only a companion to that system and C# is still required to get a full game out the door...

    Also, with the hundreds of add-ons from the asset store which already have custom editor UI and might not get updated for this anytime soon, will the Visual Scripting system automatically be able to hook into old add-ons, or will it require all add-ons to be updated in order to be able to talk to them?
     
  18. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,196
    Do I understand correctly that the graph doesn't exist in real game's runtime? (So it is a code generator and not a behaviour tree of sorts, and I could not live edit programmatically in the real game.)
     
  19. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    Fair enough. Usual disclaimers (everything is subject to change, etc), but at this point:
    - visual script generate systems, so the usual workflow "drag and drop the script on an object" doesn't make sense. we're investigating solutions for that as it seems more intuitive.
    - targeting one specific object is more work than all of them (same as DOTS)
    - code generation means strong typing
    - the visual script asset doesn't exist at runtime
    - coroutines aren't there yet (that's a bit more code to generate - WIP)
     
  20. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    A full game is the goal. We're not there yet (again, very early build, usual disclaimers, ...) but that's the goal.

    We only expose one type of graph/script at this point: DOTS systems, but we'll release more.

    What do you mean by custom editor ui ? how is that related to vscripting ? Not sure I get the question.

    Yes. The whole tool is designed as a compiler with a visual frontend and a C# backend. We could generate assets too (or make a different kind of graph that outputs an asset instead of code)
     
    hippocoder and 5argon like this.
  21. facundo_unity961

    facundo_unity961

    Joined:
    Mar 14, 2018
    Posts:
    6
    Don't know about you but I had to remove both the Analytics and TextMesh Pro packages to get it to work.
    I'm on a Macbook using Unity 2019.2.0a14 on Mojave.
     
  22. eobet

    eobet

    Joined:
    May 2, 2014
    Posts:
    176
    Sorry, I guess my terminology is a bit fuzzy since stopping using Unity. What I meant, will Visual Scripting be able to set and get gameobject component parameters like these here, for example, without updating the purchased assets (Final IK in this case):

    Capture.PNG
     
  23. thierry_unity

    thierry_unity

    Unity Technologies

    Joined:
    Jun 10, 2015
    Posts:
    172
    have you tried to re-import all? if not, can you try it and tell me if it works.

    thanks!
     
  24. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    Oh, right. We gave generic get/set nodes that work for that - just plug anything in, we'll let you pick which properties to get/set
     
    eobet and Lars-Steenhoff like this.
  25. facundo_unity961

    facundo_unity961

    Joined:
    Mar 14, 2018
    Posts:
    6
    Same result.
    Code (CSharp):
    1. Assembly 'Packages/com.unity.analytics/Unity.Analytics.Editor.dll' will not be loaded due to errors:
    2. Unable to resolve reference 'UnityEngine.UI'. Is the assembly missing or incompatible with the current platform?
    And errors all over about UI, Button and such being missing.
     
  26. thierry_unity

    thierry_unity

    Unity Technologies

    Joined:
    Jun 10, 2015
    Posts:
    172
    feel free to attach the full project here, ill try to have a look, im also using Mojave and didn't had this error
     
  27. SamOld

    SamOld

    Joined:
    Aug 17, 2018
    Posts:
    75
    Does this aim to provide any value to those of us who like writing our code as code, or is it here just to be an alternative?

    I like the way it looks. Will a version of this same interface be used for the full version of the entity debugger?
     
  28. Flurgle

    Flurgle

    Joined:
    May 16, 2016
    Posts:
    368
    I'm loving the preview. The potential is insanely huge...

    Though it appears unusable for me atm. I'm using Windows 10, 2019.2 a14:

    I'm not sure how this happens yet, but my visual scripts always get corrupted eventually. The generated code is fine, so runs ok, but I can no longer use the visual script. I can't fix it, or add anything new. For example, I'm doing a simple ship moving sideways and rotating a bit based on user input:
    moveShip.gif
    So it applies a transform, and rotate, but as you can see below, the (Edit) Transform is gone, and disconnected from the inputs:

    upload_2019-5-14_16-31-46.png

    This happens anytime I create a basic game object, tag it with a ComponentData, then use it in a visual script, and try to do something like rotate / translate.
     

    Attached Files:

    Last edited: May 15, 2019
    hippocoder likes this.
  29. vladimirn

    vladimirn

    Unity Technologies

    Joined:
    May 16, 2018
    Posts:
    1
    This is an alternative.
    Visual Scripting can make it easier to script with DOTS.
    As the DOTS API and tooling will mature, programming with DOTS in C# will get easier as well.
    The goal is not to push Visual Scripting over C# but to provide a way to script your games without diving deep inside the tech/programming behind DOTS.

    The look and feel of Visual Scripting are not final and will most likely change. We do strive to have a unified user interface and experience in the editor though so I expect that DOTS related tooling and VS will share a lot visually.
     
    Last edited: May 14, 2019
  30. facundo_unity961

    facundo_unity961

    Joined:
    Mar 14, 2018
    Posts:
    6
    In case I wasn't clear, I was able to fix it by removing those two packages, I was just letting you know that it might not be working for everyone off the bat.

    Drive link
    What I did in this link:
    - Unzipped the project and opened with Unity
    - Re-imported the project
    - Confirmed that the error persisted
    - Deleted Library and zipped everything else

    If you need Library too, let me know.
     
  31. BenzzzX

    BenzzzX

    Joined:
    Jun 4, 2018
    Posts:
    6
    I'd like to see the concept of FrameGraph.Where:
    • Pass is a single job processing data(components or other data) implemented by C# or VS
    • FrameGraph is build/compile from Passes configured by C# or VS.
    And then we can achive many great feature with it like:
    • auto job dependency
    • force decuple
    • transient variable auto lifetime
    • may auto generate netcode with some meta info
    • switch feature or swap pass at runtime by dynamic build/compile
    And here's pictures to show some idea.

    upload_2019-5-15_5-6-10.png
    upload_2019-5-16_1-31-33.png
    upload_2019-5-16_1-35-59.png
     
    Last edited: May 15, 2019
    theor-unity and AlanMattano like this.
  32. rubeng

    rubeng

    Joined:
    Apr 20, 2013
    Posts:
    35

    Hi, I think your library might be corrupted, I am getting similar errors in our build server that get fixed if you clean the library.

    Here I am trying to get more info about it https://forum.unity.com/threads/uni...pted-in-our-build-server.677338/#post-4540753

    Hope it helps

    Ruben
     
  33. myanko

    myanko

    Joined:
    Nov 9, 2013
    Posts:
    3
    I'm getting the same issue. The translate node is broken. It corrupt my scripts.
     
    Flurgle likes this.
  34. myanko

    myanko

    Joined:
    Nov 9, 2013
    Posts:
    3
    I'm on the personal version of unity and graphs are looking weird with light skin on top of the visual script dark skin. upload_2019-5-15_0-32-24.png
     
  35. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    228
    Is this going to be merged with Unity Tiny?
     
    Ham-Dongki and GliderGuy like this.
  36. TheFuntastic

    TheFuntastic

    Joined:
    Feb 11, 2013
    Posts:
    17
    Great to see Unity working on this... I assume the horse has already left the stable however 'VS' in this thread is very confusing due to the association with Visual Studio. Can see this only getting worse and muddying the google waters as it proliferates.

    Some sort of named title (like 'blueprints') avoids the problem but also probably easier for new comers... food for thought.
     
    SamOld likes this.
  37. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,032
    Perhaps UVS? Unity Visual Scripting
     
    TheFuntastic likes this.
  38. SamOld

    SamOld

    Joined:
    Aug 17, 2018
    Posts:
    75
    That has potential confusion with texture UVs.
     
  39. andybak

    andybak

    Joined:
    Jan 14, 2017
    Posts:
    130
    I'll second this. It might seem like quibbling but it makes life slightly harder for everyone for basically forever!

    It's damn hard to find stuff about the VFX graph because the official name is wordy and generic and everyone picks their own abbreviation.
     
    SamOld likes this.
  40. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,631
    While it makes sense to use abbreviation of VS for Visual Scripting, I would be voting, to find alternative naming, to avoid naming conflicts. GS Graphical Scripting, VDOTS, or DOTSV / DOTSVS as per thread naming. Just a thoughts.
     
    createtheimaginable likes this.
  41. PendingFox

    PendingFox

    Joined:
    Jan 15, 2017
    Posts:
    35
    ^
    That or simply DOTS Editor (DE) or even DOTS Designer (DD). Hard to confuse that with anything even outside of Unity.
     
    Last edited: May 15, 2019
    StormHo94 and dadude123 like this.
  42. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,032
    All good

    DE= Germany
    DD= is double D
     
    Last edited: May 15, 2019
    MostHated likes this.
  43. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,631
    I like that propositions.
    Just an extra thought, to expand upon.
    VDE, VDD, as Visual Dots Designer / Editor
     
  44. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,631
    Did you try search for Unity DE, or Unity DD?:)

    Is hard to avoid 100% any ambiguous dual meaning however.
    But desired meaning can be obvious, in the content we are searching.
     
    dadude123 likes this.
  45. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,032
    Yea Its all good, I'm already very happy that we get this toolset, no matter what the name
     
    theor-unity likes this.
  46. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,221
    DOTS VS, or DOTS Visual Scripting is very clear to me.

    The DOTS prefix is ideal because it's clear what break there is with mono land and you'll have DOTS Physics or DOTS Audio... etc

    Simply pefixing anything with "Unity" when it's all inside Unity? not so useful :D
     
    Lurking-Ninja and AlanMattano like this.
  47. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,631
    My further random thoughts.
    DOTS Architect?:p
    Some form of synonym of Blueprint.
    I think people would like in general avoid of having VS in abbreviation, to avoid potential confusion (If justified?).
    I suppose anything will be accepted. More is about deciding, which naming will generate less rant :D
     
  48. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,221
    No, keep it real. DOTS means Data Oriented Tech Stack and VS means Visual Scripting.

    It's better to just tell people what something is rather than add a catchy name. Mecanim and Shuriken are bad ideas, Animator and Particle System are good ideas.
     
  49. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    Any error in the console ? maybe when you first load the graph ? Otherwise ti would be great if you could send us the graph asset to investigate.
     
  50. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    21
    aaaa
    We definitely need to fix that, thank you for the report
     
    psuong and FROS7 like this.
Thread Status:
Not open for further replies.