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

NodeCanvas - (Behaviour Trees | State Machines | Dialogue Trees)

Discussion in 'Assets and Asset Store' started by nuverian, Feb 8, 2014.

  1. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Got a problem with the latest update.

    Copied the demo1 and added a few things to it to experiment while I learn,
    Whenever I open the project again and open the scene, when I select a GO with BT to look at in the NC editor the Start node is resized to a larger size which upsets all the formatting.

    In this case I have the NC editor window docked next to scene in a dual screen layout.
     
  2. dilbertian

    dilbertian

    Joined:
    Aug 13, 2010
    Posts:
    74
    I am having some performance issues with my current homegrown frame-driven Behavior/FSM code at the moment and was just looking at available options when I came across your NodeCanvas framework.

    This looks awesome, and I'm thinking of giving it a go, but first had some questions about performance/optimization.

    Are the NodeCanvas core components implemented using Co-Routines or via frame updates? If Co-Routines, can you briefly describe the scope of the Co-Routine implementation within the various components, their effectiveness and any potential limitations/bottlenecks or known performance issues?

    Thanks!

    -Tim
     
  3. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Alright, I'll see to it adding more self contained tasks :)


    Thanks for the link. I will add such a feature in the roadmap as it seems quite interesting, but I will have to finish some stuff first :)


    Hm. I do have a dual monitor setup as well and I can't seem to reproduce this issue no matter what I do :/. Can you reproduce this and describe the steps if so please?


    Hello there and thanks :)

    Sure thing. Here is what's going on:

    NodeCanvas is build with coroutines. When a graph is started a coroutine updates it until the graph is stoped. In that time, a Behaviour Tree will tick the start node for example, while an FSM graph will update the current state node. Then the other thing that needs updating are Actions. Actions are running in deffered. When an action needs to run it first simply Executes. If it did finish on the same frame then no co-routine is started. If it did not though then a co-routine starts and runs until the action is done.
    Those two (Graph, ActionTask) are the only two components that require some form of updating.

    Currently, running the Actions in deffered rather than being Task nodes themselves as it commonly is done for Behaviour Trees, might introduce some slight performance drop but the design decision of having Actions and Conditions decoupled from the nodes is still something Im very fond of, as it makes them much more reusable amongst any system or even for completely different reasons outside of NC.

    An optimization that I could have done and certainly will do, is to run the Graphs and the Actions from a single MonoBehaviour. That is an optimization that is trivial to implement and as such I've skipped it for the time being as to focus more on actual usability, friendliness and features since the performance right now is good enough for most things that one would need. With the above said optimization that will soon happen, it would certainly be better.

    I hope this answer your question? :)

    Best regards,
    Gavalakis
     
  4. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    I bought your node canvas two days ago. Previously, i already had playmaker in my project. However, after import your package, i am getting this error. What is the problem and how to fix it?

    $2014-03-20_04-21-48.png
     
  5. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello,
    That look rather weird since those errors stem from playmaker script.
    I've create a new project, imported playmaker and then nodecanas and everything is fine as it should.
    Does removing the NodeCanvas folder actually fix these errors? It's very weird.

    Thanks
     
  6. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    Hello, i tried to create new project. firstly, I imported playmaker, it's fine (figure 1). Then, I imported node canvas, and I've found an error from a file in standard asset, error log said that it is only work in unity pro. Finally, I removed this file, but I got more errors (figure 3). I also tried your suggestion to remove nodecanvas, and it is fix these errors.

    Figure 1:
    $playmaker.png

    Figure 2:
    $import Node Canvas.png

    Figure 3:
    $remove standar asset.png

    ps: I used free unity 4.3.4 on Macbook pro (mavericks).
     
    Last edited: Mar 23, 2014
  7. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    I tried to create new project and import Nodecanvas only. I got this error: Assets/Standard Assets/Image Effects (Pro Only)/AmbientObscurance.js(8,33): BCE0018: The name 'PostEffectsBase' does not denote a valid type ('not found'). .

    $final.png

    Is it only work for unity pro? Because i did not see description about it in the asset store. Thanks.
     
    Last edited: Mar 23, 2014
  8. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello.
    Well the single file error you are getting is just an image effect I used for one of the demos, but I don't see how you are getting that folder (Standard Assets) in there since it shouldnt be included and it's not part of nodecanvas. Good to remind me to remove the image effect it in the next update to avoid such confusion, but that's certainly not the reason you are getting those errors after. There might be a small thing that ''could'' be the reason. Instead of you having to wait for the update, I am sending you that version by email.

    NodeCanvas works with Unity free, but the colors are a bit of in the light theme version, something that I am working on.
     
  9. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    Hello, thank you for your reply. I was tried many ways, but i am still getting the errors. :) OK i was sent you the purchased invoice. So, could you sent me the package without importing the image effect? thanks a lot.
     
  10. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Email send. Please let me know
     
  11. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    Hello Nuverian,
    Thank you for the package. it's working now. I don't know why such errors occurred. :-D.

    $kerja.png

    Thanks a lot.
     
  12. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Great! Thanks for letting me know and sorry for the trouble. Make sure to update from the asset store as well as soon as it goes live.
    By the way if you can use the dark version (as I saw in your first screen), please do so as I am still working on the light version theme
    Thanks
     
    Last edited: Mar 23, 2014
  13. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    OK, Thanks...
     
  14. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    Hello Nuverian,
    I want to utilize your dialog tree for my project, so it will be integrated with behavior tree. I have a request for dialog tree editor. Is it possible to change the direction of this editor. Compared to another asset specifically for dialog system, your editor window is less convenient for editing the dialog. Sorry for this comment :).

    NodeCanvas:
    $dialog.png

    Dialoguer:
    $dalog 2.png

    Another question, is it possible to change the background color?. Because i cannot see clearly, because between text and background colors are quiet similar.
     
    Last edited: Mar 23, 2014
  15. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Any comment is more than welcome since they make the tool improve :)
    Right now you can change the line if you hit enter in the text area box, but I can make it so that it instead wraps and the text in the node wraps based in the its scale which you can adjust as you wish by the small arrow on the bottom right of the node. Maybe that works better. As it seems, it does, but you sshould still have to change line for the UI to show correctly and not in a single line, that's the reason it was done like that in the first place.

    $DLGWrap.gif

    I am working the light version theme as we speak. It will be ready today.
    $DLG.png
     
    Last edited: Mar 23, 2014
  16. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    Great!. i am sorry, i missed to tried it completely :). Thanks!
     
  17. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    No problem at all of course :) I should mention in the documentaion actually. Any more suggestions are very welcome.
     
  18. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    I've submitted new version 1.2.7. Here is whats new:

    • Added namespaces.
    • Behaviour Tree Interruptor decorator: Can be assigned a Condition and if the condition is or becomes true it iterrupts the child nodes if running.
    • Get Property Action that gets a property from selection and stores it in the blackboard.
    • Reflection Based Tasks (Get / Set / Check Property, Execute Function) will now show options for int and string as well.
    • Add System Event conditions (Trigger, Mouse, Collider).
    • Custom Event Check Condition and Send Action.
    • Light(indie) skin.
    • Auto initialized BBValue types
    • Dialogue Tree statement node editor will now wrap text based on its scale.
    • Added some more generic actions
    • Organized task categories better
    • Added 2 very simple BT examples for those who don't know how BTs works
     
    Last edited: Mar 24, 2014
  19. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,780
    Hi Sonic,

    I am interested in this space - could you post the other examples you mentioned.

    Thanks,
    Adam.
     
  20. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    I am extremely interested in purchasing this plugin and plan to in the next few days... my scenario that I'm trying to figure out is say I have two or three looping animations set up in a blend tree in Mecanim... Can I setup to control the speed of the blend tree with my scroll wheel of my mouse with NodeCanvas?

    If so what would be "best practice" in this case.

    Thanks so much for your hard work on this plugin it seems by far the most robust of node based systems...
     
  21. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    I'm in the process of updating the website, so I will post them under the examples page yeah.
    (PS: who is Sonic? :p )

    Hello there and thanks for your kind comments :)

    Yes it's quite possible to do that, although it's certainly not the best case where a Behaviour Tree or FSM would be used as they are ment for more broad behaviours. But still, here it is:

    I just made an action that gets the mouse scroll delta and stores it as a nodecanvas variable.
    Then there is another NC variable named speed.
    Then we add the scroll delta to the speed and finaly set the mecanim float named speed to be equal to our speed variable.

    $MouseScrollToMecanim.png

    In this case I've used an action list to minimize the number of nodes and group the actions. Each action could be a different Action node by itself though.

    Notice though, that since this is in a Behaviour Treem, this will happen only when the action node is executed

    Here is the action I've created:

    Code (csharp):
    1. using UnityEngine;
    2. using NodeCanvas.Variables;
    3.  
    4. namespace NodeCanvas.Actions{
    5.  
    6.     public class GetMouseScrollDelta : ActionTask {
    7.  
    8.         public BBFloat saveAs;
    9.  
    10.         protected override string actionInfo{
    11.             get {return "Get Scroll Delta as " + saveAs;}
    12.         }
    13.  
    14.         protected override void OnExecute(){
    15.  
    16.             saveAs.value = Input.GetAxis("Mouse ScrollWheel");
    17.             EndAction();
    18.         }
    19.     }
    20. }
     
    Last edited: Mar 26, 2014
  22. ClaudioFreda

    ClaudioFreda

    Joined:
    Nov 16, 2013
    Posts:
    7
    Hi Nuverian,

    I'm getting extremely intrigued by NodeCanvas. Can you elaborate more on how it handles events and/or unity messages?
     
  23. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Nuverian, wow very cool!!!

    My ultimate end would be that a random target speed value would be set and that the player would have to use the scroll wheel to match the speed value to reach success and move onto the next node in a sequence...

    And although my fung fu is not anywhere in the same universe as yours I can see the true potential of NodeCanvas and you should see a purchase from me today!

    Thanks for your expertise and I hope I can lean on you from time tot time...
     
  24. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello there. :)

    Regarding unity messages you can use them as normal in any task (Action, Condition) if you specify that you want to use them with an attribute. That will kind of make the message be forwarded from the agent and to the task. After that you just use them as normal. Here is an example condition:

    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections;
    4.  
    5. namespace NodeCanvas.Conditions{
    6.  
    7.     [ListenToMessages("OnTriggerEnter")]
    8.     public class MyCondition : ConditionTask {
    9.  
    10.         bool isReceived;
    11.  
    12.         protected override string conditionInfo{
    13.             get {return "Trigger Enter";}
    14.         }
    15.  
    16.         protected override bool OnCheck(){
    17.  
    18.             if (isReceived){
    19.                 isReceived = false;
    20.                 return true;
    21.             }
    22.  
    23.             return false;
    24.         }
    25.  
    26.         void OnTriggerEnter(){
    27.  
    28.             isReceived = true;
    29.         }
    30.     }
    31. }
    32.  
    There are already some conditions included for Trigger and Collision Enter, Exit Stay as well as Mouse Enter, Exit Over.
    These included condition are made though to be true only the frame that the event happens unlike the above example.


    Then there are custom events, something new in version 1.2.7 so it will certainly improve:
    You can send such a custom event from within any Action or Condition by calling SendEvent(string) directly in the task or by calling SendEvent on the graph owner. Same thing.
    Then there is a Check Event Condition that can listen to an event and when it is received and used, the condition returns true.

    These are usefull in both the context of Behaviour Trees and State Machines:


    Example of performing an interruption by using such a Check Event condition on the Interruptor.
    $EventsBT.png

    And in FSM of course it has the expected results.
    $EventFSM.png

    Is that what you ask or I misunderstood the question? :)
    Thanks



    Hey thanks a lot again! :)

    Im not sure if thats what you are after, but here is an example I made:

    $Match.png

    We scroll the mouse wheel and if the condition is true, then "Match" is shown for 2 seconds and then a new targetValue is set at random from 0 to 1.
    Else if the condition is false, then "Not Match" is shown and until it is.

    I skipped the mecanim part here. I actually like this example and will include it the next update.
    Thanks a lot:)

    Feel free to ask anything.
     
    Last edited: Mar 27, 2014
  25. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Nuverian... Dude that's AWESOME!!!

    Here is kinda the scenario in my head... I start with two different looping animations jog and sprint and I have a runner in a long distance race and the goal is to match his pace to the random set speed, the match is the sweet spot to keep up his speed and to conserve energy. Then if he's conserved enough energy he has enough left in the tank to sprint past everyone and win the race, only if certain time goals are met would the sequence advance to a new set of animations/speed goals.

    I like the random part because it changes things up if the player loses the race its not always the same setting all the time.

    Of course this is one scenario I can think of a bunch of other uses for it...

    NodeCanvas is gonna be sweet!
     
    Last edited: Mar 27, 2014
  26. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Hi Nuverian.

    Just gave a shot with Node Canvas, but I have error message which I need your help on

    I think this basically occurs... when I call "execute function | set property" with GameObject as parameter but passing a null object.

    I do check for null object using custom conditional function just in case before hitting that stat with calls the action but it does somehow gets pass that as well.

    In regardless of why it passes the condition in the first place, I don't think it should spit out errors like that above.

    when I trace the code it happens here :

    method.Invoke(script, paramValue != null? new System.Object[] { paramValue } : null);

    on ExecuteFunctions.cs

    Another thing... can we move the connections around without killing the conditions ?

    I have high hopes for this assets.. it's not like I spend 50$ on assets everyday!
     
  27. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Also (1) on state with no actions, I don't think it should spit out warnings all the time neither. I could easily comment it out but I think it is perfectly alright to have an empty state waiting for a condition to happen. Maybe this "empty state waiting for a condition to met" could be better handled by BT , but you can see my point.

    Also (2) it would be nice to be able to connect to the all other 2 sides of the node as well. One side for out let and all other 3 sides be able to connect. Make graph easier to read if lines go cross/under the nodes. I can see the graph would have little issue with BT as it is more like a tree form, but state machines are different..

    Also (3) :D it would be lot nicer if I can delete prefab from hierarchy without having to close BT editor window first. It is very annoying. If this happens the BT window should just display empty.. simple as that. Not being able to edit in prefab state is annoying as well, but if you insist that it is not safe, then it's ok with me.

    cheers.
     
    Last edited: Mar 27, 2014
  28. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Great :)
    Let me know if you need any help in your adventures :)



    Hello there!

    Sorry for that bug and thanks for finding it :)

    Please replace:
    Code (csharp):
    1. method.Invoke(script, paramValue != null? new System.Object[] { paramValue } : null);
    with:
    Code (csharp):
    1. method.Invoke(script, selectedType != null? new System.Object[] { paramValue } : null);
    Regarding your condition to check a null game object variable, it should work fine. Here is one in case you need it:
    Code (csharp):
    1.  
    2. public class IsNotNull : ConditionTask {
    3.  
    4.     public BBGameObject gameObjectVar = new BBGameObject{blackboardOnly = true};
    5.  
    6.     protected override string conditionInfo{
    7.         get {return gameObjectVar + " != null";}
    8.     }
    9.  
    10.     protected override bool OnCheck(){
    11.         return gameObjectVar.value != null;
    12.     }
    13. }
    14.  
    Regarding connections, I'm in the process of making it possible to re-connect an existing connection to another node without losing the condition yes :)

    1) Yes, you are right :)

    2) I am acually in the process of improving the state machine editor connections. In that proccess I've accounted a better way of node to node connection for state machines.
    (--EDIT-- By the way, right now you can change the in and out sides using ALT or Control + Arrow Keys, but maybe you already know that)

    3) I don't understand what you mean here :). You don't have to close the editor window. If you delete a BT that you are editing, then the editor window indeed displays empty with a message to select another if you like.

    Thanks Castor,
    Gavalakis
     
    Last edited: Mar 28, 2014
  29. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Ok, What I mean is ...

    I have a prefab with StateMachine and BT component on it.
    When I want to edit it I have to bring it into scene. (ie : into hierarchy )
    When I am done with it, I want to apply it and then delete it from the scene.
    But in order to delete the prefab , I need to close the BT editor window first. Otherwise, I can't delete the prefab from the scene!

    Sorry about keep spamming with requests but I think it would be cool to have more Mechanim functions added. Like checking specific layer's current state etc..
     
    Last edited: Mar 28, 2014
  30. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    I suspect you refer to the fact that when you select the game object in the scene it loses focus because focus is gained by the editor window the first time. If you re-click the game object so that it is actually selected in blue, you can delete it just fine. I will see to fix that so that the focus is not lost even the first time. Please confirm that you are refering to that :)

    No problem with requests. I love them :)
    I am actually putting new tasks on each update. I will see to adding more mecanim oriented in the next then :)
    --EDIT--
    If you are in need of some specific mecanim task like right now, let me know.
     
  31. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    no. that is not what i mean...

    let me explain again.

    i have a prefab (game object) in project folder. on that prefab, i have BT owner component attached to it.
    if i want to edit it, ( edit BT nodes of that prefab) i need to bring it into the scene, by dragging it from project folder. because Node canvas does not allow me to edit it in prefab inside project folder.
    after opening BT editor and done with it, i want to remove that prefab from the scene. because i instantiate it later using code.
    when i press delete key , it DOES NOT delete it. i can't do it.(to delete / remove prefab. not any nodes inside BT editor0
    it only deletes if i close the BT editor window. i am not sure how else i can explain this... it is very simple as that really. it has nothing to do with focus or working inside BT editor . it has nothing to do with working with nodes or anything inside BT editor.
     
    Last edited: Mar 28, 2014
  32. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Alright, this becomes confusing right now hehe :)

    Are you telling me that this does not happen to you?
    (Selecting it twice for the reason I've stated in previous post)

    $Deleting.gif
     
  33. desyashasyi

    desyashasyi

    Joined:
    Nov 22, 2012
    Posts:
    73
    Hi,
    I am working on iOS. When i tried to build, i got this message. What happen?
    $Node Canvas.png
     
    Last edited: Mar 28, 2014
  34. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello. It seems I missed something while adding namespaces (which the version I've send you have).
    At the indicated error line, please change the #endif from:
    Code (csharp):
    1.  
    2.  
    3.         }
    4.     }
    5.  
    6.     #endif
    7. }
    8.  
    9.  
    To:

    Code (csharp):
    1.  
    2.  
    3.         }
    4.     }
    5. }
    6.  
    7. #endif
    8.  
    9.  
    And it should work.
    Thanks :)
     
  35. iamsam

    iamsam

    Joined:
    Dec 22, 2013
    Posts:
    233
    Hi,

    This is quite an elegant visual editor solution. I glanced through the comments but could not find any videos demonstrating the plugin. Do you have any videos explaining the different aspects of the editor? Also does it support programming with multiple threads? Thanks
     
  36. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517

    OHHHH I see what you mean now.. Ok.. I have not tried that before. And yes indeed.. by re-selecting it I was able to delete it. Sorry about that. Anyway, I agree that not losing focus would be cool. :D
     
  37. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Ugh...

    I have imported new version and now it has some errors..

    Basically can't find namespace or type BBxxxxxx and FSMOwner..

    This is urgent! Can you help?

    Edit : Don't worry, I realized that I need to use additional namespace other than just NodeCanvas. This should be updated on the online doc however. (you have lot to do ! hehe)
     
    Last edited: Mar 29, 2014
  38. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello there and thanks,
    Unfortunately there are no videos yet, and I know that there should be. Sorry :(
    For the time being please visit the website www.nodecanvas.com or ask anything here. I will try and do some video as soon as I find time.
    Regarding multithreading, NodeCanvas does not make use of multithreading :)

    Thank you,
    Let me know if have any questions

    We resolved it ;) .Yeah, I will make it not lose focus. It's confusing.

    Indeed it's regarding namespaces. I was waiting for the new version to go live and right now I go and update all the docs. Indeed, much to do :)
    Here is a very brief overview in case you need until the docs are updated which Im about to do now:

    NodeCanvas
    NodeCanvas.Variables
    NodeCanvas.BehaviourTree
    NodeCanvas.FSM
    NodeCanvas.DialogueTree

    Here is the update log in case some one missed:

    • Added namespaces.
    • Behaviour Tree Interruptor decorator: Can be assigned a Condition and if the condition is or becomes true it iterrupts the child nodes if running.
    • Get Property Action that gets a property from selection and stores it in the blackboard.
    • Reflection Based Tasks (Get / Set / Check Property, Execute Function) will now show options for int and string as well.
    • Add System Event conditions (Trigger, Mouse, Collider).
    • Custom Event Check Condition and Send Action.
    • Light(indie) skin.
    • Auto initialized BBValue types
    • Dialogue Tree statement node editor will now wrap text based on its scale.
    • Added some more generic actions
    • Organized task categories better
    • Added 2 very simple BT examples for those who don't know how BTs works
     
    Last edited: Mar 29, 2014
  39. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Is it possible to make a custom actions within one action script file? I don't want to create many script files .. per action.

    Also why is there obvious conditional check for int , vectors ..etc missing? These basic ones should be present as default I think...

    I am kinda in middle of thinking of making custom condition for this.. or wait for better updated version.. (but I want to use it ! sop.. T T.)
     
    Last edited: Mar 29, 2014
  40. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Sorry, that's not possible to do :)

    Checking a vector can be done in so many ways that's why I've left it out, but I could add some of those ways yes.
    I was also thinking of adding a page in the website with action and condition tasks so that you people dont have to wait for an update just for a condition or action. I might do that :)

    Let me know what you miss there

    --EDIT--
    On release of NC, I didn't plan to include a whole lot of different actions conditions but rather only few as an example, although that initial plan has changed overtime since I see no reason why not :)
    ----------
     
    Last edited: Mar 29, 2014
  41. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    As we all other tools, it needs good foundation and improve the usability through feedback and user friendliness. Adding default conditional checks like int and vectors are just some of them. Keep up the good work!
     
  42. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    I obviously agree, and thank you :)
     
  43. Vectrex

    Vectrex

    Joined:
    Oct 31, 2009
    Posts:
    267
  44. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
  45. ProjectOne

    ProjectOne

    Joined:
    Aug 9, 2010
    Posts:
    442
    hi, did you get around to create video tutorials?
     
  46. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Hello there,
    Sorry, I've haven't yet created video tutorials since I'm rentlesly working on improving and adding stuff although I know that this is a bane right now. Thus, I will see to creating one ASAP like even today. I've already delayed videos enough.

    Thanks :)
     
  47. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    This would be hugely helpful for designers like me who are way over their head when it comes to even the simplest of coding.

    I'm 51 years old and have enrolled myself and my 11 year old son in an online course that teaches kids C#, he's picking it up quicker (which is depressing) but it puts us on the same level and it's fun for him and me. I've told him over and over, buddy if you learn how to program you can control the world!:twisted:

    My goal is one day code on my own, I just hope I can learn before my eyes give out from old age:eek:

    So I thought of this, as an example in previous threads when I asked about the scroll wheel controlling the speed value of a blend node in mecanim the solution was presented like magic. I have been pouring over the unity manual and mecanim for weeks and then pow like manna from heaven there is was, there will be many others that struggle on how to create and link stuff together.

    So your comment got me thinking, what could NodeCanvas provide that others do not and it came to me, a cookbook! Where coding Kung Fu Masters can have condition and action recipes and would describe what its use is for and then the code snipit that others could add to their nodecanvas collection, not only with standard assets but with other 3rd party plugins. Plugin creators can add recipes to tie in with their plugins not only to bolster NodeCanvas but also drive possible sales to their creations (This would be huge).

    It's up to you of course but you could contact various plugin creators and offer NC for free in exchange that they would provide code to your cookbook that people would be able to use to tie in things like NGUI to your Dialogue and FSM systems or FinalIK to your FSM and BT system for example.

    This is what strategic partnerships is all about. Make it to where people wouldn't dare use another BT, FSM, Dialogue system.

    And then again some coders could make their own cookbook and sell it on the asset store, its one or half a dozen other (American expression) but you have worked hard on this and made it highly extendable/expandable so people being able to just copy paste code to add nodes would endear them to NC even more. Plus would save you on always having to update the plugin over and over to get new nodes (as in your previous post).

    I know many would prefer to keep their custom nodes to themselves and that is understandable, but if NodeCanvas had a "how do I?" with a field to enter in there question/idea, then the solution presented could be added to the cookbook for all to use and could be categorized like character control or AI etc.

    Nested BT, FSM nodes could be locked where certain AI creators could protect their work and sell them for canned solutions with exposed variables, etc. for customization, it could be endless the possibilities.

    I'm just spit-balling here (another American Expression) and sorry to be overwhelming but I'm very excited about this purchase and I want to quickly as I can use NC to its fullest.

    Thanks again for your hard work.
     
  48. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    As an added note...

    I noticed you are working on another project AGF, are you planning on selling it as a node package for NC?

    I can get my head around connecting nodes to build my adventure game more than fields and drop down menus.

    This also dovetails nicely with my comments above.

    thanks again...
     
  49. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Licarell,

    Wow, what an inspiring post and I thank you for that!
    Be asured that I will take your advices very seriously. Most of them are quite possible and indeed I hope to be achieved over time one day, although I try not to get ahead of things :)
    This overall 'cookbook' idea is quite an interesting one and I will see to it somehow realized in one way or another, sooner than later.

    The AGF project will be a standalone package for adventure games creation, although it's build on the same (NC) framework for the most part.

    I wish you the best on your coding adventures! Yeah, kids are very keen on technology these days :)
    And again, thank you for the inspiring post! I will not take it lightly.
     
  50. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,780
    Hi Nuverian,

    Has this been tested on windows mobile?

    Cheers,
    Adam.