We need a mechanism to gracefully handle cases when an NP-simulated object changes net roles from autonomous to simulated, and vice versa. The most common case happens when a client player possesses a pawn, then unpossesses it and possesses a different pawn.
This should include a process by which the server and client come to agreement about which sim frame the change occurred, and that they transfer responsibility for producing input between themselves at that frame boundary. It is OK if there is a window where both client and server are producing input, as long as the bookkeeping is corrected once the frame is determined.
The easiest way to test this is to play multi-client PIE in the pawn swapping area in one of the Mover
Open any project, such as QAGame, and add the Mover and MoverExample plugins to them.
Open the L_CharacterMovementBasics map
PIE with multiple clients, possibly with a Listen Server if you want to see the server's POV
Go over to the pawn-swapping platforms and experiment with changing pawns, swapping pawns between clients, etc.
Aside from some movement corrections occurring at the time of possession changes, there should be no obvious issues.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-148945 in the post.
|Component||UE - Gameplay - Network Prediction|
|Affects Versions||4.27, 5.0|
|Created||Apr 13, 2022|
|Resolved||Apr 14, 2023|
|Updated||Apr 19, 2023|