Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[OPEN SOURCE & FREE] Nodify2 Visual Scripting Library

Discussion in 'Assets and Asset Store' started by darkForester, Nov 14, 2014.

  1. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Nodify 2 is an open source visual scripting library for Unity.

    The repository is located publicly here:
    https://bitbucket.org/antiherostudios/nodify



    Example of extending a Node.


    Current Features
    The project is currently in an alpha state. It functions well, however needs to be cleaned up and enhanced.
    • Create node hierarchies and develop game code visually.
    • Group nodes into groups that can be embedded into other groups.
    • Extend and create custom nodes for custom functionality.
    • Extend the node renderer so you can create your own custom node types.
    • Create and use Global Variables in node groups and code.
    What version of Unity is this for?
    It should work in all 4+ versions of Unity. It is currently being developed in the 4.6 beta however I will use UNITY_4_6 where possible.

    Should I use this in a commercial product?
    You can, but be aware that as this project evolves it will become cleaner, faster, and stronger as the community develops it.

    Why Open Source?
    Following in Unity3D's footsteps of providing open source modules, I felt it was a good move to allow the community to use a tool that I have spent some time developing. With the proper support and motivation, we can develop a great tool together that can be shared amongst projects.

    What about Nodify 1 on the Asset Store?
    Nodify 1 was an older version of this concept. We completely rewrote the code base from the bottom up to create a faster, and more usable version. This project is not backwards compatible with Nodify 1. This project is a spiritual successor to the original Nodify.

    Collaboration
    Fork the repository and submit your changes. You will need to create a pull request so that I can pull your changes into the master branch.

    Bugs & Feature Requests
    Please use the Issue Tracker on the BitBucket site to create Tasks that we can work on.

    Source Code License
    The project is currently being converted to the New BSD License. A copy can be found in the root repository folder.

    Feel free to ask any questions here on the forum as you have them!

    Thank You and Happy Coding!
    - Devon Klompmaker
     
    Last edited: Mar 18, 2016
  2. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Current Features Added as of 11/14/2014
    • Animator Calls (Set Trigger, Set Bool, Set Int Set Float, Play and Reset)
    • Loop Node (index and howManyTimes)
    • Modified how the delay node functions.
    • Added more icons to nodes
     
  3. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,366
    Nice but ...

    License: GNU GPL = I do not touch.
     
  4. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Elias_t thanks for the reply. Is there a particular reason why you don't like the GNU license?

    I am not married to a particular license, as long as it serves the community's best interest.
     
  5. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,366
    Hi. While you are stating that it can be used for a commercial project you
    must be aware that not all developers are going to be happy to use this in a project
    where the gpl virus will contaminate their code.
     
  6. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Once again I appreciate the input. I will convert to the 3 Clause BSD license which has lesser restrictions.

    Thank you again for your response.
     
    Last edited: Nov 15, 2014
  7. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Current Changes as of 11/15/2014
    1. After researching different license patterns, it appears the most flexible and protective license for the contributors would be the New BSD license. This has been changed and now will reflect in the modified code.
     
    AFrisby likes this.
  8. TheSin

    TheSin

    Joined:
    Aug 4, 2011
    Posts:
    150
    This looks interesting, hopefully I can add my own knowledge to this project as I have my own nodal system (WIP but very different to these visual scripting systems) that i've been writing for the last year+ to work alongside my projects.

    Thanks.
     
  9. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    TheSin thanks and I look forward to seeing your pull requests.
     
  10. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Current Features as of 11/17/2014
    Greetings all, I have just added the following features:

    • Platform dependent nodes (Standalone, Mobile, WebPlayer)
    • Shift + Right-Click on nodes exposes the default method anchor
    • You can override defaultExposedMethodName per node.
    • Delay node can be run in parallel or consecutive mode.
     
    rakkarage likes this.
  11. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Current Features as of 11/18/2014
    I have added some more fun features!

    • Global Variables (You can now use get and set global variables by key name)
    • Wizards for both new Node Types and Global Variable Types
    • Visual changes to Global Variables
     
  12. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Bug Fixes as of 11/26/2014

    • Fixed errors when no NodeGroup was selected
    • Added exposed fields to Transform and Vector global variables.
     
  13. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Adding New feature Screenshots as of 11/30/2014
    • Added two new examples
    • Added networking nodes, pretty cool stuff
    • Added RPC to event messenger for easy node networked calls
    • Added Draggable components to Variables conversion


     
  14. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,121
    This looks really exciting, can't wait to try it out when I get home!
     
  15. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    706
    Watching thread, this is amazing :O
     
  16. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Update 12/01/2014

    • Added a Preferences Window for Nodify
    • Provided options to toggle the visibility of the nodes & anchors in the scene hierarchy.
     
    rakkarage likes this.
  17. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Update 12/8/2014

    • Added "New Group [With selected nodes]"
    • Multiple Node selection
    • Hierarchy symbol for Node Groups with selected state
    • Numerous bug fixes
    • Hot Key editor preferences




     
    rakkarage and RavenFactory like this.
  18. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Project Status
    Happy New Year! It is amazing how quickly the year flew by. We'd love for more people to download and try the library to provide testing and feedback.

    If you missed the link the repository is located here: https://bitbucket.org/dklompmaker/nodify/

    We'd also love to hear ideas for new nodes & features as well!
     
  19. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Update from 3/9/15

    • Updated Unity Package on BitBucket
    • Submitted to AssetStore for review
     
  20. RavenFactory

    RavenFactory

    Joined:
    Jul 28, 2013
    Posts:
    2
    Thanks darkForester,Nodify is a great tool.
     
  21. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,000
    Looks amazing!

    Have only used it few minutes,
    but i'm wondering if there is a way to replace a node?

    I placed rigidbody, it should had been rigidbody2D..and already have some other links & variables connected to it..

    *Actually there is no rigidbody2D yet it seems?

    ** Well that was too easy, just duplicated the existing Rigidbody and modified into Rigidbody2D, it works

    Current results: 0 lines of code written,
    http://unitycoder.com/upload/demos/FlappyNodify/ (webplayer)
     
    Last edited: Mar 9, 2015
  22. Breyer

    Breyer

    Joined:
    Nov 10, 2012
    Posts:
    412
    Personally prefer coding myself but this looks quite nice. BTW you would like to have selection rect looks like in unity? if yes i wrote SelectionHandler which behave generally similar to unity selection rect (and looks identical). I wrote this for my personal work but i dont mind to share this ;) This is useable in EditorWindow ofc
     

    Attached Files:

  23. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Thanks for your kind words. Please feel free to fork the repository and commit any suggestions or changes that you would like to see.

    Thanks again.
     
    shkar-noori likes this.
  24. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    this looks promising, I'll be watching the thread..
     
  25. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    I am really impressed by this nice Plugin and your work ! Without to look anywhere for a tutorial, i was able to grab it and make some simple conditions / logics. Really cool, how easy to get in. What i would like to have, is some example-projects made with it. To learn from them. Would this be possible ?

    EDIT:
    I meant, more complex example-projects. Like :
    - get / set values from gameObjects
    - get / set values from Scripts (C# and JS)
     
    Last edited: Apr 2, 2015
  26. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Sledgeman,

    Thanks for your comments. Since nodes themselves are gameobjects / monobehaviours, you can create a new node type to handle your special needs and add fields and properties as necessary. The only downside is you would need to "target" an object instead of itself (because you would be targeting the node). This is a WIP and will be evolving over the course of time.

    Thanks!
     
  27. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Ok, nice to hear the project will get always some updates.
    Sadly i don´t know how to implement your tip :(. For instance, i just want to control the light intensity:
    - every left click = +10% light intensity
    I am sure, this is doable. If you find some time, maybe you can explain it or attach a sample-file. Would be cool and i can convert my game from PM to Nodify2 . :)
     
  28. taraweesh2

    taraweesh2

    Joined:
    Apr 15, 2014
    Posts:
    1
    Is there a way to create and itrate 2d arrays in nodify and if yes how
    trying to make tetris like game using nodify but stuck
     
  29. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    sledgeman This project is still under development and may be missing nodes you are looking for. Hopefully as we grow, we can bring in more volunteers to help support the development of new nodes and examples.

    taraweesh2 There is not a utility for this as of yet. You could write one however by extending the node class. There is a helper context menu to create a base script for this Project -> Create -> Nodify -> New Node Type. Since nodes are based on MonoBehaviour, anything you can serialize in Unity can be serialized on a node.
     
  30. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    Code Update
    There has been little update lately (by myself) however there have been some volunteers who have contributed code such as this Tappy Bird example created by Cristian Geambasu...

    upload_2015-5-8_13-26-22.png
     
    rakkarage likes this.
  31. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    oh, ok...i thought i were allready doable. Than i hope there will be soon new nodes / functions that will make extern variables accessible. thx f. respond
     
  32. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    You can access Global Variables from scripts via the static method GlobalVariable.GetValue(string keyName, bool throwOnNull). Hopefully that is what you are looking for?

    Keep in mind this class exists in the Nodify.Runtime namespace.
     
  33. Torigas

    Torigas

    Joined:
    Jan 1, 2014
    Posts:
    63
    Did this project die? I can't seem to be able to access the Bitbucket anymore. *much sad*
     
  34. daemon3000

    daemon3000

    Joined:
    Aug 13, 2012
    Posts:
    139
  35. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
  36. jice_nolaroads

    jice_nolaroads

    Joined:
    Oct 2, 2016
    Posts:
    21
    hello,
    no update since long on repo.
    is still active ?
     
  37. darkForester

    darkForester

    Joined:
    Sep 19, 2013
    Posts:
    80
    @jice_nolaroads The project isn't under development currently. Feel free to fork and make changes. If you'd like to submit pull requests we'll still accept.

    Thanks,