Search Unity

Recommend your favorite visual design/scripting tool!

Discussion in 'General Discussion' started by tmcdonald, Mar 20, 2019.

  1. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Hi there!

    I'm currently interested in finding an asset for Unity similar to Blueprints for Unreal Engine. I want something that I could use to visually organize finite state machines, behavior trees, and other node- or graph-based data structures. I am a programmer by trade (working in C#), so coding isn't an obstacle for me - ideally, this tool would allow me to create custom nodes (again, a la Blueprints.) This tool should ideally be geared equally toward designers as it is to programmers (with the tie going to the designer, if that makes sense) - if I am working with a game designer or artist, they should be able to use this tool to express themselves without needing me to guide them through the process.

    I've been doing some research into PlayMaker, Bolt, and NodeCanvas/FlowCanvas. But without being able to try them before buying them, and not interested in just throwing around a couple hundred bucks to figure out which is right for me, I'm hoping that some of you have gotten a chance to play with one or more of these tools and can give me some pros and cons of each! Ideally I'd like a single tool that handles all use cases (wouldn't we all), but I understand that I might end up having to go with a combination, a la PlayMaker + BehaviorTrees + DialogueSystem.

    Thank you so much for your time.
     
  2. konsic

    konsic

    Joined:
    Oct 19, 2015
    Posts:
    995
    2019.2 will have own visual scripting tool
     
  3. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,157
    This, and it looks like it will function very similarly to the Visual Effects Graph.

    UnityVS.png
     
  4. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Thank you!
    According to the devs, because it is being migrated to pure ECS (which is certainly exciting to me), the release of 2019.2 is delayed (I don't even think the visual scripting is in the current alpha.)

    https://forum.unity.com/threads/uni...cripting-in-2019-2.577084/page-2#post-4146832

    I'm concerned that it might be several months (possibly even near the end of the year) before we see it released. Thoughts?
     
  5. konsic

    konsic

    Joined:
    Oct 19, 2015
    Posts:
    995
    All these changes Unity got this year, I wish they were there 4y ago.
     
  6. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Oh yeah, definitely. I think that Epic has really pushed the Unity team to excel. Competition has been great for developers, and by extension, their customers. I watched Unity at GDC night before last (I think?) and it was just awesome.
     
  7. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    I have been waiting for the unity solution for a long time, in the mean time I recommend playmaker, it ls battle tested
     
  8. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    What do you like about PlayMaker? Have you made anything cool with it?
     
  9. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    It allowed me to make my first game in 2013.



    It very easy to make game states.

    For example connecting on collision events to radom sound effects and particle effects

    And when I mean battle tested I mean succesful games like Inside, heartstone, Hollow knight have been using playmaker.

    Also I like unode as it can read and output c# code.

    https://assetstore.unity.com/packages/tools/visual-scripting/unode-visual-scripting-101176

    But playmaker is more high level, you make playmaker actions in C# and you use these actions in the editor to connect to other actions.
     
    Last edited: Mar 20, 2019
    HogofSteel and hippocoder like this.
  10. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    I've purchased and used all the visual scripting solutions you mentioned- Playmaker is my favorite- I made several games with Playmaker + Behavior Designer before I learned to program.

    I now use Playmaker for high level state management only and its REALLY good at that. I also still use Behavior Designer heavily albeit with lots of custom tasks.

    Playmaker and Behavior Designer also play very nice together- they both make creating custom actions/tasks very easy. I also use Dialogue System and highly recommend it as well.
     
  11. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Very cool!

    As someone who wasn't a coder, do you feel like these tools are very designer-focused? As in, if I were working with a designer with zero programming experience, we could feasibly work together and they would have a decent idea of what's happening?
     
  12. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,635
    I thought Behavior Designer was tricky to get into just because I had to learn to think in terms of behavior trees. If you already have an intuitive grasp of behavior trees then it should be easy, but in that case you're practically a programmer already. :)

    If you know some coding, It's really easy to write your own nodes too. There is a template provided for each type of node.
     
  13. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    For me playmaker is as simple as it can be, the real power is in making your own custom actions and using them together with the already provided actions.

    And you can also do method calls to normal c# scripts, so a designer for example can run functions in your scripts without needing to be able to code.
     
    HogofSteel likes this.
  14. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    Yes I would say they were designer focused- I came from a background of 3d animation and I was able to grasp them pretty quickly-

    I would recommend trying to narrow the scope by only selectively installing Playmaker actions as the default installs hundreds or thousands of actions- that can be daunting/confusing to a designer- as to what action to use-

    I think it would good to selectively add/create Playmaker actions for the specific things they need- and only add the ones they need. So start with no actions then add only the ones they will need/you want them to use.
     
  15. Regularry

    Regularry

    Joined:
    Aug 9, 2008
    Posts:
    161
    My favorite visual design/scripting tool is easily Catsoft Game Creator. In fact I think it's my favorite thing I've ever gotten from the asset store.

    It's different in that, rather than nodes, it uses an inspector based system to create logic. While in some cases this approach could be more limited than what is possible with nodes it makes up for it by being simpler to work with and by being a modular system with ready to use components you can plug in for all sorts of things. There are official modules for inventory, quests, dialogues, stats, and behavior, and also more user created modules you can download from their hub site.

    Integration with Bolt is on their roadmap so eventually it will be possible to have the best of both approaches.



    https://assetstore.unity.com/packages/templates/systems/game-creator-89443
     
    Last edited: Mar 21, 2019
    Lars-Steenhoff and SLASH24 like this.
  16. My favorite visual scripting tool is Visual Studio. It's in its name.
     
    Ryiah and Peter77 like this.
  17. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    That seems very interesting, but I wonder how limited it is compared to PlayMaker?

    I believe the "Visual" in Visual Studio comes from when it was used primarily for Visual Basic, and (I believe) featured a drag-and-drop interface for building Visual Basic applications. Assuming you aren't referring to that, I think you're just being cute?
     
    Amon, SLASH24 and Lars-Steenhoff like this.
  18. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,635
    It's worth noting that Game Creator is not just a scripting tool. In addition to just visual scripting, it also implements a lot of high-level game concepts for you. Things like characters, camera controllers, etc. So really, it's like a whole game creation framework.
     
    SLASH24, Regularry and Ryiah like this.
  19. Yeah, I'm just "being cute". :D

    BTW Visual Studio got its name from the fact that it allows editing Windows Form Applications (windows GUI, windows, menus, buttons, etc) visually. Nothing to do with Visual Basic AFAIK. From the start it supported multiple languages (J++, C++, VB, FoxPro). But this was back in 1997.
     
    HogofSteel and SLASH24 like this.
  20. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Cool, did you have anything to add re: assets for visual scripting?

    Whoops, my bad! You're right, my uncle gave me some coding tools around that time (I was in 7th grade) and it's been a while so my memory definitely mistaken. (Not a humble brag, I was terrible with them.)
     
  21. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
  22. Lars-Steenhoff likes this.
  23. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Here is the reply for posterity:
    I think I've actually read this. As someone who has worked several years writing enterprise software, writing and maintaining a pretty extensive microservice architecture, I believe that complex systems and workflows are well-suited to visualization. At the end of the day, the design and architecture of a system is far more important than the lines of code used to express it. Additionally, software developers are often addicted to "reinventing the wheel" and spending too much time writing boilerplate code that offers little in terms of business value. Just today, I spun up three more consumers that will process hundreds of thousands of messages in volume per day, and the coding of it was the least significant part. It was almost all boilerplate code.

    That is to say, I think that the logic of each consumer is important, but the majority of it is boilerplate code that only takes time and adds no value. The most valuable time spent on this particular user story was in the design room, where we drew up how to handle it. And if system architects could have just right-clicked on a diagram that has our entire microservice ecosystem mapped out, with pre-defined tools that I had coded them, it would have not only been faster overall, but would have kept the ecosystem consistent with its visualization. Instead, now I'll have to go update some UML diagram in order to keep it even modestly up-to-date.

    That's all I'm thinking.
     
    HogofSteel likes this.
  24. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,526
    @Lurking-Ninja It's cool, I like talking about visual scripting, as it really is a nice way for me to work, I just don't think I'm ever going to be as fast in c# as I am with playmaker. And I think your input is also very welcome, as you know from a coders perspective what works well. :)
     
  25. Regularry

    Regularry

    Joined:
    Aug 9, 2008
    Posts:
    161
    I don't know how to do an exact comparison but the author is a really nice guy and great about answering questions, so you could ask in the Game Creator thread here:

    https://forum.unity.com/threads/game-creator.482850/
     
  26. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    I used PlayMaker for a small project last year. The situation came about when I wanted to store MonoBehaviour scripts in AssetBundles. Spoiler: You can't. I had a few options, like integrate Lua or Python, but this project was so lightweight that burning time to integrate those would have been overkill. Another middle-of-the-road option was @JoeStrout 's excellent MiniScript, but again, it would have required more integration time than I was willing to spend (Although, I am currently using MiniScript for a larger project).

    So, PlayMaker is great because you can store scripts in prefabs that can be saved in AssetBundles. I don't know if other visual scripting systems support this too, but I imagine that they would. PlayMaker was extremely easy to pick up, and the workflow is efficient. Finding actions and conditions is fairly fast, and exercising your mind to use it from normal programming doesn't require too much brain power. However, I undoubtedly stumbled on the "why does this have to be so difficult" feeling numerous times, it being a visual scripting language. So throughout the entire production process, I was hating how I would think that I could do anything PlayMaker can do in a tenth of the time in normal MonoBehaviour scripting. But, if you forget about that, you can feel like you are being extremely efficient and getting things done. It was an enjoyable experience only if you block out the fact that you can do things way more efficiently in normal scripting.
     
    tmcdonald and JoeStrout like this.
  27. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    That is very cool (and thanks for the link to MiniScript because that is cool as heck.)

    What kind of project was it, if you don't mind me asking?

    Also, re: asset bundles, do you think now that ScriptableObjects are a Big Deal™, do you think you'd consider favoring them for your scripting? Or is PlayMaker a better option for you?
     
  28. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    I was working on a standalone project. It was/is a gift for my wife. It's an app that loads small "vignette" type scenes from our past moments/milestones/memories. It was all sprites I drew up in Aseprite, of us, and the backgrounds we're in. Mind you, the logic I planned for each scene was very minimal. Some examples are, an infinitely scrolling background, tapping on the screen to trigger an animation event, and accompanying sound effects of course. The most complex scene was of us two walking back and forth down a path catching Pokemon in Pokemon GO. That state machine was crazy to build in PlayMaker, meaning I could've done it in a few hours with Monobehaviours, but it took maybe 4-5 times as long in PlayMaker. All because I wanted these scenes to be packaged up in AssetBundles. Why AssetBundles? Because I want to host scenes from a server, and have the client pull down a new scene without me having to reinstall it on her phone all the time.

    In reality, I ran out of time and had to package it all up in a regular Unity build. The infrastructure is there though, and I'd like to revisit the project again, and make more scenes. I ended up only finishing 4 of the 15 to 20 that I planned =(. I felt like a loser, but I think overall the idea is great.

    You may be thinking something else about ScriptableObjects. Those are something different entirely. I do use ScriptableObjects in my larger project, but for keeping "catalogs" of data, but otherwise my game is powered by a S***load of MonoBehaviours.

    My advice to beginners who are planning to solo their projects: Skip the visual scripting thing and do yourself a favor and learn C#. For a lot of up-front perseverance, it will take you far into your hobby/career and open up doors much more than visual scripting would take you. Blueprints are great for Designers and Producers, but those are just mid-level development positions. If you are looking to build the whole thing with just visual scripts, you won't get very far.

    EDIT: Aaad, then I re-read OPs OP, and realized that @tmcdonald was not looking for beginner advice. lol.
     
    Last edited: Mar 22, 2019
    Ryiah likes this.
  29. This is a common mistake (most of the time, except when the quality of the software does not matter).
    It's not your developing speed what matters the most, but the software you're making. Obviously it's a blatant simplification, because the time frame you work with does matter, but not that much.
    If you're working on a small PC game with no measurable performance, adventure game, where there is no problem with the slow and painful execution, that's okay. When you're working on a tight budget game (in terms of hardware), it becomes important to not to waste precious CPU cycles to convenience tools.
    With that said, there are some visual tools which (will be) better in terms of these: allegedly the Bolt 2 will compile to C# which is a bit better than to execute the flow every time.
    Unity's solution will be even more performant if it's true, because they will translate to ECS, Jobs and Burst-supported assembly. Which is awesome. This is why even I am waiting for this. :D

    @tmcdonald I'm an enterprise delivery manager as well (which means I went through the junior developer - developer - senior developer - developing team leader states myself), so I know how it works in the enterprise realm. But game development is different. We talked about it a lot on these forums, you can look for them or just go back a couple of pages, there are several threads about game vs. enterprise development. We have different important goals in mind during development. Maintenance is not the number one when it comes to computer games. Usually.
     
    andreiagmu and JoeStrout like this.
  30. tmcdonald

    tmcdonald

    Joined:
    Mar 20, 2016
    Posts:
    160
    Yeah, I'm certainly looking forward to the Unity-native solution.

    So this came about because I wrote up a (very brief) design document for a vertical slice for a top-down shooter. When it came to the "make enemies" portion, I decided to throw together some basic behavior trees. I built a pretty quick fluent API for building a behavior tree with delegate actions that return the current action state. And I got a bit annoyed because honestly, this is just too "reinvent the wheel" for me. My behavior trees do nothing that any other library would do, and I have to maintain it if i I use it - no one else is using it, so I'm responsible for any issues with it. And I'm not using Unity to build everything from scratch - otherwise I'd have kept screwing around with SFML.

    My behavior tree library is also code-only, it isn't exposed in the editor in any way. I briefly toyed with creating ScriptableObject building blocks to allow a designer to drag behaviors onto enemies, but it wasn't intuitive in any way. Meanwhile, there are some great assets that handle this much better than my hacky library would. I could probably extend the editor to make these drag-and-drop and editable, but at this point, I'm now spending all my time building an editor plug-in instead of the game itself. I could just plop down like $50 to do this instead, and save myself the time. I just don't want to buy like 5 different plug-ins - the fact that most of the assets on the store have no evaluation period is a bit annoying.
     
  31. nicknameminivan

    nicknameminivan

    Joined:
    Feb 8, 2020
    Posts:
    4
    Hello dear Unity Developers,

    I would like to refresh this diskussion in the year 2020.
    What are the state of the visual scripting systems for unity this year?

    We are a creative agency for trade show exhibitions and I'm a die hard Unreal fanboy(sorry for that). We delivered multiple interactive applications with the blueprint system in Unreal. Prior to this I was developing interactive applications with other visual scripting systems VVVV and Ventuz. Now my company wants to focus strongly on AR and mobile and Unreal is... not very good developed in this area. ARKit is lacking the newest features and is not production ready at all.

    So we want to keep our legacy and start to working in a visual system in Unity and maybe build our realtime future pipeline on Unity ... yeah... not easy for me to say this ... ;(
    What ist the best developed visual scripting system for Unity which we can use in our production right now and in future?
    And yes, I read all the other threads i could find on google I would be glad to hear your opinion :)
     
  32. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,157
    Last edited: Feb 8, 2020
    JoeStrout likes this.
  33. imaginationrabbit

    imaginationrabbit

    Joined:
    Sep 23, 2013
    Posts:
    349
    Since you're coming from using Blueprints I'd recommend one of these two assets

    FlowCanvas
    https://assetstore.unity.com/packages/tools/visual-scripting/flowcanvas-33903

    Bolt
    https://assetstore.unity.com/packages/tools/visual-scripting/bolt-87491
     
  34. nicknameminivan

    nicknameminivan

    Joined:
    Feb 8, 2020
    Posts:
    4
    Hello dear Ryiah and mdotstrange,

    Thank you for you answers :)
    Yeah I watched already some tutorials for the VS System for Unity :) Looks awesome :) We will consider it when it will be released.
    Bolt looks good, but we are a little bit scared that it is to "easy" and to "limited" compared to the Blueprint of unreal.
    FlowCanvas looks very "advanced" but on a survey on the forum it losed vs Bolt.

    The problem is, if we start using one VS system and in the middle of the project we have to switch to another VS System we will get some serios trouble with the completion of the projet.

    And yeah, we had a lot of discussion about C# but working with a visual system is just in the DNA of the company.
     
  35. DoKiz890

    DoKiz890

    Joined:
    Jun 21, 2019
    Posts:
    11
    @nicknameminivan

    Did you decide on a tool? I've been looking into blueprints and unity VS tools for a while. I heard BP can get really messy and unoptimized, and most UE devs say to only use it for simple things.

    Hopefully Unity's native situation brings a good VS to unity, for now I'm going to try Playmaker and Bolt.
     
  36. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,157
    Yes, but that's not the fault of Blueprint. That's the fault of the developer. Keep your expectations in check. Choosing visual scripting won't magically make you a competent developer. I believe a lot of developers see visual scripting as an easy way to create a game but the hardest part of programming is not at all the language. If anything the language is the easy part.
     
    EternalAmbiguity likes this.