Visual scripting roadmap update - August 2020

Hi everyone,

We wanted to provide more details about our plan for Visual Scripting in 2021 and beyond, and get additional feedback from you. We would like to thank all of you for your dedication in engaging with us, and your direct and honest feedback.

We will soon create a dedicated forum for visual scripting conversations.

You can see the general outline of 2021 in this blog post:

Beyond the general excitement of bringing Bolt to all Unity users, many of you, on various forums and one on one discussions, have expressed concerns about the next steps for visual scripting in Unity 2021 and beyond for various reasons: incompatibility between Bolt 1 and 2; the role of DOTS VS; the fact that Bolt 1 is an asset and not a package. More generally, we’ve been asked how we will ensure both long term stability of this platform to secure your usage of it, while evolving it to the state of the art of visual scripting practice.

Our ultimate goal for visual scripting is to make it as universal and accessible as writing a simple script, so that it:

  • Enables more creators, in particular non-programmers, to leverage Unity and achieve their goals faster.
  • Improves team collaboration by giving artists more opportunities to work directly in the engine, closer to developers.
  • Maximizes every Unity user’s productivity, by progressively unifying graph-based tools, regardless of the workflow (gameplay, graphics, animation…) and regardless of the architecture (Monobehaviour or DOTS).

Quick recap of recent events
We had been developing a DOTS-based visual scripting tool for some time, which would have excluded all Monobehaviour projects from using it. To accelerate delivering visual scripting to all users, we acquired Bolt, a proven solution in production. The team at Ludiq were already working on Bolt 2 which was in an alpha state. Bolt 2 was a complete rearchitecture and not compatible with Bolt 1. Bolt 2 promised better performance through code generation, and a deeper emphasis of programming concepts, among other enhancements.

We’d like to share some of the aspects we needed to navigate, as this will help provide more context for the road ahead and why plans have shifted.

  • We needed a single visual scripting solution for all our users. There were 3 technologies that we needed to harmonize (Bolt 1, Bolt 2 and our internal DOTS focused solution). These were not designed to be compatible with each other.
  • Bolt 2 takes visual scripting towards a more programmer-centric approach, while our ultimate goal is to simplify the platform for non-programmers.
  • The Bolt 2 code generation process using CodeDOM had to be replaced by a more future-proof solution. Code generation for entire graphs also reduced our ability to support shipping non-DLC graph updates.
  • The Bolt 2 architecture wasn’t providing us with the best separation of front-end and back-end needed to ensure a progressive transition toward unified UX with other graph-based tools. A good separation is also essential to providing DOTS support, in the future.

Visual scripting plan for 2021 and beyond
We won’t ship Bolt 2. We will instead integrate Bolt 1 as a core feature of Unity 2021, so we can focus on evolving this platform in the direction of unifying all our graph-based tools. This milestone includes:

  • Shaping Bolt 1 as a core package that ships with Unity and progressively brand it towards Unity visual scripting.
  • Work on making the Bolt user experience align with Unity Editor UX.
  • Clarify and document the support, or non-support, of non-DLC graph updates, as well as visual scripting execution in editor mode. We wish to support both use cases, but there is still some on-going analysis in this area.
  • Complete documentation and learning content material.

In subsequent releases, we will leverage the technical know-how acquired with Bolt 2 and Unity DOTS VS, to continue to transform Unity visual scripting in order to:

  • Deliver consistent workflows and a unified user experience across visual scripting and all graph-based tools.
  • Support MonoBehaviour & DOTS with high-performance, snippet-based, high-level artist nodes.
  • Support auto-generated low-level API nodes to preserve the flexibility to use visual scripting for any C# exposed library.

Advantages of the updated plan

  • We are delivering visual scripting iteratively, meaning delivering concrete value today, while creating the conditions to support Bolt graphs as we move forward to a unified experience for graph-based tools. This also means you can safely build on top of Bolt, with Unity 2018 LTS, 2019 LTS, and 2020, because the data and acquired expertise will be forward compatible.
  • Starting with 2021, it will be safe to expect visual scripting to be available in every Unity users’ environment, simplifying production management, and tools development using visual scripting.
  • Our development team will be more focused on fewer technology components, accelerating our work in unifying the UX of graph-based tools moving forward.

Thank you
We fully realize this update will be disappointing to those of you who were highly involved in the development of Bolt 2, and have been waiting for it for a long time. This was not an easy decision to make. We believe that the world is a better place with more creators in it, and delivering a unified visual scripting workflow incrementally with fewer disruptions, will help a wider number of artists and studios to be successful with Unity.

We would like to hear from you, please send us questions, comments, and feedback.

Laurent

14 Likes

I am not sure how I feel about that but seems like a good shift overall. I am happy that Unity realized that those things should be unified sooner than later. But I have some questions:

  1. Does that mean that Bolt (let’s skip the numbering from now on :p) will have a backend refactor anytime soon? Currently, it relies heavily on reflection and misses type-safety (which was what I was most excited about Bolt 2).

  2. How will DOTS fit here? The blogpost barely mentions DOTS at all, and now that the focus will be in Bolt it feels like we won’t see a DOTS-compatible VS solution anytime soon, is that correct?

  3. Which features should we expect coming to Bolt in both short-term and long-term? Bolt was in “maintenance mode” and all the new features were coming to DOTS VS and Bolt 2.

5 Likes

Well I’m going to be one of the first to say I’m disappointed. Bolt being visual had the potential to teach programming. But not really in the bolt1 format as it didn’t have a like for like mapping to actually coding it.
Bolt2 had that. It had speed. It had power and potential and I feel it’s all but thrown aside in the new plan

13 Likes

Hi @brunocoimbra ,

  1. Yes backend refactoring is a major element of the transformation toward a unified visual scripting workflow working across monobehaviour and dots architecture. This and performance will come from implementing snippet-based nodes.

  2. Like quickly mentioned above, this is the main intent to provide one workflow, for any architecture. This is one of the main element of the rationale. I wish I would have been clearer about it, maybe I should rephrase some of the content?

  3. Yes, feature development is going to be focused back to the core visual scripting of Unity. This is definitely another element of the decision, enabling focus by being less divided across multiple technologies. In the initial drop in 2021, we need to complete a few things like doc and learning content, plus clarify editor mode usage and non-DLC graph updates. There are some UX adjustments planned too. Beyond this, please stay tuned for more update as we refine the plan.

1 Like

So this seems to indicate that DOTS VS won’t be developed anymore and instead will be integrated into Unity Visual Scripting (BOLT Integrated) at some point in the future most likely when the DOTS API is stable since stability is the highest priority now. So essentially DOTS VS is gone until then.

Is this correct?

That must’ve been a tough decision. I haven’t tried Bolt yet, and don’t know how much version 2 was supposed to improve it, but for me this makes things clearer and more predictable, and so makes it easier to make decisions regarding visual scripting in the near future. Thanks for detailing the plans.

2 Likes

Not quite. Trying to not go into too much architectural details, and knowing that there are may technical options in front of us to still chose from, the Unity DOTS VS contains both a front-end and a backend. We want to reuse the front-end to unify our graph-based tools, visual scripting being the main one, and keep using the DOTS VS backend as its implementation for DOTS.

It’s really a phased approach. Bolt accelerate visual scripting API-level nodes for monobehaviour, while DOTS VS was visual scripting artist nodes for DOTS. and we will make those 2 meet in the middle so we can have both API and artist nodes, working for both monobehaviour and DOTS.

Which tech is what doesn’t really matter as we’re focusing on a unified visual scripting. From the point of view of users, we aim at making those steps transparent.

9 Likes

Wow, thanks for the quick response!

That was pretty clear for me, my question is more about “when” (like maybe in 2022?) we should expect it. DOTS-VS was in the prototyping phase and receiving some good improvements, now seems like we are back to 0 (which is for a good reason, but makes me wonder if DOTS support is something planned for sooner or later on Bolt).

1 Like

The constant change of plans indicates that Unity lacks a clear vision.

29 Likes

As a person that spent many hours testing and discussing all the features and advantages of Bolt 2 that I was salivating for this is distressing news. I understand from a logistics point of view why you would approach your future plans this way, but is Bolt 2 completely dead? Or will it’s features live on through your new road map?

Like Events in Bolt 2 finally made sense and weren’t a wreck like in Bolt 1. The strong types, refs, enums, delegates and many other Bolt 2 features all gone? And most notably a “class” based structure. Is all that gone as well? Or will these things be put into this new incarnation of Bolt?

I see where you need to find efficiencies and stabilities in a long term outlook but are we throwing the baby out with the bath water?"

21 Likes

Hm, Bolt 2 code generation was the main feature I was looking forward to though.

The main problem with bolt to me was the lack of inspector tools, and how certain things that would work fine with code didn’t work with bolt. Like for example PPSv2 might work easily with Bolt 2 but doesn’t work at all with Bolt 1 (Without some written code to work with it).

At least for me I was hoping for a more unified experience between written code and nodes. I don’t exactly need it to be easier as much as I want to make sure me using bolt connects well with a proper programmer.

Cause with bolt 1, if I want to hire someone to work on an aspect of my game, they would need to know bolt, but with bolt 2 it doesn’t seem like they would.

4 Likes

I am not surprised by this at all. It was no secret that you guys would ruin Bolt. Fortunately there are useful alternatives like uNode that will hopefully see the developer choose to improve and expand to completely fill the gaping hole that you guys have left in the area of user-friendly yet versatile visual scripting tools.

3 Likes

I can’t tell a date. But VS for DOTS is already working. And we have now VS for monobehaviour. The limiting factor is our ability to bring them both together. This is not expected to be very hard, especially as we got a better focus with this decision. More details to come as we get closer to 2021 release.

1 Like

Ah alright. I wanted to see how DOTS VS was positioned in the new VS system So what I’m understanding is Unity VS will use the style of nodes/Graph View that DOTS VS has (Front end - So it looks like the other VS tools) along with Updated Bolt (Monobehaviour backend) DOTS VS (DOTS backend) but this will be released in a later phase.

So Monobehaviour workflow first with a new UI based on Graph View and DOTS workflow sometime after. I was wondering when Bolt would be transitioned to the Graph view so this is a welcomed change.

Also, does this mean the DOTS VS Drops will stop and maybe replaced with preview versions of Unity VS leading up to the 2020.1 release of the new tool?

I’m not trying to push DOTS VS I’m just trying to see how everything fits. I’m patiently waiting for it to become solid.

1 Like

How is it ruined? It’s simply being integrated into the editor with a new UI for the nodes and with better performance. Nothing is being removed from the tool, your imagination is running wild here.

2 Likes

I was looking forward to using Bolt 2 along with my hand written C# code for being able to visually setup how the code interacted, a UML diagram that actually drove the code. Bolt 1 is lacking so many features for this and just seeing the features and things people were doing with the early Bolt 2 alpha in the Bolt Discord server, I thought it would finally be possible… Hopefully you keep programmers in mind who want to utilize visual scripting as an additional tool in their belt.

11 Likes

Simple request:

Make Bolt 2 Open Source

27 Likes

I has been preparing to try out Bolt 2 to see if our team could use it in production. But today news pushes that plan further, we will stay with plain C# code for a while longer while keeping an eye on Bolt development.

2 Likes

Same situation. I even applied to the alpha and was willing to work towards making it production ready…

4 Likes

So my understanding is that Bolt2 is done, but the ideas/concepts from it we slowly be rolled into the core Unity VS (Bolt1). And im also understanding that DOTS VS is finished as well and its ideas for broader, artist-friendly nodes will be rolled into this new Unity VS. And Unity VS will freely work between gameobjects and DOTS.

Is this correct?

Though, Bolt2 seems mighty different architecturally, so i’ll be interested to see how a lot of those performance gains, and workflow improvements manages to transfer over without breaking compatibility.

Was looking forward to DOTS VS, but these changes and integrations seem like they’re for the best and looks to keep Unity simple. Can’t wait to see the fruits of all of this. Good luck

1 Like