I've spent a few days working with flow charts to implement a simple dialogue system in my next project. After working on Bilkins' Folly and dealing with all the complex dialogue trees in that game (composed in Dialogue Designer), I really wish flow charts were a thing a few years ago!
I have a few recommendations, at least some of them I suspect are already planned.
• Select multiple nodes at once using drap and drop. Right now, it seems like only one node can be moved at a time, which is a problem when trying to organize large charts.
• Drag from a node to create a new node. Much like how Unreal's BP allows you to quickly create a new node if you drag from a pin to an empty space.
• Duplicate nodes - dragging a node while holding alt should create a copy of that node.
• More workspace – preferably infinite. Creating nodes left-to-right, it didn't take long to reach the end of the workspace. It doesn't help that the default node starts in the middle of the workspace instead of over to the left.
• More zoom out. Right now it seems you can infinitely zoom in, but zoom out gets stopped before revealing the full canvas.
• A mini-map. Once devs start making huge flowcharts, it's useful to have a minimap available that can be used to quickly pan through the workspace.
• Commenting an area. Preferably in the style of BP that allows colour coding and grouping of nodes.
Other node types and tweaks. This is probably a bit more specific to treating flow charts as a dialogue builder, however I feel these suggestions would make flowcharts even more powerful:
• Character fields - Specifically for a dialogue system, you often need to know what character is speaking and what animation (or frame if it's a static image) to display. A character field (or some other way of accessing additional data on a per-node basis) would be handy for this. Right now, it's possible to do this by utilizing the default field, but that's kind of annoying as you're always making new fields on node creation.
• The 'execute code' node - Right now, I'm using the tag field to execute specific pieces of code using tokens. It's a bit clunky as an entire node needs to be created in order to access this. An 'execute code' would essentially just be a tag and nothing else. It would help reduce bloat and is actually a super powerful way of handling logic inside of a dialogue loop. For Bilkins, I had over 30 different codes that I could call from a simple tag-like node and signal the game to do something.
• Conditional branches - a binary node that outputs either true or false based on a condition. Could either take in a global Boolean (or flowcharts could be given their own variables) or it could remain up to the developer to determine how to feed conditions into it. This can be expanded with logic operators to make it more powerful.
• Random branches – this node has multiple outputs and randomly picks one to go next. Useful for dialogue in situations like greetings where you might want an npc to mix up their message each time the player interacts with them.
Ta!