Deep dive into how to interact with and extend the Character Movement Component when making new movement mechanics in a networked game.
https://dev.epicgames.com/community/learning/tutorials/ywD1/unreal-engine-best-practices-for-networked-movement-abilities-cmc
The tutorial empty, I don’t see anything.
Hey there, I temporarily made a placeholder page available so people at Unreal Fest could bookmark it. Today I published the full tutorial.
Thank you - do you think a solution to rubber banding during & after a custom movement could be to increase MAXPOSITIONERRORSQUARED while keeping ClientAuthorativePosition=true, and then guard against cheaters by using bMovementTimeDiscrepancyDetection and bMovementTimeDiscrepancyResolution?
I have a few thoughts on this.
First the method of custom tolerance: I wouldn’t modify MAXPOSITIONERRORSQUARED at runtime since that affects all pawns. Rather the pawn class should override ServerExceedsAllowablePositionError to achieve a different tolerance by doing the distance checking yourself.
bMovementTimeDiscrepancyDetection helps against cheaters manipulating the timestamp of moves, but not against them manipulating the outcome location that the server will adopt when bServerAcceptClientAuthoritativePosition is true. If you increase the allowed position error to be 5.0 (non-squared) for example, if I send 3 moves I can teleport a distance of 15.0 even if my usual acceleration and velocity wouldn’t allow that. You’re still exposed to that form of cheating.
Updated the article to include the Unreal Fest presentation!