NodeCanvas Forums › General Discussion › General purpose visual programming
Hey Gavalakis,
I’m a new user of NodeCanvas and so far I’m liking it very much. The architecture of the whole thing is very elegant and extendable. I was looking at the design, and it came to my mind that you would be able to use NC as a visual programming language similar to uScript / Kismet without too much work. Has anyone ever attempted that?
We currently use uScript to do our level scripting, but it’s quite a heavy tool and it generates C# (making it a bit cumbersome to edit since you have to wait for the compile). I have successfully created some level-logic (eg. switch opens door) with a behavior tree, but it’s not the most intuitive thing. I was looking at implementing a kind of uScript interface into NC, like having conditionals that branch out and actions that you can string together. The closest thing to it right now is the Dialogue editor, but it could be made so much more general purpose (I’m not sure why the dialogue editor is so specific).
Is this something that’s already on the roadmap?
Hello and welcome,
I am glad you like NC so far.
Behaviour Trees are indeed mostly great for AI behaviours rather than general game logic. Certainly doable, but not what they are ment for. Dynamic AI is where they shine 🙂
The Dialogue Tree is motly like Decision Tree, but I specialized it into a dialogue tree since I wanted for it to handle actors more intuitively and have more specialized nodes, but at its core its kind of a Decision Tree. I will provide an extra generalized Decision Tree System in the very near future though.
As a side not, I am working on an NC based system (XpressionCanvas) which will work similar to XPresso (Cinema4D) and ICE (Softimage) with per-port handling (image attached). Still, that is quite different from UScript for example, mostly in the way/flow that the nodes are evaluated.
I will provide a BETA when its beta ready, to all NC users that want to test it.
Cheers!
Join us on Discord: https://discord.gg/97q2Rjh
That sounds awesome! When will the beta be ready? Can you contact me by email?
Glad you like what you see. I am still working on the system. I hope that Beta will be ready at about the end of this week.
I will send an email to all forum registered users when it is so you won’t miss it 🙂
Cheers!
Join us on Discord: https://discord.gg/97q2Rjh
Any news on that Beta?
Hello,
Taking longer than expected. Hopefully in a couple of days 🙂
Join us on Discord: https://discord.gg/97q2Rjh
I’m very curious as well! 🙂 and hope that the beta will be available soon 😉 😉
Hello,
It has been postponed for a while due to other matters. I can’t promise a date, but it will eventualy be there :_)
Join us on Discord: https://discord.gg/97q2Rjh
Hi there,
new Year and new Projects 🙂 I am looking into Node Canvas for a new Project and found this Post.
do you have any update on the “XpressionCanvas” that you described earlier? If NC would include also that kind of Graph it will easily be the best Unity3D Node Plugin out there (which it probably already is 🙂 )
Just hoping we could use this Feature from the start of our new Project.
Best Regards and keep up the good Work,
Robin
Hello Robin,
Happy new year and new projects 🙂
The codenamed “XpressionCanvas” is indeed updated but not yet finished. You can read more about it in this unity forum thread:
http://forum.unity3d.com/threads/visual-scripting-node-editor-unreal-blueprint-like.245646/
Feel free to post feedback, ideas or suggestions there 🙂
This graph will be a separate asset due to the many extra hours that has been put into it and not included in the NodeCanvas main package though, although it will be fully compatible with NC since its build on the same core framework.
With that said, a beta version will be available to existing NC users though somewhat soon 🙂
Best regards!
Join us on Discord: https://discord.gg/97q2Rjh
Whoa, i hope i can help testing the beta
Of course i cant wait to buy full version of it too, Gavalakis 😀
Thanks nascode 🙂
I will keep you posted regarding the beta 🙂
Join us on Discord: https://discord.gg/97q2Rjh
Any news on the generalized Decision Tree System? Will this be a part of Node Canvas or the FlowCanvas?
Is it possible to use FSM in “turn based/manual mode” – so it is not checking for transitions on every Update, but rather waits for an event to trigger? Alternatively is it possible to run the FSM just once or manually whenever we want?
I’m consider to build a quest system using FSM and I need to check the quest progress just on certain events, like dialogues or picking up an item. So I don’t want to have several FSM running all the time in the background.
Thanks,
Hello,
Regarding the visual scripting, it evolved into what is now FlowCanvas. Are you refering to something simpler like the Dialogue System but generalized?
An FSM state in regards to transitions, can be set to “Check After State Finish”. Is that what you are refering to?
You can also Start, Pause and Stop an FSM with the relevant methods on the FSMOwner component. StartBehaviour, StopBeaviour, PauseBehaviour, but an FSM can’t be paused and automaticaly Start on an event if that’s what you are after.
I really don’t think updating several FSMs for the Active quests, would cause a performance issue though.
Let me know. (possibly starting a new thread about it if you like)
Cheers!
Join us on Discord: https://discord.gg/97q2Rjh
Hi,
Thanks for explanations. I’ll take it from there.
Another question I have: in your opinion which tool would be better to create a node based quest system? FlowCanvas or NodeCanvas? I’d prefer to write code in C# and just use nodes to control the quest flow.
Thanks!