Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    [MENTION=172958]ExtraLifeMatt[/MENTION] [MENTION=42414]EniGmaa[/MENTION] I have a possible solution/workaround for rubber banding due to a lack of client-side prediction. Super-easy too.

    It's almost what Matt suggested, except you're only enabling it when the player executes an ability. Haven't tested it. Don't know if this runs on server or client only, assume client only? The server would still correct as far as it knows and just not display on client making it *appear* fine and not show any rubber banding.

    If the displacement portion of the ability lasts .2f seconds for example, then store a timer in your movement component that checks on tick if GetWorld()->GetTimeSeconds >= the end time. If true, then disable bIgnoreClientMovementErrorChecksAndCorrection. That's just one quick possible solution.

    If you have success or issues with it, let me know. I'm interested for future use, however am not currently working on anything that can test/benefit from it.

    Code:
    UCharacterMovementComponent::bIgnoreClientMovementErrorChecksAndCorrection
    Last edited by Vaei; 08-18-2017, 01:29 AM.

    Comment


      [MENTION=2285]Vaei[/MENTION]

      I'd be curious how well that works. The issue I see is that at some point, the server has to correct the player, otherwise the client and server will be out of sync and you'll start getting really nasty errors. If that code really is just "trusting" the client for that small time, broadcasts their movement, and then goes back to correcting it - that's fine. If it just pauses applying correction and instead builds up a queue of movement deltas to apply, then you'd get crazy snapping.

      Interesting find though.
      Able Ability System - A high performance, robust ability system for UE4. Now Available!

      Comment


        Originally posted by ExtraLifeMatt View Post
        [MENTION=2285]Vaei[/MENTION]

        I'd be curious how well that works. The issue I see is that at some point, the server has to correct the player, otherwise the client and server will be out of sync and you'll start getting really nasty errors. If that code really is just "trusting" the client for that small time, broadcasts their movement, and then goes back to correcting it - that's fine. If it just pauses applying correction and instead builds up a queue of movement deltas to apply, then you'd get crazy snapping.

        Interesting find though.
        That's what I thought too, but the tooltip:

        Code:
        	/** 
        	 * True when we should ignore server location difference checks for client error on this movement component 
        	 * This can be useful when character is moving at extreme speeds for a duration and you need it to look
        	 * smooth on clients. Make sure to disable when done, as this would break this character's server-client
        	 * movement correction.
        	 */
        Seems it's designed specifically for this scenario, just wish I could find more information on the specifics. May simply have to test it myself..

        Come to think of it, it might actually be run on the server otherwise I don't see how it would work. If you do two things simultaneously: Execute a displacement ability and disable the correction (passing through an end-time, of course), then technically the correction shouldn't occur? Though I still don't see why there wouldn't be some snapping as it expires. You only really need it disabled in that very moment where the rubber banding occurs, maybe there's some logic voodoo you can do with the latency.

        Really just need to test it, I'll do it as soon as I can which isn't for a while.

        Comment


          Hi there, do you perchance have a tip for me as to how to add recoil and conespread to my Raycasts in my Ability? I've about tried everything within my mental grasp for now, any help is appreciated ^^

          Comment


            Originally posted by TheNoontide View Post
            Hi there, do you perchance have a tip for me as to how to add recoil and conespread to my Raycasts in my Ability? I've about tried everything within my mental grasp for now, any help is appreciated ^^
            Hey TheNoontide,

            The best way to add a cone spread would be to add a new custom Query (e.g. inherit from AblAbilityTask and create the various parameters). The editor and such will automatically find the Task and you'd then be able to add it to your Ability.

            Recoil you could just use the Custom Event Task and pass along the amount of recoil to the player/weapon.
            Able Ability System - A high performance, robust ability system for UE4. Now Available!

            Comment


              Any word on 4.17 update? Surprised Epic take this long to approve

              Can test the prediction solution once it's up since I've updated project for 4.17 at release and continued work on it there.

              Cheers

              Comment


                Hey! Fairly new to able so they're probably easy-to-solve, but I've got three quick questions, would greatly appreciate if anyone could help me with them

                So I'm trying to create a Fireball that needs to be cast (in this example 0.7s) and after that fires it's Projectile (if the cast was not interrupted).
                How I'm doing that currently (any better solutions, especially when I want to modify cast-times in-game later?):

                Have an Ability activate upon Input that starts a 0.7s long Ability. At 0.6999 I spawn an Actor that has a Sphere Collider and the Particle System attached.
                If the Collider touches another Character a second Activity is played for 0.0001s that deals damage and plays a passive "Burn" ability on the target hit.

                Soooo, to my questions:

                1) How could I go about having an Ability that I can activate DURING the Fireballs cast-time but that would NOT cancel it's cast? For example let the player activate an Ability where he teleports a set distance or let him move (quicker) while casting the Spell.

                2) About moving while casting: What would be the best solution to make players move at only lets say 20% of their speed while casting any Ability? Slow them down manually in "On Ability Start" and then speed them up again in "On Ability End"? Or applying a passive ability that lasts until the cast is done? Or maybe use Gameplay Tags in some fashion?

                3) About the "Burn" passive. I would like it to apply a completely separate Burn instead of Stacking and/or refreshing the Duration of the old one. So if the target player has a Burn on him that's still lasting 3 seconds I want that Burn to stay untouched and apply a new, completely independent Burn, even though it comes from the same Fireball Ability.
                I haven't quite figured out a way to do this since the checkboxes under "Passive" only allow for Stacking and Refreshing mechanics (as far as I know?).

                Comment


                  ExtraLifeMatt I briefly tested using the bIgnoreClientMovementErrorChecksAndCorrection however as you suspected it jitters when you re-enable it.

                  Since I only tried it very quickly there may still be a way to use it correctly.

                  I didn't test it with ABLE, I had a wall climbing system with a similar issue. Still yet to really get into ABLE though I'm getting close to that point in my game where I will use it. So I still haven't confirmed that I will have the same problem that the previous user did.

                  Comment


                    Originally posted by Vaei View Post
                    ExtraLifeMatt I briefly tested using the bIgnoreClientMovementErrorChecksAndCorrection however as you suspected it jitters when you re-enable it.

                    Since I only tried it very quickly there may still be a way to use it correctly.

                    I didn't test it with ABLE, I had a wall climbing system with a similar issue. Still yet to really get into ABLE though I'm getting close to that point in my game where I will use it. So I still haven't confirmed that I will have the same problem that the previous user did.
                    Cool, yea, I'll try and read about it today. It "seems" like it should work.
                    Able Ability System - A high performance, robust ability system for UE4. Now Available!

                    Comment


                      @ExtraLifeMatt

                      Is there a support email we can reach you at. You have been working with my lead programmer on a server sided multiplayer issue, that apparently, we are the only ones to notice multiplayer functionality doesnt work lol ... anyways ... is there a support email I can reach you at to discuss?
                      Founder and CEO of Angry Penguin Studio, LLC
                      Dallas, TX USA
                      https://www.facebook.com/AngryPenguinStudios

                      Comment


                        Originally posted by ExtraLifeMatt View Post

                        Cool, yea, I'll try and read about it today. It "seems" like it should work.
                        I'll be interested to know what you find

                        Comment


                          Originally posted by AP_Studios View Post
                          @ExtraLifeMatt

                          Is there a support email we can reach you at. You have been working with my lead programmer on a server sided multiplayer issue, that apparently, we are the only ones to notice multiplayer functionality doesnt work lol ... anyways ... is there a support email I can reach you at to discuss?
                          Yup. I responded to your PM. I assume you guys are the ones having issue with dedicated server not replicating an Ability after the first one? I'm still investigating that. I'm tempted to put together a test case for dedicated server that people can run and make sure it's not some other system causing issues(or help show what I may be missing in my repro). These things have been a pain to try and repro as dedicated server works fine in my local testing. Also I've just been slammed so I haven't had as much time to offer support as I would like.

                          If if you can respond to my PM or give me a project that shows the issue you are having - that would help immensely.
                          Able Ability System - A high performance, robust ability system for UE4. Now Available!

                          Comment


                            Originally posted by ExtraLifeMatt View Post

                            Yup. I responded to your PM. I assume you guys are the ones having issue with dedicated server not replicating an Ability after the first one? I'm still investigating that. I'm tempted to put together a test case for dedicated server that people can run and make sure it's not some other system causing issues(or help show what I may be missing in my repro). These things have been a pain to try and repro as dedicated server works fine in my local testing. Also I've just been slammed so I haven't had as much time to offer support as I would like.

                            If if you can respond to my PM or give me a project that shows the issue you are having - that would help immensely.
                            exactly - emailed ya
                            Founder and CEO of Angry Penguin Studio, LLC
                            Dallas, TX USA
                            https://www.facebook.com/AngryPenguinStudios

                            Comment


                              Originally posted by AP_Studios View Post

                              exactly - emailed ya
                              Cool, I can't get to that email til later tonight, but I'll check it out as soon as I can. Again, if you can provide a small project that shows the behavior - it helps me diagnose the issue much faster.
                              Able Ability System - A high performance, robust ability system for UE4. Now Available!

                              Comment


                                Able v1.75 has been submitted to Epic, this fixes an issue where Abilities would not replicate past the first execution when using dedicated server (may fix some other replication weirdness in general as well). There was a bit of optimized code that was being a bit *too* optimal (as in culling everything) - so it's been removed.

                                I've also created a small project that I've been using to test Dedicated Servers. This project consists of two players, a simple blueprint to auto-posses the players, and a simple Ability that fires off an animation + particle effect. You can use it to verify/check your own project's setup, or use it to repro any bugs you've come across and then send it back to me and I'll check things out.

                                You can grab it from the Tutorials wiki.
                                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                                Comment

                                Working...
                                X