Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by ExtraLifeMatt View Post

    Can Execute Ability will only be executed on the Server if you're using a networked game. My background is in MMOs (I worked on both Star Wars Galaxies and Star Wars: The Old Republic, not to mention a few other multiplayer titles) so I'm paranoid about that stuff.

    Able will forward all ability requests to the server for validation before replicating things out. At worst case, if you have someone cheating or altering memory values, they would see themselves do an Ability but the server would throw it away and all remote clients wouldn't see it - so, only the cheater is getting a bad experience.
    I absolutely ,love everything about that answer :> It nulls my next question regard instant execution on the owning client

    I run a D20 game so all my stats are integers and working with game-play stats and gameplay.abilities require working with floats that are not very precise when it comes down to comparing values.

    Where were you all my life!

    I'm testing this on the impropable GDK https://www.unrealengine.com/marketp...evelopment-kit
    It should work

    Leave a comment:


  • replied
    Originally posted by FuTou View Post
    Hi, Able is fantastic, thank you for making that! I have a question to ask regarding combining Able with player stats/attributes.
    In my understanding, Able is very suitable for making skills, and in MMO/MOBA/RPG, skills are often interacting with stats, and it's deep interwining. For example, we have 2 Buffs(or 2 passive abilities), one add to stat by percentage, another add to stat by linear value. Here comes several insteresting things, such as who calculate first, and how to preview the stats on client, and how they affect damage calculations.
    I'm assuming Able doesn't come with a stats system, so in your opinion, what's the best practice of doing that?
    For example, Unreal has a built in Gameplay Ability system, including "attribute set", and "effect" which can modify them.
    For example, there could be other assets on Marketplace for attributes, although I didn't search for it.

    I don't have deep understanding of Able yet, so I'm hoping maybe you can give some directions on that. Thanks in advance!
    Correct, Able doesn't come with a stat system but is written to hook into any stat system rather painlessly. Able simply asks you for the final value to apply as damage, or cooldown reduction, etc - and you can do whatever math your stats system requires.

    You can use Gameplay Ability System's Attribute sets, but if you want to modify those attributes from within Able, you'd need to craft a special task that allows you to apply GAS effects to those stats.

    You can also find a stat system on the marketplace you like and that should work just as well.

    In my own projects, I just have a very simple stat system since my games don't require anything crazy.

    Leave a comment:


  • replied
    Hi, Able is fantastic, thank you for making that! I have a question to ask regarding combining Able with player stats/attributes.
    In my understanding, Able is very suitable for making skills, and in MMO/MOBA/RPG, skills are often interacting with stats, and it's deep interwining. For example, we have 2 Buffs(or 2 passive abilities), one add to stat by percentage, another add to stat by linear value. Here comes several insteresting things, such as who calculate first, and how to preview the stats on client, and how they affect damage calculations.
    I'm assuming Able doesn't come with a stats system, so in your opinion, what's the best practice of doing that?
    For example, Unreal has a built in Gameplay Ability system, including "attribute set", and "effect" which can modify them.
    For example, there could be other assets on Marketplace for attributes, although I didn't search for it.

    I don't have deep understanding of Able yet, so I'm hoping maybe you can give some directions on that. Thanks in advance!

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post
    ExtraLifeMatt Hi, I just wanted to tell you that I figured out the bad animation blending for montages. Still got issues working with anim graph node, but it doesn't matter as montages give a lot more flexibility regard looping, reusing same animations etc.
    ABLE is an incredible solution. How you can use it is just to your imagination, as you can implement any mana system, any category triggers. and the new rewritten networking and event execution triggers perfectly.

    I have only one question I cant find answer on the help website: does "can execute ability" is being triggered and checked on authority or whatever trigger Im checking it must be replicated to actually work properly and be cheat-proof?
    Im doing a melee combat system for FP, and Im checking on stamina, that does replenish on tick. I don't want to replicate a value that is replanishing on tick, however I wish to check the value on server to see if ability should be triggered.
    Are there any tips and tricks for multiplayer use?
    Can Execute Ability will only be executed on the Server if you're using a networked game. My background is in MMOs (I worked on both Star Wars Galaxies and Star Wars: The Old Republic, not to mention a few other multiplayer titles) so I'm paranoid about that stuff.

    Able will forward all ability requests to the server for validation before replicating things out. At worst case, if you have someone cheating or altering memory values, they would see themselves do an Ability but the server would throw it away and all remote clients wouldn't see it - so, only the cheater is getting a bad experience.

    Leave a comment:


  • replied
    ExtraLifeMatt Hi, I just wanted to tell you that I figured out the bad animation blending for montages. Still got issues working with anim graph node, but it doesn't matter as montages give a lot more flexibility regard looping, reusing same animations etc.
    ABLE is an incredible solution. How you can use it is just to your imagination, as you can implement any mana system, any category triggers. and the new rewritten networking and event execution triggers perfectly.

    I have only one question I cant find answer on the help website: does "can execute ability" is being triggered and checked on authority or whatever trigger Im checking it must be replicated to actually work properly and be cheat-proof?
    Im doing a melee combat system for FP, and Im checking on stamina, that does replenish on tick. I don't want to replicate a value that is replanishing on tick, however I wish to check the value on server to see if ability should be triggered.
    Are there any tips and tricks for multiplayer use?

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    The preview actor is likely not using the correct skeleton as your in-game version. That's likely the discrepancy there. As for the scale with Attach To Socket, I'll look into that (not sure why that would affect it - but you never know).
    Thank you. The preview actor really was the problem, and now it properly shows the particle attached to the socket. However, I still have the scale problem while attached to a socket.

    Leave a comment:


  • replied
    Originally posted by TVwj View Post
    I have a couple problems with particles. When I attach to socket, the preview still shows it appearing at the base of my character. However, in game it works fine. In addition, changing the scale while the particle is attached to a socket does not affect it at all. The particle will still have the default look of a 1.0 scale. These problems only occur when I check the "attach to socket."
    The preview actor is likely not using the correct skeleton as your in-game version. That's likely the discrepancy there. As for the scale with Attach To Socket, I'll look into that (not sure why that would affect it - but you never know).

    Leave a comment:


  • replied
    I have a couple problems with particles. When I attach to socket, the preview still shows it appearing at the base of my character. However, in game it works fine. In addition, changing the scale while the particle is attached to a socket does not affect it at all. The particle will still have the default look of a 1.0 scale. These problems only occur when I check the "attach to socket."

    Leave a comment:


  • replied
    Originally posted by Vaei View Post
    Any plans to add GAS (Gameplay Ability System) integration?
    Not really, given that Able is meant to replace GAS. What specifically would you want with integration? The ability to call GAS abilities?

    Leave a comment:


  • replied
    Any plans to add GAS (Gameplay Ability System) integration?

    Leave a comment:


  • replied
    Originally posted by xermao View Post
    1.How can i play a Particle Effect in random point beside player character.Then make a Capsule Collision Query at this point.
    2.In the CanBranchTo function,the BranchAbility argument,if i call Get Display Name,it always return current ability name not the branch to ability name.Is it a bug?
    3.Is it possible to call a Collision Query Task in blueprint and write result to the target?
    1. You can't. If you're trying to randomly fire off a particle / query, I'd just make an ability that is just those two items and then randomly spawn that Ability at those locations (You can use a hidden actor or something). I do want to look into targeting locations as a Task Target, which would make your scenario easier.

    2. Yup. Good Catch. I'll put in a fix locally for the 3.0 update. If you want to fix it yourself, on Line 46 of ablBranchTask.cpp just make this change:

    Code:
        ScratchPad->BranchAbility = Context->GetAbility(); m_BranchAbility->GetDefaultObject();
    3. You can use the Custom Target type which basically just passes you an array to fill with Targets (it'll call "Find Targets" on the Ability Blueprint), so, yes, you could do it that way.

    Leave a comment:


  • replied
    1.How can i play a Particle Effect in random point beside player character.Then make a Capsule Collision Query at this point.
    2.In the CanBranchTo function,the BranchAbility argument,if i call Get Display Name,it always return current ability name not the branch to ability name.Is it a bug?
    3.Is it possible to call a Collision Query Task in blueprint and write result to the target?

    Leave a comment:


  • replied
    Originally posted by xermao View Post
    How can I stop the Particle Effect when i interrupted the ability?
    And there is a bug in possess task,when i checked UnPossess On End,the controller will not possess original character.
    Particle Effect currently doesn't have that option, but it's an easy add so I'll fix that.

    Unposses is pretty simple, as it just calls "Unposses" on the character controller. If you're doing multiple possessions, then that isn't currently supported. But a single possession should be fine. You can turn on the "Verbose" option for that possession task and it'll tell you exactly which character it's trying to revert the possession on.

    Leave a comment:


  • replied
    How can I stop the Particle Effect when i interrupted the ability?
    And there is a bug in possess task,when i checked UnPossess On End,the controller will not possess original character.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    You could just use the "On Actor Overlap" on the Projectile to apply damage (or even run an ability that plays some effect and applies damage there). Basically just treat it like a normal projectile.



    Custom Task is a pure Blueprint driven task that behaves like it's C++ counter parts.

    You can override / use various BP methods to build the task:

    - OnTaskStart is called when the Task begins. You would want to do any task setup here (You can use GetActorsForTask to get a list of all actors your task should affect according to how the user set it up in the ability editor). If your Task is just a single frame, you'd do the logic here as well.
    - OnTaskTick is called when the Task is running.
    - OnTaskEnd is called when the Task is completed. You would do any clean up logic here, if needed.
    - IsDone is a logic check, that by default, just checks if the task time has been met but you can add special logic.
    - IsSingleFrame let's you return true if you want the task to be a single frame (so OnTaskTick won't be called), or if it's a multi-frame long task.
    - GetTaskRealm let's you modify what realm you want the task to be (Client, Server, or Both).
    - CreateScratchPad let's you return a UAblCustomTaskScratchPad based class that you can use to store any state information (various variables, actors, etc). These scratch pads are allocated per ability execution.
    - GetTaskCategory is what category you want the task to appear under in the Ability editor (you can use '|' to do sub category: MainCategory|SubCategory).
    - GetTaskName is the name of the Task in the Ability Editor.
    - GetDescriptiveTaskName is a more elaborate version of GetTaskName that is built at runtime when the Tasks are placed in the Ability Editor (e.g, "PlayAnimation:<animation name>" is the descriptive name).
    - GetTaskDesciption is just a one or two line summary of what the task does. This appears in the Task selection dialog at the bottom of the window.
    - GetTaskColor is just the default color you want to assign to this Task.




    Able isn't going to do movement / pushing / etc for you. It's more a tool you can use to help tie animations / sounds / particle effects / damage all together into a single discrete asset - which we normally just refer to as "Abilities". While you can certainly do a shooter with Able (I even did a quick tutorial using Shooter Game, you can see the tutorials here ). I will say your goal is rather ambitious, and no one tool is going to help you cobble it together. Instead, you should take things step by step. Follow some YouTube tutorials on building a 3rd party action game, add features (vaulting, climbing, interacting with buttons, etc). Don't try to run before you can walk. Instead, eat the elephant bite by bite.
    Thanks for the info it helps a lot :3

    Leave a comment:

Working...
X