Search Unity

Bolt – Visual Scripting

Discussion in 'Assets and Asset Store' started by LazloBonin, Jul 11, 2017.

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

    itsYloon

    Joined:
    Nov 9, 2016
    Posts:
    7
    We have 2 more official tutorials up on our youtube channel!

    One of them covers integration of Bolt with Cinemachine, this is a great way to learn both Bolt and Cinemachine at the same time:



    The other covers the all new VFX Graph. In this video we use bolt to have thousands of particles react to music, a music visualizer of sorts:



    Enjoy!
     
  2. Kiupe

    Kiupe

    Joined:
    Feb 1, 2013
    Posts:
    528
    Hello,

    Do you know when Bolt 2 is planned to be out ? Are Bolt 1 tutorial a good way to learn Bolt ?

    Thanks
     
  3. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi Kiupe!

    We do not have an ETA for Bolt 2, but we provide regular Alpha versions on our download page: http://ludiq.io/bolt/download

    Bolt 1 tutorials are still a very good way to learn Bolt, and that knowledge will not be lost when Bolt 2 arrives. 80% of the concepts will still translate very well to the new version. :)
     
    HeadClot88 and Mark_01 like this.
  4. Kiupe

    Kiupe

    Joined:
    Feb 1, 2013
    Posts:
    528
    Ok. As a not already Bolt user is it possible to test Bolt 2 alpha release or do I need a licence or something ?

    Thanks.
     
  5. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi Kiupe,
    You need a Bolt 1 license to download Bolt 2 alphas. Simply link your asset store invoice number to your Ludiq account to enable downloads.
     
  6. Iurii_L

    Iurii_L

    Joined:
    Dec 31, 2018
    Posts:
    1
    Hello!
    i am a complete noob in C# and Bolt is an amazing tool that lets me do simple scripting.

    My question is about RigidBody2D.Cast, I want to use it to check if my player will hit the wall on the next turn, since my game is turn-based i want to prevent the player from moving any further, closer to the wall, knowing that he will collide with it. I have background tiles with composite collider, as well as a collider on the player.

    I am 100% sure that my player is hitting the wall at the point when screenshot is done, but RigidBody2D.Cast keeps returning me zero.
    (I double check that collision is happening with regular ray.Cast, but i want to use collider shape instead for better precision)

    My idea on how it should work is based on this example, which i found on Unity Forum:

    Code (CSharp):
    1.    Rigidbody2D rb = GetComponent<rigidbody2d>();
    2.    RaycastHit2D[] hitResults = new RaycastHit2D[5];
    3.    int numberHit = rb.Cast(Vector3.right, hitResults, 5);
    4.    if(numberHit > 0)
    5.    {
    6.       print("Hit " + numberHit + " colliders.");
    7.       for (int i = 0; i < numberHit; ++i) print("Hit this: " + hitResults[i].collider.name);
    8.    }

    So in my flow macro I want to check too if number of collisions is grater than o and prevent player from moving further.

    Not sure what am I doing wrong and if it is the best way to do it, will appreciate any advise.
    Thank you, here is the screenshot:

     
  7. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi there!
    You're well on your way already!
    Instead of just logging the result of Cast, use the Branch unit to check an "if" condition, and use a Greater Than unit as the condition. In the Greater Than unit, plug the result of Cast as the first input, and leave 0 for the second.
     
  8. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    Hey, @Ludiq !

    I'm author of Anti-Cheat Toolkit plugin and looks like we have some compatibility issues with Bolt.
    ACTk uses standard Task<TResult> from the System.Threading.Tasks namespace.

    Bolt adds System.Threading assembly to the project which does conflicts with standard netstandard assembly Unity uses:

    I'm afraid this can cause problems to many other third-party assets and to the regular project code which uses Tasks.

    If you have some specific workaround for this problem, it seems some customers are not aware of it.

    P.S. Looks like some customers could use .NET 3.x build in Unity 2018.3 with .NET 4.x scripting and this could cause this issue to appear. In such cases it would be great to warn customers they are using incorrect version to prevent false alarms from them.

    Cheers!
     
    Last edited: Mar 27, 2019
  9. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi Codestage!
    This is indeed an issue when using a .NET 3.x version of Bolt with a .NET 4.x setting in Unity.
    The solution is simply to download the .NET 4.x version of Bolt from our website (second link on the right):
    https://ludiq.io/bolt/download/1.4.1

    Cheers!
    Lazlo
     
    codestage likes this.
  10. codestage

    codestage

    Joined:
    Jul 27, 2012
    Posts:
    1,931
    @Ludiq thanks for your quick reply, Lazlo!

    Yeah, this is what I suspected to happen and suggested to use .NET 4 version to the customer who had this issue ^^
    Seems to fix a problem, thank you for confirming this is a proper solution for the problem!

    Cheers,
    Dmitry
     
  11. RichardSim

    RichardSim

    Joined:
    Dec 15, 2013
    Posts:
    14
    Just to add to what codestage mentioned, in Unity 2019.1b10 Bolt conflicts with the Unity SRP due to the same issue. I'll try the .NET 4 version from the website, but is there a reason this isn't on the Asset Store?

     Library\PackageCache\com.unity.render-pipelines.core@5.7.2\Runtime\Volume\VolumeManager.cs(13,25): error CS0433: The type 'Lazy<T>' exists in both 'System.Threading, Version=1.0.2856.102, Culture=neutral, PublicKeyToken=31bf3856ad364e35' and 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
     
  12. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi! You can fix this by using the .NET 4.x version of Bolt, which you can download from our website here:
    http://ludiq.io/bolt/download/1.4.2

    Edit: Sorry, read too fast. Yes, the reason why this isn't default on the asset store is because some projects are not compatible with 4.x, only 3.x. Most projects (except in special cases like yours) support 3.x, which is why it was chosen as the Asset Store version.
     
  13. Flavelius

    Flavelius

    Joined:
    Jul 8, 2012
    Posts:
    945
    Hi,
    a probably strange question: Does Bolt generate code from the graphs?
    My intention is to be able to package some logic into AssetBundles; and my thinking is if the graphs are evaluated instead of just compiled out to regular scripts that should be doable, am i on the right path with bolt?
     
  14. williamian

    williamian

    Joined:
    Dec 31, 2012
    Posts:
    119
    Bolt 2 compiles to script at runtime. The caveat is, it will still require Bolt 2 to run in most cases. I suggest you join our discord channel for more in depth and timely Q/A on the subject.
     
  15. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi! Sorry for the late reply. Added a FAQ entry about it because it's a common question: https://ludiq.io/bolt/faq#assetbundles
     
  16. Zymes

    Zymes

    Joined:
    Feb 8, 2017
    Posts:
    118
    Looking forward to Bolt 2 and the C# generation. Mostly the reason why I never used visual scripting is the no access to code. Which probably will make me buy Bolt finally. :)

    A question however. I see most examples have been with start and update to run the game loop.

    I am however running a custom manager for the game loop simulation, because I need the game to be pausable but the UI still interactable and other stuff in the scene.

    Is it possible to hook up these graphs into my own game managers update() in Bolt 2?
     
  17. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi! Sure, in Bolt 2, anything that's a C# event will have a node generated for it.
    So if you have something like:

    Code (CSharp):
    1. public static class GameManager
    2. {
    3.     public static event Action update;
    4. }
    Then Bolt 2 will display a Game Manager: Update event in its node options.

    More info in the changelog for that alpha: https://ludiq.io/bolt/download/2.0.0a4#events
     
  18. Zymes

    Zymes

    Joined:
    Feb 8, 2017
    Posts:
    118
    I see, thank you.

    I am using this pattern right now but have not tested an event driven one. Maybe that is better. But am curious about the performance implications using events. Maybe hard to answer generally.

    The entire game basically runs in this loop.
     
  19. Flavelius

    Flavelius

    Joined:
    Jul 8, 2012
    Posts:
    945
    UI isn't affected by Time.timescale, so you don't have to reinvent the unity update loop, btw.
     
  20. Zymes

    Zymes

    Joined:
    Feb 8, 2017
    Posts:
    118
    Another reason I want to use one dedicated manager to update the game loop is also this old post: https://blogs.unity3d.com/2015/12/23/1k-update-calls/

    Having multiple objects calling update is slower than one manager updating the same amount of objects.

    I hope we can do this in Bolt 2.

    Also with the code generation. What will happen with the graph if you modify the actual code?
     
  21. fedetch

    fedetch

    Joined:
    Jan 19, 2017
    Posts:
    4
    Hi ludiq,

    First just wanted to thank you for making such an awesome tool for us non-programmer game artists. Really looking forward to Bolt 2 and the new features! I was wondering if there are any plans of adding behavior and dialogue trees to bolt in the near future?
     
  22. HypnotistDK

    HypnotistDK

    Joined:
    Feb 14, 2016
    Posts:
    15
    It would be pretty sweet if we could type code and the nodes would pop up so visual scripting would be visual window/assistent so you could get the boat from both world, coding+vs at the same time.
     
  23. Zebbi

    Zebbi

    Joined:
    Jan 17, 2017
    Posts:
    521
    Is Bolt dead? Bolt 1 has been feature locked for two years and Flowcanvas has been upgraded to the point where there's no reason to use Bolt 1 over Flowcanvas as it actually does more when paired with nodecanvas: https://flowcanvas.paradoxnotion.com/features-comparison/ - the Ludiq comparison is out of date and is inaccurately listing some differences: https://ludiq.io/bolt/compare

    Bolt 2 is arguably the best VS option available for Unity right now, but it's been in alpha for a year-and-a-half and only had two updates between April 2019 and January 2020, one of which completely broke any projects worked on until that point.

    Now it's been two months since any word at all on progress. Out of all of the major visual scripting packages, Bolt is the only asset on the store to have 4 out of 5 stars (every other tool listed in Ludiq's comparison still has 5 stars). Is it worth investing any more time into Bolt, or should we just move on to something that's still being actively worked on?
     
    zukinet likes this.
  24. zukinet

    zukinet

    Joined:
    Oct 30, 2016
    Posts:
    51
    @Zebbi any news from Bolt forum?
     
  25. Zebbi

    Zebbi

    Joined:
    Jan 17, 2017
    Posts:
    521
    Barely, @Ludiq 's posting history seems to be:

    2 days ago
    2 weeks ago
    4 weeks ago
    2 months ago
    3 months ago
    4 months ago

    The last update to bolt 2 was 2 months and 7 days ago. Bolt 2 is still riddled with bugs and it's highly unlikely they'll be fixed any time soon if this update history is anything to go by; we should expect the next forum post in 29 days time if we're to go on the average frequency, and since last year's big update to Bolt 2 was 7 months apart, it's probably best to just move onto using a different VS tool.

    C# generation and performance is the holy grail, but I think it's going to be a long time before it becomes a stable reality, DOTS will probably be out by then.
     
  26. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
    Hi Zebbi, + zukinet!

    Rest assured, Bolt is definitely not dead (neither Bolt 1 nor Bolt 2).

    Bolt 1 is indeed feature locked until we release Bolt 2, but we continue to issue critical fixes and updates. We updated it with Unity 2019.3.10 and Unity 2020 compatibility just last week.

    Bolt 2's development is still going. As it is feature complete now, we have been fixing all open bugs at once before we release a new alpha build. Don't worry, we definitely wouldn't have invested so much time in development only to abandon now ;). As you may know from the Ludiq Discord and Forums, we don't give ETAs, but I can assure you that progress is steady.

    I realize there's been too much of a radio silence over the last few weeks and I apologize for that.

    We will post a progress update on Monday to clarify the current status and plans for everyone.

    Thanks for checking in!
     
    Mark_01 and Zebbi like this.
  27. Zebbi

    Zebbi

    Joined:
    Jan 17, 2017
    Posts:
    521
    That's great, but it's unfortunately not just the silence over the last few weeks, it was most of 2019 waiting endlessly for any sign of an update. I understand development takes a long time, but there was no news for eight months, for a tool that has been in alpha for 1.5 years and really no hope of seeing even a beta version within the next year. Bolt 2 could potentially be the greatest visual scripting tool for Unity, but if it's going to be another two years until stable (not an unreasonable estimation given it's history) I think a lot of users are considering other options.

    This is nothing personal, it's just my opinion and prediction from the way Ludiq has been working.
     
    DeepShader likes this.
  28. Zebbi

    Zebbi

    Joined:
    Jan 17, 2017
    Posts:
    521
    sinjinn likes this.
  29. LazloBonin

    LazloBonin

    Joined:
    Mar 6, 2015
    Posts:
    813
  30. Zebbi

    Zebbi

    Joined:
    Jan 17, 2017
    Posts:
    521
    Well, at least that means it might be actually finished now, but it’s still not really acceptable to keep the users in the dark over this for so long.
     
Thread Status:
Not open for further replies.