Search Unity

[WIP] ENS, Extended Node System (Quick travel, Talent Tree, Attribute Grid)

Discussion in 'Works In Progress - Archive' started by Xyires, Jul 30, 2014.

  1. Xyires

    Xyires

    Joined:
    Jul 27, 2014
    Posts:
    1
    ENS: The Extended Node System (A Work-In-Progress)
    This project has been in development for a short while alongside a different project I am working on. Development for this system will not always be priority during WIP but I would like to receive some feedback and suggestions based on the project so far!

    What is this project about?
    I aim to create a user friendly "Node System", a system you can pull out the box and create your own form of node cluster and alter the node settings to your own desire in a small timeframe. This project will also be extended to a point where you can use the nodes in multiple ways, commonly it was going to act as a form of "Talent Tree" for RPG based games and also as a primary skill point system (Similar to the sphere grid system seen on Final Fantasy X). These nodes can be changed to be turned into teleportation options, similar to quick travel systems seen in other games, just click and teleport!

    So what does this project actually feature?
    There will be a "Node Construction Kit" released with this project, allowing users to spawn nodes as they desire with the least amount of hassle (I hope!). The current state of the kit provided is shown below;
    ENS1.png
    A breakdown of what this can do in its current state:
    • Node Branch OBJ - This is an array that is based off of the "Spawn Branch Node" options. The size of the array depends on the branch count. The purpose of this is to allow users to choose the style of nodes they wish to spawn when they are spawning multiple nodes at once. You simply drag and drop the node prefabs you want to include and it will spawn them when you spawn the branch node. If you only have one node style and do not like the idea of adding multiple of the same nodes, do not worry! The entire array nodes are inherited from the single node chosen so you will not have to manually add multiple node styles if there is only one style you want.
    • Node Length OBJ - Exactly the same as above except this array is based on the "Spawn Node Length" instead.
    • Node - This is the game object the kit will spawn once you press "Spawn Parent Node" or "Spawn Child Node". Add the node you wish to spawn there if you are spawning single nodes!
    • Node Conn - This spawns a specific game object that draws a link between the two linked nodes. I would not advise changing this object.
    • Node Spawn Point - The location of where the node will be spawned in the world space. You can edit the values and spawn the node where you want, or you can spawn the node and move it around the world space.
    • Node ID - Each spawned Node gains a number based ID. This number increases by 1 per node spawned to give the nodes unique names and keep them in order in the hierarchy.
    • Previous Node - The previous node is the node that was spawned last, or the node selected out of the nodes created with the branch nodes. It is easy to carry on working on your node cluster if i stopped for the day by dragging the previous node you wish to work from by dragging the node from the hierarchy into this slot.
    • Spawn Parent Node - Spawns a Parent node, the mother of all nodes. This node will spawn with no previous node as it is the parent. It is required to create a parent node before creating other nodes as the other nodes need a previous node to work from for the link!
    • Spawn Child Node - Spawns a singular Child node, linked to the previous node.
    • Spawn Branch Node - This will create a cluster of nodes that branch out from a single node. This is a quick method to add a branch of nodes with two simple sliders and a click! You can slide the branch count slider to the amount of nodes you aim to branch off of a single node. After that you can slide the slider below to choose which one of the many nodes you want to be your previous node.
    • Spawn Node Length - This will create a cluster of nodes in a row, the amount you want to create can be chosen by the slider. After you have chosen how many you wish to spawn, just press the button!
    • RESET - Simply, its a reset button, but to be more specific it will reset most of the data on the kit, not on the scene! Reset will made the spawn position zero'd out, the node ID 0, previous node to be null and more importantly, it will wipe the save data of the node status and the stats gained in-game.
    A smaller hidden feature included which I aim to expand on in the future is automatic node positioning. It is not exactly as smart as it sounds, but for ease each node spawned will increase the spawn location on a particular axis by +5. Spawning parent, child and node length clusters currently increases the y axis spawn location by +5 whereas the branch spawn increases the x axis by 5. This is to make the nodes easily visible when a cluster of them is made mainly but I would like to expand on this feature in the future.

    ENS2.png
    Easy to Track back on what you have done through the console!
    How does it look?
    In terms of functionality, the system is working to about 90% how I imagined it. There are a few tweaks I would like to add to make this system easier to use and UI friendly, but for no my main focus is getting the functional code put in place, tidying up and then I will start making the node cluster look more appealing.
    There is not any large plans to making the node cluster itself look visually outstanding as this mostly a project based on making a working node system instead of a pretty one.. for now at least.

    ENS3.png
    A preview of how a built up node cluster works in game
    Above is a cluster of nodes I have created for demonstration purposes to show how it works. There will be a simple webplayer or a video on this project when it is closer to completion but for now here is a basic screenshot.
    So far it displays:
    - The gray nodes are inactive and unreachable nodes, the yellow nodes are active but unused and the red nodes are used.
    - Hovering over a node emits a faint blue glow along with a crosshair to make choosing your node easier.
    - By clicking onto an active node, you will be offered confirmation of using the node and hovering over any node will display a tooltip as shown.
    - Everytime a node is used, the system will autosave the node status.
    - The links change colour depending on the two nodes connected status'. Gray is an incomplete link, green is a possible link and blue is a complete link.

    I apologise for the long post, I will edit it soon enough to make it easier but I have covered the main points to the detail I desired for now. Any questions just ask, feedback and suggestions for what to change or add to this system would be much appreciated!
     

    Attached Files:

    • ENS1.png
      ENS1.png
      File size:
      38.3 KB
      Views:
      801