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 EniGmaa View Post
    How would able cope with a dash kind of ability in a multiplayer setting specifically the replicating and rubber banding problem . From what I have experienced unfortunately when you do a dash kind of ability unreals replication system tries to correct the movement and you end up with rubber banding or teleportation so the character dashes then moves back to another location . Seems like the only proper way to combat this is to override the character movement component. So just curious wether able has anything built in to tackle this kind of problem with abilities that move a player another example could be a sword attack animation where a player lunges forward etc and also how does the system perform over the network when users experience higher pings , packet loss etc

    From what I have seen the videos you have made is only the system tested in the editor I would be curious how it actually performs in a real multiplayer setting as in package the game and server and play it over the Internet from two different computers

    Thanks looks really impressive system though
    Character displacement is something you do with client-side prediction, not regular replication. I think you'd have to build that part yourself. I'd like to hear from [MENTION=172958]ExtraLifeMatt[/MENTION] if they have a solution as well.

    Leave a comment:


  • replied
    How would able cope with a dash kind of ability in a multiplayer setting specifically the replicating and rubber banding problem . From what I have experienced unfortunately when you do a dash kind of ability unreals replication system tries to correct the movement and you end up with rubber banding or teleportation so the character dashes then moves back to another location . Seems like the only proper way to combat this is to override the character movement component. So just curious wether able has anything built in to tackle this kind of problem with abilities that move a player another example could be a sword attack animation where a player lunges forward etc and also how does the system perform over the network when users experience higher pings , packet loss etc

    From what I have seen the videos you have made is only the system tested in the editor I would be curious how it actually performs in a real multiplayer setting as in package the game and server and play it over the Internet from two different computers

    Thanks looks really impressive system though

    Leave a comment:


  • replied
    Hey All,

    4.17 support for Able has been submitted to Epic and should be available soon™

    Enjoy!

    Leave a comment:


  • replied
    Originally posted by order66 View Post
    Is the source included?
    Yes. All C++ Plugins on the marketplace must include source (and I didn't want to hide things behind libraries anyway, its better everything be out in the open for people to modify/read/learn).

    Leave a comment:


  • replied
    Is the source included?

    Leave a comment:


  • replied
    [MENTION=172958]ExtraLifeMatt[/MENTION]

    This looks like it's going to be a really clean release! Thank you for investigating.
    And also thank you [MENTION=741122]RodentGames[/MENTION] for digging deep into what you found as well.

    I can hardly wait for release

    Leave a comment:


  • replied
    Alright, finished up Able v1.7, all packaged up and ready for Epic on Monday

    Notes:
    - Fixed an issue where Actorless tasks (Custom Event being the big offender) would execute regardless of the Realm (Client/Server/Both) specified. (h/t [MENTION=741122]RodentGames[/MENTION])
    - Fixed an issue where Abilities with no Cooldown could get added to the cooldown list (causing issues due to network latency). (h/t [MENTION=741122]RodentGames[/MENTION])
    - Fixed an issue that could cause Log spam due to RPCs being invoked on Simulated Proxies. (h/t [MENTION=741122]RodentGames[/MENTION])
    - Cleaned up Ability Animation Node code after verifying various execution details. In some cases it was failing to move to the next queued animation (particularly if you branched to an Ability with an Animation), branches should feel more responsive now.
    - Ability Animation Node no longer errors if you attempt to queue more than 2 animations. Instead, the oldest animation is removed to prevent throwing away more recent animation requests.
    - Rewrote "Has Ability Animation" logic to no longer use a reference counter, but instead directly query the Animation Node itself. This fixes calls to CancelAbility appearing to always interrupt the animation (rather than only when the Ability result is marked as an Interrupt and the PlayAnimationTask requests that the animation be interrupted). (h/t [MENTION=33476]Aumaan Anubis[/MENTION] )
    - Fixed a small tooltip issue with the Task result choices when choosing from the dropdown in Blueprints (UHT doesn't like same line comments). (h/t [MENTION=33476]Aumaan Anubis[/MENTION])
    - Removed an extraneous RPC call when cancelling the Active Ability.
    - Couple of non-unity build fixes.

    Leave a comment:


  • replied
    No problem! Thanks for the correct way to fix AddCooldownForAbility =)

    Leave a comment:


  • replied
    [MENTION=741122]RodentGames[/MENTION]

    Hmm, I think not adding the cooldown if it has no cooldown is probably the right approach, so I'll add that in. Interesting that UE doesn't just skip calls if its a Simulated Proxy. I'll add in the GetNetConnection check before calling RPCs and help clear up that spam. Thanks for the reports and diving into that.

    Slight tweak to the AddCooldown method (avoids having to modify the IsComplete call):

    Code:
    void UAblAbilityComponent::AddCooldownForAbility(const UAblAbility& Ability, const UAblAbilityContext& Context)
    {
    	if (Ability.GetCooldown() > 0.0f)
    	{
    		m_ActiveCooldowns.Add(Ability.GetAbilityNameHash(), FAblAbilityCooldown(Ability, Context));
    	}
    }
    Last edited by ExtraLifeMatt; 07-08-2017, 04:43 PM.

    Leave a comment:


  • replied
    I'm curious as to this message I'm seeing cropping up at the end of abilities:

    LogNet:Warning: UIpNetDriver::ProcesRemoteFunction: No owning connection for actor BattleArenaCharacterBP_C_1. Function ServerCancelAbility will not be processed.

    I dove in and found out that what is happening is ServerCancelAbility is getting called for a ROLE_SimulatedProxy which as far as I understand from the docs is not allowed. I'm still learning the structure to Unreal but it seems that the cancel ability call is coming from the simulated proxy on one of the other clients. One way to expand the check is to either watch for SimulatedProxy or follow IpNetDriver's approach and us GetNetConnection() on the owning Actor to find out if there is a valid connection to make the call.

    To quiet the warnings I'm going to use the GetNetConnection() approach for now but I'm curious as to which would be the correct approach for this case?
    Last edited by RodentGames; 07-08-2017, 04:25 PM.

    Leave a comment:

Working...
X