Search Unity

  1. Get the latest news, tutorials and offers directly to your inbox with our newsletters. Sign up now.
    Dismiss Notice

What is your opinion on Bolt visual scripting?

Discussion in 'Visual Scripting' started by rohitsingh21, Dec 23, 2020.

  1. rohitsingh21

    rohitsingh21

    Joined:
    Dec 23, 2020
    Posts:
    1
    So I've given it a try before and couldn't really get it to work as I wanted, but I've watched a video this morning about someone using visual scripting in one engine and using that and turning it into code despite being bad at it "or so they said" and I thought that might be a good way for me to finally learn how to make sense of programming as I can never manage to despite learning it for years xd

    Has anyone used it here? Is it any good or just a waste of time?

    Thanks in advance, also if you have used it and could link anything that would help me in figuring bolt out I'd appreciate it

    https://sarkarijobs.gen.in/
     
    Last edited: May 10, 2021 at 5:38 PM
  2. justLC

    justLC

    Joined:
    Oct 16, 2018
    Posts:
    44
    From my few experiences with Bolt I wouldn't recommend it for learning code. Also it throws too many errors that I don't understand. Makes a lot of things more complex than they really are. But this is only from my perspective as a person that didn't use a lot of visual scripting tools.
     
    Ruchir likes this.
  3. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    362
    I have been using unity for quite a few years now (since unity 4.5 I guess) and still for me the preferred way of creating logic is through code,
    Bolt's current implementation just screams at me for optimization in any real-world usage, it's just done in a really unoptimized way, even the variables are not type-safe, it has a lot of potentials as shown by unreal's blueprint system but bolt has quite a long way to go
    Currently, it's really unintuitive for me to use it especially because I need to create core gameplay systems and that for sure can't be based on such an unstable and performance-heavy base and as far as prototyping goes it's still far easier to create a script with intended features then bolt's current UX

    Although I do hope it changes for the best because as a programmer it will be much easier to provide a tool for designers but right now it's not for me
     
    awesomedata and justLC like this.
  4. Bezoro

    Bezoro

    Joined:
    Mar 16, 2015
    Posts:
    58
    I tried Bolt for quite a bit and I was very underwhelmed. Really poor performance, no type safety, no refactoring tools and it doesn't tell you that something is broken until you hit the broken piece of logic, which can be absolutely catastrophic if that sneaks into a released project, which is a very real possibility

    It also lacks most C# features which makes it very limited in what you can actually do.
    No delegate/event support for example is a massive problem in my eyes. And their custom event system that, kind of, serves a similar purpose is string based.
    Other things that come to mind is no inheritance, interface, struct, #define or generics support.

    Unreal Blueprints really helped me understand how code gets executed and flows.
    After getting comfortable with it I've stopped programming visually almost completely.
    Exceptions are HFSM or BT systems for AI/Character States which can really benefit from being visual.
    I think that visual programming has its place, but Bolt need some serious development before I will ever consider using it in an actual released project. Right now it's a nice toy, and can be useful to learn code flow. But for actual projects I would stay the hell away, it's a mine field.

    If you want a good visual programming solution that is very well battle tested, look into Paradox Notion stuff on the Asset Store.
     
    Last edited: Feb 11, 2021
    Ruchir likes this.
  5. sinjinn

    sinjinn

    Joined:
    Mar 31, 2019
    Posts:
    143
    Absolutely not waste of time. I'll tell you why. Coding is very hard. It's very hard and very boring. Have you seen these coding videos as a noob? You cant stay awake. I tried so much to understand it but like you I just can't take it. Every video is like disarming a nuclear bomb. You have to refer back to the code you are copying, trying to put all the syntax in place. etc etc. All of this in another editor. And then when you get the code working you don't want to change it, because you might break something and forget what it is you broke, because you have so many variables, and you have to keep reffering to your variables in the main body of your functions, so you have to read these god awful names of functions with underscores, etc etc etc.

    It will work if you do it that way. You will become great at code. You will be super employable and your salary will sky rocket. So do it that way if you "want to be a coder".

    However, if you want to have fun while learning how code works, choose Bolt, for your sanity. You have already said you just can't get code, so I'm presuming you actually know the basics but are struggling with an overview of how all these things fit together. Bolt is great for that. The color coding, only allowing particular ports to be joined together, the graph inspector, the "variables as a particular colour box", these are great helpers for to learn how the overall machine works. You are learning a lot of coding, but it's like it's for kids. You just hook things up because you can and it takes 10 seconds rather than 2 minutes.

    Your performance might suffer, but what do you care? really? it's not like you're actually shipping a game anytime soon. If you do then you presumably port it to C# manually.
     
    stuksgens likes this.
  6. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    135
    Bolt is great for Unity newbies, especially visual thinkers. It abstracts a lot of the initial complexity of C# and lets you focus on the design of your code with far better feedback on what's working or not working when compared to C#. This is why it's great for beginners. Later, the switch from Bolt to C# is nearly seamless too. So starting with Bolt and then graduating to C# would be my suggested learning path.

    Bolt 1 in its current state, however, is not fit for production. It lacks too many quality of life features, has fundamental design issues, and it eventually breaks down because of outdated tech it's based on such as FullSerializer or perhaps because the tool has never been stress tested in a major production project and it just crumbles under large amounts of data ie when you have a lot of custom types added. But most users won't come across the latter issue unless they're a year or two into a serious project.

    The current main Bolt 1 issues:
    1. Performance - reflection based runtime severely limits the application of this tool. You'd think Bolt would be good for simple games and in a sense it is if you're targeting Desktop, but mobile suffers both from bad performance and noticeably increased loading times.
    2. Variables system doesn't scale - it's fine for a small project but once your project grows, there's no way to organize or refactor variables. That's on top of all the other issues that originate from a loosely typed system such as not knowing the type of the variable in graph unless you manually look it up in a completely different window.
    3. The only way of communicating between graphs are custom events which are based on strings. There's no way to view how many custom events exist in a project, where they are, what calls or receives them. You can't refactor them either.
    4. Bolt's UI is IMGUI based, so it suffers from the same issue all other IMGUI based graph tools suffer from - it tanks editor framerate which often makes the game untestable in the editor unless you close all of Bolt's windows. Except, Bolt's errors in console when clicked do nothing, so you have to have the graph editor always open to debug your logic.
    5. Bolt's API was considered "unstable" by the original developer of the asset, which is why it was never documented. Custom node writing therefore has never been well supported in various ways such as nodes breaking in graphs when value ports are added or removed. And a compilation error inside custom node code can break Bolt, sometimes irreversibly. And these broken graphs have to be discovered manually by clicking and viewing each graph individually since clicking errors in console does nothing. So even though Bolt's shortcomings can be coded away somewhat, it's cumbersome. Prepare for dozens of lost hours dealing with this unsupported pipeline.
    6. Limited support for basic Unity C# features, such as delegates/callbacks and custom generics, which forces you to write custom nodes. See point 5 why this is not pleasant.

    I could still name a good dozen issues with the tool right now.

    According to Roadmap and previous official announcement threads, Unity will replace the current runtime with a new, much more performant runtime. They also have promised they'll improve both the variables and custom events systems, though it remains to be seen in what ways - if they'll be strongly typed. They're also working on replacing the current UI with their new Graph Foundations UI layer and a new API that's not based on the current API and will eventually be documented.

    So in a couple of years Bolt might actually be production ready. Until then, I'm sticking with C#. (If I was a complete beginner though, I'd start with Bolt. I couldn't wrap my head around C# in text form, but Bolt really revealed to me how code flows and how Unity is structured. Bolt's intelligent search, context relevant results, realtime code analysis and Play mode editing enables the user to explore and experiment in ways that just don't exist in C#. Bolt assumes the user doesn't know what they want to write, C# assumes the user knows exactly what to write).

    And if anyone is in serious need for a competent, production ready VS tool then look into Flow Canvas/Node Canvas combo. Those (unlike Bolt) are proven in production in well known indie and AA games such as The Long Dark, Graveyard Keeper and Kingdom series.
     
    Last edited: Jan 15, 2021
    ElveraLogie, sinjinn and REDvsGREEN like this.
  7. stuksgens

    stuksgens

    Joined:
    Feb 21, 2017
    Posts:
    135
    Remembering that most of these problems are currently being treated ... So it is likely that by 2021.LTS everything is already well underway
     
  8. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    135
    2021LTS is more than a year away. All of that will definitely be underway, just not finished or battle tested, therefore not production ready. Even if they manage to do all of that in a single year, I still wouldn't consider it production ready until the new changes have matured. My personal experience has shown that adapting new Unity tech is not worth it for my projects unless it's been out for a while - at least a year.
     
    m0guz and hoesterey like this.
  9. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    171
    Working on it !
     
  10. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    171
    We have plans to fix all your points in the future, start with 1.
     
    landonth, ericb_unity and REDvsGREEN like this.
  11. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    251
    Or you could use Playmaker in the meantime. It's a different kind of visual coding, probably higher level, but by now there's literally an action (equivalent of a method) for about any case you can think of.
     
    Ruchir likes this.
  12. Haneferd

    Haneferd

    Joined:
    Feb 3, 2018
    Posts:
    33
    I am just a hobby developer, but I really like the visual scripting tool. Have been using C# a while and before that C/C++ (professional at work). It took me some time to get used to get the right nodes in the graph, but after a while I figured it ou. And then, it started to be fast to get things up and running. I guess a combination of visual scripting and C# wold be a very powerful combination.
     
    theor-unity likes this.
  13. Ts1nd

    Ts1nd

    Joined:
    Jan 24, 2021
    Posts:
    17
    Bolt is terrible, cant even do simple things that are 1 line long in C#, the "coding" is very slow (why do I have to do 4 clicks to enter super unit??). The community is also bad, the amount of documentation and tutorial is almost zero. I made 3 topics here with questions and got zero answers. Now I started using C# and already doing things faster and on bigger scale than I would in Bolt.
     
    Last edited: Feb 10, 2021
  14. theor-unity

    theor-unity

    Unity Technologies

    Joined:
    Feb 26, 2016
    Posts:
    171
    Whatever works for you !
     
    Haneferd likes this.
  15. Starbox

    Starbox

    Joined:
    Sep 17, 2014
    Posts:
    251
    Hand coding is certainly faster at doing a great many things but the point of visual coding is to manage more complex operations in a visual way that speaks to people who want to see the logic of the code in a more obvious way. It gets time to get used reading classical code while visual organizing has advantages.
     
    ElveraLogie, Haneferd and theor-unity like this.
  16. Haneferd

    Haneferd

    Joined:
    Feb 3, 2018
    Posts:
    33
    I agree with that!

    I finally managed to create a Finite State Machine with super nodes, and I must say that following the signals in the graph when running the FSM is very helpful. Visual Scripting can be useful just to visualize complex logic. Imagine to create a digital twin of a fully automated distribution center with Visual scripting and gameobjects in Unity
     
unityunity