[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.
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

Comment