#[Regression] Predicted Ghosts potentially miss server provided ghost data

1 messages · Page 1 of 1 (latest)

orchid sentinel
#

During NetCode 1.4 to 1.11 upgrade there were some changes in GhostUpdateSystem leading to entities not getting new snapshots applied and continueing prediction on their own data.

Requirements:

  • no network and no network emulation
  • client running with MaxSimulationStepsPerFrame == 1
  • client running below SimulationTickRate (editor, debugging ...)

MaxSimulationStepsPerFrame + low fps leads to the client never executing partial tick. Partial ticks prevent this issue.

The Issue:
When running without network and receiving a snapshot without latency continuePrediction should basically be always false as it should apply the snapshot and continue from there.

But there is a line that seems to be incorrect (GhostUpdateSystem.cs:353):
continuePrediction |= predictionStartTick == lastPredictedTick;

This leads to the client always having continuePrediction == true despite having a new snapshot as long as it didn't do a partial tick last time.

The check is done above too to evaluate if a backup restore is required when continueing prediction. I think this line was introduced by mistake while refactoring and it should simply be removed to fix this? But I might not understand NetCode enough and miss something.

twilit stream
#

Open a bug report in the editor for this if you haven't already