Reply To: Flowcanvas VS bolt

FlowCanvas Forums Support Flowcanvas VS bolt Reply To: Flowcanvas VS bolt


Hello again,


No problem at all. Please let me answer your questions:


1) In FlowCanvas all sub-graphs need to be created as a separate ‘Asset Graph’.

‘Asset Graphs’ have the advantage that each graph is a self-contained object; serialized separately and can also be re-used among any number of other graphs. The disadvantage of ‘Asset Graphs’ however, is that Unity Scene Objects can not be referenced directly within those sub-graphs (because that is a typical thing with Unity that Asset Objects can’t reference Scene Objects), however this can easily be worked around by the ability for subgraphs to be parametrized via Blackboard Variables.


On the other hand, ‘Bound Sub-Graphs’ are subgraphs that can be created and live directly within the parent graph. This has the advantage that you don’t have to create a separate asset (thus it’s quicker) and that you can use scene object references directly within (without the need for variables). The disadvantage of ‘Bound Sub-Graphs’ however, is that they are stored and serialized directly inline with the parent graph. As such, they a) can not be re-used by other graphs, b) they are not “version control diff friendly” (because they are not assets), c) they can not be discovered easily in the project or be part of asset bundles (because they are not assets unless the asset bundle includes the scene or prefab with the parent graph), and d) they make deserialization more error-prone (because if the bound sub-graph fails so will the parent graph as well as any other bound sub-graph). They basically are ‘hidden’ (backend wise) within another object.


FlowCanvas only supports ‘Asset Sub-Graphs’ right now.


2) Lambda Optimization is presumably some very micro optimization performance-wise. With that said FlowCanvas, is faster than Bolt performance-wise either way, especially in Desktop platforms (Window, Mac, Linux).


3) Typically in FlowCanvas (in Bolt as well), when you rename a reflection-based “reference” like a method, property, field etc, the node that was referencing that method/property/field will become a “missing node”. The Graph Refactor feature in FlowCanvas v3.x, allows you to basically refactor those names quickly, as to point them back to the new names. Without this feature, you would have to delete the node and re-create it anew (thus referencing the now new name), or become restricted not to rename any reflection-based reference once after you use it.


I hope this helps, but please let me know if you have any more questions 🙂



Join us on Discord: