Dealing with client prediction?

Even though it says that UE4 comes with lag compensation, client prediction, server correction etc., that only seems to be the case for character-pawns, which is kind of a let-down :frowning:

I want to use

  • vehicles that are physics-simulated and non-wheeled
  • kinematically moving non-character pawns

My question is: what is the ideal way/place to deal with client prediction and smooth correction for their movement? Should I implement the “Prediction-Interface”? What else do I need?..

And then I’d like to know what other parts of a game typically need client prediction. I mean, every client action - like firing a rocket - suffers from input-lag, if I bind it to a server-function call. And I have absolutely no idea how I could make a client do a prediction here. I would have to spawn the rocket on the client immediately, then wait for the server to spawn it as well, and then somehow redirect the replicated movement to the client’s rocket, and also prevent the rocket from being spawned/replicated again on this particular client. At least I don’t see what else can be done here :confused:

Can someone tell me if the INetworkPredictionInterface is even functional? Because it seems that everything related to prediction and correction for characters is called from CharacterMovementComponent::TickComponent. It also says so in the commentary in the header-file. And I have seen very few references to the interface’s member functions (in actor, pawn and PlayerController, I believe).

And what I also would like to know is how clients deal with characters that are owned by other clients. Are they doing prediction and correction for those as well (because theoretically they have to guess a little bit ahead, right???) ?