v1.6.0
General
- Added support for 5.1. Version 4.26 will not be updated anymore on Epic's side (they only build for the latest 3 engine versions) but it can still be compiled from the 4.27 source.
UGenMovementReplicationComponent
- Added server-authoritative physics replication. This can be activated by using the functions Server_EnableServerAuthPhysicsSimulation and EnableServerAuthPhysicsSimulationLocal. See the function descriptions for more details. The physics are calculated only on the server in this case and are not predicted on the client-side, so it is recommended to only use this for server-controlled pawns.
- Added client-authoritative physics replication. This can be activated by using the functions Server_EnableClientAuthPhysicsSimulation and EnableClientAuthPhysicsSimulationLocal. See the function descriptions for more details. The physics are calculated only on the client in this case. Replicating physics like this often requires separate logic for client and server, and it is very easy to cheat for clients using this approach so use with caution. Also, there is no physics interaction of the pawn with other objects when using client-authoritative physics.
- I have changed the way client moves are processed on the server. The new way handles packet loss better and also allows you to trade performance for latency in some cases. The behaviour can be controlled through the parameters RemoteMoveProcessingChunkSize and MaxNumBufferedRemoteMovePackets (category Networking|Advanced). You usually don't have to touch this, the preset values should be good for most use cases.
- The names of the Blueprint parameters for binding functions have changed to indicate more clearly what they do: Replay is now called Replicate AP / Replay (AP = Autonomous Proxy), Replicate is now called Replicate SP (SP = Simulated Proxy). There is no change in functionality.
- Prediction can now be enabled/disabled in the networking settings (bUseClientPrediction).
- Collision location and rotation interpolation is now used by default for simulated pawns.
- Added new extrapolation modes: SemiSimulated and FullSimulated. See the enum descriptions for more details. The implementations for these are preliminary and will be expanded upon in a future update (simulated interpolation is not available yet). For now the default extrapolation mode Simple is still recommended.
- In connection with the new extrapolation modes there are now also separate sub-stepping parameters for simulated pawns in the Networking|Advanced category.
- Added a safeguard that prevents reliable buffer overflows for RPCs.
- Added support for interpolated input-preserving client corrections (bUseSmoothCorrections). The time over which to interpolate to the corrected position can be adjusted with the SmoothCorrectionTime parameter.
- Added option bAssumeClientState.
- Added function HasCurrentInterpolationData.
- Added log messages for failed rewinds.
UGenMovementComponent
- Added new utility functions SetRootCollisionLocation, GetRootCollisionLocation and SetRootCollisionLocationSafe.
- Added functions PausePathFollowing, ResumePathFollowing and GetCurrentPathFollowingRequest.
- Added function GetCurrentInterpolationTime.
UGenGoldSrcMovementComponent
- Fixed a bug where the input vector was not transformed correctly for AI when acceleration-based path following was used.
- The default jump mode is now SemiAuto.
UGenOrganicMovementComponent
- Added option bInterpolateCollisionExtent.
- Added an overridable event to allow custom logic for direct AI movement (BotDirectMove).
- Moved the function Client_DoNotCombineNextMove to UGenMovementComponent. It has also been renamed to just DoNotCombineNextMove since it already ensures internally to only run on autonomous proxies.
- Added option to skip resolving external penetrations which can be expensive (bResolveExternalPenetrations) .