Search Unity

Why would experienced developers care about visual scripting? It’s only for people allergic to code, right? We recently sat down with the author of Bolt and Chronos to hear how he got started, his ideas on code visualization, UX and the Asset Store itself.

The man behind popular Asset Store packages Bolt and Chronos is Lazlo Bonin, an award-winning 24-year-old, tool and game developer who works out of the collaborative, brightly lit GamePlay Space in downtown Montreal.

Bonin is passionate about contributing to the Unity community: “At some point when you spin off a tool from a game you’re working on – and it gets some level of polish and usability – it feels wrong to not share it. My first impulse is that I want other people to have it, and I think a lot of toolmakers have the same mentality. They don’t want their peers to have to reinvent the wheel, which is like Unity itself: Why would you code your own game engine when you have all these tools available?” And of course if your tool becomes popular, then it can help bootstrap the game that gave birth to it.

Long before he got started making tools, however, he was a self-taught game hobbyist: “When I was around 10, a cousin came over to my place, installed Visual Basic and left without any instructions.” While Bonin had been coding HTML, this was a completely new challenge for him. Fast-forward a couple of years and he was a super-intense hobbyist making numerous, unpublishable games that he laughingly describes as “crazily ambitious projects that I would discourage anyone from ever trying!”

When he was 19, he discovered Unity and began getting more serious about game dev. He gives shout-outs to assets like Full Inspector, which “was a godsend – it really supercharged the Unity Inspector and gave me much more flexibility in my designs. It was the first asset I imported on every project.” More recently, Bonin uses Odin – Inspector and Serializer a lot: “It’s one of the most useful, polished and amazing tools on the Asset Store.”

Bolt publisher Lazlo Bonin at GamePlay Space in Montreal.

Bolt: Forged in a game

While still a hobbyist, Bonin raised money for his education by designing websites and contributing to other people’s games, which led to the idea for his first asset, Chronos. “I was working on an unreleased tower-defense game and I wanted to slow my enemies down, keep them out of reach so I could have power over them. Then I realized that I should build such a tool for myself AND make it available for other people,” which he believes “is the spirit of the Asset Store” – taking shareable parts of the game you’re working on and package them for release to help other devs.

Like Chronos, Bolt was born while Bonin was working on another project. “I was on a small team doing a narrative, walk-around experience called Ephemera that takes place in Montreal, and we started looking for visual state machines that could help our artist and animator contribute to the scene structure and the gameplay while I focused on the core systems and coding. We looked at some solutions – and there were some really good ones on the Asset Store – but I’m a bit of a perfectionist so I really wanted it to be exactly the way I had in mind.”

While the Ephemera team sought funding, Bonin rolled up his sleeves and spent approximately nine months developing Bolt alone. “Once I got started on some of the features, I really wanted them to have an extra level of polish so I had some intense weeks! But it was worth it because it turned out the way I wanted it to be.”

Given his game-dev and design backgrounds, he did all the coding and design work.

“That was very important for me because I wanted to make a visual tool, a tool that’s meant to work for visual thinkers, people who enjoy good design and visual feedback, people who want to know what’s going on at a glance, know when and where there’s an error or warning, for example. These considerations were as important to me as the back-end engine. So, as well as all the possibilities of what you can do with it, I focussed a lot on how it feels to use it.”

A Bolt Flow graph in action.

Once he’d laid the groundwork, but before it was truly functional, he solicited important design feedback.

“After around six months I put some experienced Montreal game-dev people in front of Bolt and asked: ‘Is this intuitive to you? Do you understand what happened here when I connected these two things? When I show you this graph, is it clear what it does?’”

When they couldn’t tell or didn’t know what was happening in the interface, he retooled the GUI to make it more intuitive. In the last few months of development, he put together a small group of people and had them alpha-test Bolt thoroughly.

Why he thinks Bolt can help fellow coders

Bonin is used to pushback from some developers on the idea of visual scripting. When he first announced Bolt’s availability (in the summer of 2017) he got a few comments like: “I don’t understand why a programmer would ever use a visual scripting tool.” So, as an experienced coder, why did Bonin spend nine months of essentially unpaid work developing something he didn’t necessarily need?

“As programmers, we have to realize that there are people out there who think and learn differently than we do and need different tools. It’s okay to see the value of that.” As obsessed with good design and user experience (UX) as he is with coding, Bonin’s been reading design thinkers like Bret Victor who advocate for better tools and ways of teaching programming.

“Victor says things like: ‘We innovate for the end users but not for our fellow devs. We don’t spend enough time improving their experience.’ He asks: ‘Why are we still coding blindly in text editors and have no idea what’s going on? How am I supposed to know that this value has an impact somewhere else and how am I going to visualize that?’”

Unity’s free Space Shooter demo after Bonin converted it to use Bolt.

Flow graphs vs state graphs

While one of Bolt’s features is flow graphs, Bonin is honest about the usefulness of them for adept developers.

“Look, if you’re a coder, you probably won’t need the flow graphs because Bolt gives you pretty much a one-to-one translation of code. However, state graphs can be quite beneficial even when you know how to code because they let you structure your logic in a way that’s not easy to visualize in code.

“For example, you could be looking at a gameplay scenario and thinking ‘This character is in an idle state, and while it’s in that state I will call other functions. And when an enemy comes nearby I will go into chase state, and in that state, I will call a bunch of other functions. . . . so it can be hard to visualize the code in all those states. That’s where a higher-level visualization can really help some people.”

Sample State graph showing AI behaviour for an NPC: Idle, patrol, chase, attack, etc.

Another area that he feels appeals to developers is that everything in their Unity code base is directly available in Bolt, as there is no integration layer between Bolt and Unity, which also simplifies maintenance. “You have immediate access to your own character classes and your own item classes, etc. You can just call functions from these inside Bolt and set properties. And an advantage for me is when Unity releases a new version with new components, etc., I don’t have to do anything nor do my users: Bolt just automatically picks it up. It directly analyzes and reads the entire code base and gives you options.”

Different aptitudes in the team sandbox

Bonin also sees Bolt – which has a user base of nearly 3000 – being employed by teams that have a mix of skill levels.

“If you have a diverse team with coders and artists, you can have the coders focus on some core systems, major C# classes, and how they interact, and still give your designers and artists access to them in Bolt. They can just play around with the parameters, figure out the structures, etc., without having to worry about how they actually work on a code level.”

In fact, he encourages that kind of approach for people just starting out. Even though he has provided extensive documentation, including tutorials, some people just want to jump in and see what happens.

“I have some artist and designer friends who when they first saw Bolt said, ‘We don’t know where to start,’ so I told them, just add a Bolt component to one of your GameObjects and press Play. And while it’s playing, you can keep adding nodes to it to see what they do. That’s one advantage to Bolt – you can do live editing and see everything in real-time. You can add, remove, change anything you want – it’s a kind of sandbox for you getting to know the engine, getting to know the tools that are available to you and hopefully trigger your creativity.”

2D platformer from a Bolt tutorial – A good sandbox for visual scripting.

A day in the life of an Asset Store publisher

So with thousands of users, more than 500 of whom are members of the Bolt community hosted on a Discord server, what’s Bonin’s typical day like?

“I start by reviewing private tickets, requests for education licenses, etc. Then I check to see what the community is saying, what they’re suggesting for ways to improve Bolt. And some of their ideas make a lot of sense, because when you get deep inside your own project you can sometimes lose perspective – so the community really helps me stay on track. Then I move on to fixing bugs. And with my free time I start working on the new features.

Being a one-person operation requires managing user expectations. “I recently had to stop referring to Ludiq as ‘we’ and only use ‘I’ so that the community understands why some things don’t get done as quickly as they might like. And I think a lot of the users understand that because my road map is public. While I get a lot of people drooling over new features, I still have to be careful about what I promise to deliver and when,” he says.

Ludiq’s headquarters in Montreal.

Advice for people creating their own tools

Finally, what would Bonin say to anyone, like himself, working on a game when they suddenly realize that they could spin some of their IP into an asset to assist others and possibly help finance their own passion project.

“On the design side, I suggest mocking up your tool, planning your UX and interactions, studying how the Unity Editor works and what its design language is. Familiarity is key for a good Unity tool, and I think a lot of people overlook that step. And on the technical side, if you’re just starting, I would recommend doing this tutorial for scripting custom tools, processes and tasks in the Editor, and you can also familiarize yourself with the Editor GUI API and its intricacies (check out this post on the Unity blog).”

Free for new Unity Plus subscribers until April 5

If you sign up for a new Unity Plus subscription until April 5, you’ll get Bolt for free. Our Triple Boost with Unity Plus campaign also includes a full year of Unity Game Dev Courses at no additional cost and 20% off selected Asset Store products.

Get Unity Plus

More about Visual Scripting

Learn how to get started using Bolt in this recent live session hosted by Unity’s own Ethan Bruins:

Go to our Visual Scripting page to learn about similar packages available on the Asset Store.

 

20 Comments

Subscribe to comments

Comments are closed.

  1. Andrew Mitchell

    April 22, 2018 at 5:18 am

    Unity you should buy and integrate this into the base Unity engine, like you did with Textmesh Pro and Probuilder. It will really help out beginners. Will also be a perfect complement to the shader graph, and a nice addition for people who used Unreal Engine for it’s blueprint system.

  2. Curious, why is Unity getting behind Bolt vs Nottorus? I’ve not seen any clear cut answers yet, but some things I’ve seen has lead me to believe that Nottorus is a superior product. What’s your reasoning here Unity folks? Truly curious as there must be something I’m not seeing!

    1. Well…Nottorus is $150 for a product that is no longer being supported or developed after next month (04/2018).

  3. Bolt has helped me build my first game faster. It’s nice to read about Lazlo and all the hard work he put into his product. Keep up the good work Lazlo! and thank you for answering my questions and your tutorials.

  4. Buy it Unity! put it to your free plugins.

  5. That’s cool Laz!

  6. How does Bolt compare to PlayMaker? Is Bolt now the officially recommended visual scripting tool?

    1. Hi Hans, thanks for your interest. From time to time we profile popular assets and inspirational publishers, and since Bolt is fairly new and popular (and free with Unity Plus at the moment), we decided to provide a behind-the-scenes view of what it’s like to create, publish and support such an asset.

      There are many great visual-scripting tools out there in addition to Bolt such as Playmaker, uScript, FlowCanvas and more. You can see the available visual-scripting assets, including many currently discounted ones for Unity Plus and Pro subscribers, here: https://assetstore.unity.com/categories/tools/visual-scripting

      Regarding Playmaker, another 5-star visual-scripting tool, Ludiq has an extensive feature-comparison table where you can see how it, and many other visual-scripting tools, compare to Bolt: https://support.ludiq.io/knowledge-bases/4/articles/222-compare-visual-scripting-tools-for-unity

      And we ran a blog post on Playmaker last year: https://blogs.unity3d.com/2017/05/04/spotlight-on-playmaker-visual-scripting-that-lets-you-bypass-the-code-and-unleash-your-creative-potential/

      I also encourage you to check out the Unity Forum, the comments on this post, and other sources as you inform yourself about the best Unity tools and assets for your needs.

  7. That’s all good, but when I can write the flowgraph above in just 6 or 7 lines instead of 20 node and connection and read it much easily, what’s the point of going visual?

    void Update () {
    float time = Time.time;
    Color col = new Color(Mathf.Sin((Input.GetKey(KeyCode.LeftShift))?0:time), Mathf.Sin(time + 1f), Mathf.Sin(time + 0.5f));
    if (Input.GetKey(KeyCode.Space))
    {
    Debug.Log(col.r);
    GetComponent().material.color = col;
    }
    transform.Rotate(Vector3.up, Time.deltaTime * speed);
    }

    1. Not everyone is an experienced programmer. Some people like the simplicity of the visualization

      1. Why only for plus version is it avialalbe for free unity and order it asset store

        1. it’s not ONLY for plus version; it’s available fro ALL versions; PLUS version has it only DISCOUNTED on the store

    2. I love it when coders equate # of lines to # of nodes nodes in visual script. I’ve heard this so many times. Ahhh, the thinly veiled condescension, and so far from any real logical comparison that an empathetic designer minded person would immediately recognize. Consider the knowledge it takes to find, construct, and properly order the syntax of said lines – even with the eye sore that is visual studio. Consider that a single node abstracts all of that, hiding it behind the ease of simply dragging it onto the canvas and hitting play. Then seeing how it reacts with other nodes as they are arranged in real time, seeing not just their interaction in the scene but also the real time visual feedback of the state flow in the nodes. When a button is down what nodes are being used? What aren’t? What nodes are not even being accessed? Brett Victor indeed. He warns against this shallow minded creativity killing assault by individuals who think in this narrow minded fashion. Go Bolt!!

      1. Agreed. The question of “which is better” isn’t really accurate, because it depends on so many things, like the experience level of the programmer and the task at hand. Some things can be much more streamlined in code, for sure. Other things benefit from the visual paradigm, which also allows non-coders to understand what’s going on. Both are important.

        Two critical factors supporting visual coding:
        –it dummy-proofs code-based errors: syntax, spelling, number of arguments, etc. A lot of this is solved with code hinting, but there are still a lot of errors possible.
        –it can be manipulated in real time. One single change to one script and you have to recompile everything. This can stretch into several minutes in complex programs. Again, you can minimize compilation rounds by exposing variables in the Inspector to tweak, but the countless other changes in your scripts must go through these cycles. It can really eat up a lot of time eventually.

        I teach game design at a university where the two main tracks are game design and animation. The animation students I’ve had will really appreciate visual scripting, and I hope to incorporate it in future classes. They have to learn some code as well, which is important, but I think tools like these will keep them developing into the future…most don’t seem to continue developing using code after the required classes in it.

  8. Great plugin, Unity should just add it to base Editor like ProBuilder

    1. Yes!!!! :)

  9. I am pretty sure that Bolt is a solid visual scripting plugin. What I am also sure about is the fact that Unity Tech. seems to be favoring this particular plugin. Blog posts and videos and streams and whatnot are all indicating that. There are other visual scripting solutions out there which could do with some love from Unity as well. I can totally see how this special treatment would tick off other plugin developers which again, have not gotten this royal treatment from Unity.

    1. Agreed! I’ve been using uScript for years now, it’s probably one of the first, if not the first stable/reliable common purpose visual scripting tool in the unity world. Also there is a free personal/learning version available, meaning you can try it before you buy it.

    2. I have had the same feeling about this since Bolt had been released, Unity picking Bolt out and pushing above other visual scripting tools. I own several, use the better ones, and I see that there are other tools as good and feature rich as Bolt, also good looking ( Personal favourite: FlowCanvas+NodeCanvas).
      So what is the reason for pushing Bolt?

      1. sales