
The server may respond with an accept/reject for the prediction key, and will also associate the server-side created side effects with this prediction key. The client will send his prediction key to the server, and associate predictive actions and side effects with this key. A prediction key on its own is simply a unique ID that is generated in a central place on the client.
VIRTUAL ENGINE ROOM 4.8 KEYGEN HOW TO
"Override" How to override state predictively that is otherwise replicated/owned by the server.Ī fundamental concept in this system is the Prediction Key ( FPredictionKey).

"Dependencies" How to manage dependent prediction and chains of predicted events. "Completeness" How to be sure we /really/ predicted all side effects. "Redo" How to avoid replaying side effects that we predicted locally but that also get replicated from the server.

"Undo" How to undo side effects when a prediction fails. "Can I do this?" Basic protocol for prediction. Some things we don't predict (most of these we potentially could, but currently dont): -GameplayEffect removal -GameplayEffect periodic effects (dots ticking) Montages -Movement (built into UE4 UCharacterMovement) What do we currently predict? -Ability activation -Triggered Events -GameplayEffect application: -Attribute modification (EXCEPTIONS: Executions do not currently predict, only attribute modifiers) -GameplayTag modification -Gameplay Cue events (both from within predictive gameplay effect and on their own) But clients predicting their mana going from 100 to 90 when they cast a spell is 'client side prediction'. For example, footsteps are completely client side and never interact with this system.

Things can still be 'completely client side' without having to work within a prediction system. When we say "client side prediction" we really mean client predicting game simulation state. Else: Do predictive version of X" in the ability itself.Īt this point, not all cases are solved, but we have a very solid framework for working with client side prediction. We wish to avoid having logic such as "If Authority: Do X. An ability says "Do X->Y->Z", and we will automatically predict the parts of that that we can. High Level Goals: At the GameplayAbility level (implementing an ability) prediction is transparent.
