Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[RELEASED] FlowReactor - High level visual scripting

Discussion in 'Assets and Asset Store' started by GiantGrey, Jun 17, 2020.

  1. GiantGrey

    GiantGrey

    Joined:
    Jul 2, 2012
    Posts:
    266

    I'm very happy to announce the release of FlowReactor - High level visual scripting!
    I've put quite a lot of work into it, so I hope you guys will like it! :)

    Use FlowReactor to create AI behaviors, ui flows, dialog trees, tutorials, level scripting, game mechanics, state machines and logic flows.​
    ➔ WEBSITE
    ➔ DOCUMENTATION


    Trailer:

    Features

    ✔ unlimited nested sub-graphs
    ✔ hand crafted nodes
    ✔ node wizard
    ✔ global variables (blackboards)
    ✔ global eventsystem (eventboards)
    ✔ scriptable objects workflow
    ✔ graph explorer
    ✔ professional editor
    ✔ native look and feel
    ✔ undo & redo
    ✔ copy & paste nodes across graphs
    ✔ minimap
    ✔ zooming
    ✔ groups & comments
    ✔ branch movement​


    Intuitive workflow
    Create unlimited nested sub-graphs with custom outputs / transitions. Use the Eventboards and Blackboards to manage global events and variables. Thanks to the scriptable object workflow everything is easily manageable within asset files. Use FlowReactor to organize and manage sequences and logic flows with graphs and sub-graphs.

    Custom nodes
    While it’s possible to create complete games only with FlowReactors built-in nodes, its real power shows up when using your own custom node logics. Thanks to the node wizard, creating a new node is as easy as creating a new C# file.
    FlowReactor is not bloated with tons of unnecessary fancy things which slows down your project.


    Professional editor
    The editor has been developed to seamlessly blend into Unity’s editor. Making it look and feel professional and native. Everything is logical and easy to read. Copy and paste nodes across multiple graphs, use the minimap to easily navigate through larger sized graphs and create groups and comments to keep your graphs well organized. Additional features such as branch movement and automatic node distribution completes the intuitive experience.

    Graph explorer
    Thanks to the graph explorer you can easily navigate through your graph and sub-graphs, find groups and see which nodes are currently active. The graph explorer also locates errors in your graph.

     
  2. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    2,050
    I'm very much interested but there are several things holding me off purchasing right now:

    1. Lack of scripting API - Can I access blackboard variables and events via C# scripts? Can graph access C# script variables? All of this and more needs documentation. Right now I've no idea how easy it is to combine graphs with the rest of the game.

    2. The nodes all look incredibly similar with only title, a small icon and what I assume is per node type colored outline differentiating them. This makes me think graphs might get hard to read at scale. Can we change how the nodes look, especially custom nodes? Things like node size and color, size of the icon and title and coloring too.

    3. Any plans for animating flow connections? The brief outline ping seems a bit chaotic when you have a lot of nodes on screen. It would be nice to see where my flow is actually going when nodes have multiple flow outputs.
    Overall looks real promising.
     
  3. GiantGrey

    GiantGrey

    Joined:
    Jul 2, 2012
    Posts:
    266
    Hello,

    regarding your questions:

    1. It's true the API documentation is currently quite sparse, thanks for the feedback I will work on it!​

    2. You can change title, size and color for custom nodes easily in the appropriate script file, but also if you want for all built-in nodes. You can also define global node colors in the FlowReactor settings, which are then available in the node creation wizard to choose from.​

    3. Currently no plans, but it is definitely an interesting feedback and I'll have a look at it.​
     
    PanthenEye likes this.
  4. Neonlyte

    Neonlyte

    Joined:
    Oct 17, 2013
    Posts:
    513
    Hi, I am very interested in this asset as I can imagine myself using it in various situation.

    I know that your FAQ states that FlowReactor "is not a “traditional” visual scripting tool like Bolt or similar visual scripting editors", but I have not used any visual scripting tools before, and since there are several other tools out there, I am having difficulty differentiating between this and other tools like Bolt or PlayMaker just by looking at descriptions. Could you give some examples, like what problems FlowReactor can solve better than other tools, and what for what situations I should choose FlowReactor over the others?

    To elaborate my situation, I plan to create a interactive tutorial (player repeats an objective until reaches a certain goal), an interactive help system (similar to those virtual customer services), and a menu system where the hierarchy is described as a graph/tree separate from the views (similar to a storyboard on iOS or nav graph on Android). I sense that I can achieve all of these with any visual scripting tool, especially PlayMaker since I heard it is all about state machines, but I fear that PlayMaker would bring in a lot of stuff I don't need, so the lighter weight the system, the better.
     
    Last edited: Jul 4, 2020
  5. Neonlyte

    Neonlyte

    Joined:
    Oct 17, 2013
    Posts:
    513
    Well I happen to stumble on your blog post(http://www.doorfortyfour.com/marz-rising-devlog12/) and it answered a lot of my questions.

    The only other thing I am now curious is what lead you to the decision of making the nodes to accept only one input?
     
  6. GiantGrey

    GiantGrey

    Joined:
    Jul 2, 2012
    Posts:
    266
    Hi :)

    ah great you've found the blog post. Please keep in mind a lot has changed since then. I've refactored FlowReactor several times but the general idea is the same.

    But let me still try to explain this a bit more in detail.
    Bolt is more of a visual representation of code, that means every single function, variable etc is one node... this allows you to visually program nearly anything.
    The downside of it: if you can already program you surely are slower, also you'll need quite a lot of nodes to do something that can be written in two, three lines of code. Which is a general downside of visual scripting. So I'd say Bolt is great for beginners who wants to easily learn to code but can become quite confusing with lots of nodes.
    In FlowReactor nodes could be seen as modules which can also do more than just one thing. Nodes have one flow input and they can have multiple flow outputs. Variable connections are handled with Blackboards in the node inspector, this reduces the noise on the canvas.
    FlowReactor comes with over 130 built-in nodes which lets you start quickly, but its real strength shows up when creating your own nodes tailored to your project, which is very easy to do.
    For example: lets take the integrated DOTween DOSequence node:
    With one single node you can create complex ui animations which reacts on an event trigger as shown in this gif here:

    https://i.imgur.com/c5oiekf.gif



    When user hovers over the ui button the DOSequence node scales the rect and changes the image color.
    When user exits the button, another DOSequence node returns the button back to normal. Of course this is just a basic example of an animation, you could do quite more complex stuff with it.

    another example:
    you can easily create your own dialogsystem:

    (that dialog doesn't make much sense I know)

    so as you can see, FlowReactor is quite different than Bolt in terms of workflow and use.
    It can be seen as a more general "high level" tool to create logic flows, state machines, dialog trees, tutorial sequences etc. while Bolt is more a low level visual scripting tool.
    I hope this makes all sense to you.
    Let me know if you have any further questions. :)
     
    Lars-Steenhoff likes this.
  7. MasterSubby

    MasterSubby

    Joined:
    Sep 5, 2012
    Posts:
    252
    I'm probably picking this up today. One question. Can you call something in a graph without using the built in components? Having a variable to a graph for instance in my own component or C# class?

    I have my own custom framework and am interested if I need a secondary component or can build it in directly. I don't mind getting my hands dirty picking apart the API either, even if it's not intended that way.
     
  8. GiantGrey

    GiantGrey

    Joined:
    Jul 2, 2012
    Posts:
    266
    @JasonJonesLASM
    Hi,
    it's possible to start a graph by using an event listener node in your graph, then you can simply call the specific FlowReactor event, which the event listener node is registered to, from your own external script.
    It is also possible to access blackboard variables and modify them from your own script.
    You can find the official documentation here: https://flowreactor.io/documentation/
     
    MasterSubby likes this.
  9. MasterSubby

    MasterSubby

    Joined:
    Sep 5, 2012
    Posts:
    252
    Thanks for the quick reply. Yeah I read it extensively. Understood the API, just was uncertain the extent of its usage, and if it was directly tied to some Monobehaviour registration system for events or if I could call them manually as long as I have a graph reference. Just looking to see if I'd be tied down to specifics of when it's possible. Sounds great though. Regardless, this looks awesome and I'm on board. Will get it this morning.
     
  10. plcuist

    plcuist

    Joined:
    Aug 29, 2013
    Posts:
    15
    Hi,
    I have a graph stored as a prefab. In my scene, I override a blackboard variable but each thime I hit play, this variable is reset to null. If I break the prefab, it's working fine.
    What is the correct way to use a Graph in a prefab ?
    Thanks for your help
     
  11. GiantGrey

    GiantGrey

    Joined:
    Jul 2, 2012
    Posts:
    266
    Hi,
    scene overrides can only be used when the graph is located in a scene. Because the referenced values only exists in the scene and not in the project.
    If you tell me what exactly you want to do, I can probably help you better. ;)
     
  12. plcuist

    plcuist

    Joined:
    Aug 29, 2013
    Posts:
    15
    I have a graph stored in a prefab and I want to access a GameObject that is part of the hierarchy of the prefab.

    TestGraph2.png

    Here's the graph:

    TestGraph.png

    I'm trying to use scene override on the blackboard but it get reset every time Unity enters play mode.

    FR01.png

    There's a warning in the console :

    The type FlowReactorComponent no longer supports special prefab serialization (the interface ISupportsPrefabSerialization) upon deserialization of an instance of a prefab; prefab data may be lost. Has a type been lost

    The override is also reset when reloading the scene.
     
    Last edited: Nov 26, 2020
  13. xpxilom

    xpxilom

    Joined:
    Aug 28, 2014
    Posts:
    30
    ¿Abandonaste flowreactor ??? Veo que no has actualizado desde 2020 = (Parece lo mejor que hay en toda la tienda, me costó encontrarlo. Tiene todo lo necesario para ayudar a los programadores.

    Creo que necesitas una mejor campaña publicitaria y darte a conocer.
    El activo es perfecto.

    ¿Lo abandonaste para siempre?
     
    ArtKuper likes this.
  14. Reign_of_Light

    Reign_of_Light

    Joined:
    Oct 15, 2014
    Posts:
    46
    No, from what I'm reading in the project's Discord channel, there is a version 2.0 already in closed beta for some months and said to be coming soon. However, there seem to be delays due to personal life events and/or technical challenges.

    But I am also afraid that between personal life (as a husband and father of a toddler), a possible day job, and other projects, this one's not getting the attention it would deserve.

    Or maybe FlowReactor is great as it is and doesn't necessarily require more features and maintenance. I don't know, really, because I too am torn between how amazing FlowReactor looks and how little there is to be seen of the developer and the overdue version 2.0, so I haven't bought it, yet, but probably will at some point.
     
  15. GiantGrey

    GiantGrey

    Joined:
    Jul 2, 2012
    Posts:
    266
    Hello and happy new year! :)

    I'm the developer of Flowreactor.
    I apologize for not being very active. This is due to a lot of personal life events.
    I moved with my family to a different country, closed down our old company and started a new one, had some renovations to do on our new home etc. As you can imagine this brought a lot of organizational stuff to me and everything was very time consuming. It also took much longer than planned.
    But I'm happy to say that most is done now
    and I can soon go back to regular work.
    V. 2.0 is almost finished. It needs more testing and polishing. To make a great product I want to make sure that everything else is good as well (Documentation, Video tutorials etc.)
    I really belief in this product and want to push it as best as I can.
    I also want to concentrate myself more on the asset store and create other cool tools as well as doing more support.
    Everything needs just time :)
    Thank you for understanding.
     
    MasterSubby and Reign_of_Light like this.
  16. Reign_of_Light

    Reign_of_Light

    Joined:
    Oct 15, 2014
    Posts:
    46
    Great to hear from you, Marc, and a happy new year to you and your family, as well :) !

    By now, I have bought FlowReactor and am tinkering with it for a few days. I do have my share of issues with it, and there are (small) bugs, but overall I love the asset! It got a certain "magic" to it and certainly a lot of potential! Which is why it delights me that you haven't given up on it.

    Can't wait for 2.0!