I am an AI researcher and we have developed a custom multi agent system that I would like to port into NODECANVAS.
It seems that most of the things I will be able to do out of the box apart from connections.
In our approach each connection has
– preconditions
– action
– postcondition
Your FSMConnection can do preconditions but no actions and postconditions.
Would you be so kind and give me an idea how to approach execution of action and postconditions on a connection.
The action can either be a BehaviourTree or another nested FSM and connection only finishes once action finishes.
Once the action is complete a postcondition needs to be evaluated.
The postcondition is changing the state of an agent or an FSM, I imagine it would be just another behaviour tree. The most optimally it would be some C# code, but BT will do.
Hello again Tomas and sorry for the late reply due to Eastern!
Hmm. I think that trying to implement this on top of the current implementation of the FSM in NodeCanvas by changing the source code, will be harder that it needs to due to the differences.
I think it would probably be best if you make a new graph module tailored to do exactly what you are after. I have attached for you here a base template for building a custom graph module on the NodeCanvas Framework. You can start on this base template and then copy the functionality/code from the existing FSM module, changing it or adding to it as needed. (For example, you would probably like to copy the GUI code for drawing the connections as found in FSMState.cs line #206). This will of course require some work.
I am also not exactly sure how the system you want to create exactly works yet to provide more insights 🙂
What would a diagram look like for example? Can you please share one?
What is the difference for example than having this kind of setup in the current FSM, or is it similar but without the center node requirement, but rather everything being part of a single transition? (which is of course more tidy)