Search Unity

[FREE] The Skill - a node-based ability system for developers

Discussion in 'Assets and Asset Store' started by dongfangliu, Mar 31, 2018.

  1. dongfangliu

    dongfangliu

    Joined:
    Mar 6, 2017
    Posts:
    45
    Hi ,guys
    Have you ever wanted to create skills for your character?
    But eventually got a headache with following problems.....

    How to link character porperties with your skill script?
    How to get instant data as input for a skill ?
    How to know the status of skill during runtime?
    How to combine the data (needed for the skill) with the script?
    How to support an ability tree for each player?
    How to define the interaction on scene objects when skill takes effect?
    We need extensible character properties for different types of game(RPG, ACT ,MOBA...).
    Every ability may have different requirements on data ( audio, FX , animation ……)
    Every character may have common abilities but also his/her unique ability.
    .....
    The ultimate problem is how to make an organized and extensible ability system. It should bind the ability tree and give freedom on the definition of the ability's behavior.

    ________________________________________________________

    The Skill
    is a node-based ability system for developers.

    The Skill provides a flexible and customizable framework for an ability system. With simply filling 7 functions, you can perfectly make your own ability system work!

    The Skill has following fascinating features!
    • Customizable attributeTable for your players
    • Customizable skill node
    • Distinguish skills with Tag + NickName + Icon
    • Auto skill script generation
    • Selectable skill rendering layer
    • Visually manipulating your node
    • Distinguish AttributeTables with Tag + owner
    • Drag and drop to create a customize Skill Node Library
    • Visually establish Parent-child relation between nodes
    • Scaleable and no-limited Skill Tree editor window
    • Auto passive skill management
    • Auto skill status management
    • Play skill with just one line of code!

    ( i am sorry that the wizard sample is not in the video,because i added it after the video )

    The Skill
    could be readily utilized for AI and any other system framework. Beacuse it provides complete and automated character skills process management, CoolDown control, skill status querying (Playing, NonExist, NonActived, Free) and acquisition and setting of skill-dependent variables. With these interfaces, you can do more things.

    In The Skill each skill is a node, passive skills will be automatically managed and triggered, and active skills require the developer to write additional trigger script for skills call. In addition, each skill is divided into both directional and non-directional skills.

    You can create a skill node within a click and relative skill script will be auto generated.An instance will also be created.

    Each skill, inherited from the parent class SkillNode, and SkillNode inherited from Scriptableobject, so it is an entity data, but also can have its own member variables and member functions.

    This setting allows the skill node to do the integration of data and code. In this plugin, some member variables of the parent class SkillNode will appear in the Inspector, you need to set them to make the skills perform as expected. The extra variables you need should be declared in the code with the same name as the skill, which will also appear under the ChildProperties in the Inspector.

    More interestingly, since each node is data, you can delete, copy, or move just like any Prefab does. The advantage is that, combined with our SkillNodeLib (that is, the template library), you can freely sort these nodes in accordance with your needs into the collection you want, such as human skills template library, or divided according to occupation, magician Skill template library 1, magician skills template library 2, warrior skills template library 1 ......

    All these operations are visual. The only code you need to cover throughout the system is the node code which has the same name with the skill and the skill invocation script.

    Of course, for each specific character and player, their skill tree may come from the same template, but the specific skill progress may not be the same. So in The Skill, the last thing for real game to come in is SkillLearningTree (skill tree).To generate a skill tree from the SkillNodeLib(skill lib),all you have to do is to click a button.

    However, such a skill tree does not have any parent-child relationship between nodes, and each node is independent. By right-clicking on the node, you can easily establish the relationship between the nodes.

    This parent-child relationship has only one effect. When a child node is not activated, the parent node will also be forcibly deactivated and will not respond to code calls.

    Manual and ScriptReference are supported.
    Video tutorial is in the process of making...


    I also support two examples(a warrior and a wizard) for this plugin . Both of which has 3 skills besides basic moving, giving basic prototypes for a scratch.
     
    Last edited: Apr 3, 2018
  2. dongfangliu

    dongfangliu

    Joined:
    Mar 6, 2017
    Posts:
    45
    I've tried hard to write this framework generally but still it cannot avoid some limitations. Since The Skill is based on a general pipeline of skill casting as described in the manual, the pipeline itself may be an unavoidable limitation.

    The Skill 's pipeline is fixed, but the imagination of developers are not limited. Make full use of this pipeline to achieve your ideal performance!

    I know clearly this plugin is not so perfect. Because it takes time to learn how to use and not zero-scripting as PlayMaker or Bolt. But scripting pipeline really gives more power and freedom for skilled programmers, doesn't it?

    With source codes opened, you can modify them to suit you needs.

    Though it is not so mature, it contains not only basic functionally scripts but also skill script examples,particles and UI samples.

    I think it will be useful but not so useful, so i just set a price of 20$.

    So how do you like it ?

    I appreciate all your suggestions but i may be too busy to reply since i am in college and now applying for interns.
    I wish to make improvements on this plugin, but i am not sure whether i have any more time to work on this.
     
  3. dongfangliu

    dongfangliu

    Joined:
    Mar 6, 2017
    Posts:
    45
  4. dongfangliu

    dongfangliu

    Joined:
    Mar 6, 2017
    Posts:
    45
    Someone told me to add a feature : timeline -based scripts editing.

    That is to execute certain script at certain time stamp of one skill.

    So currently, in this framework, the overall timeline consists of 5 parts(trigger,emit,play,stop,exit) and each publishes corresponding function interfaces for developers.

    I am wondering if it's essential to implement this stuff ......

    But i think may be a timeline-based visual debug tool (just like a video player )will be helpful.
     
  5. dongfangliu

    dongfangliu

    Joined:
    Mar 6, 2017
    Posts:
    45
    GOODSunny and luca1994venti like this.
  6. dongfangliu

    dongfangliu

    Joined:
    Mar 6, 2017
    Posts:
    45
    Many people claim that they cannot use samples properly.
    Now i give a tutorial.Hope that will help.

    Setting up sample environment.(The video is now updated for Unity 2018.1.1f1)
     
    GOODSunny likes this.
  7. xly251

    xly251

    Joined:
    Dec 3, 2016
    Posts:
    1
    Please add me in QQ or Wechat, I want to get more infor of buff support: 121968563