Open TheYellowArchitect opened 1 week ago
This can't ever happen as the _submit_input rpcs will only ever backfill a tick if it has no data for.
So either this runs because there is new information from the past that has just come in or It's already been run and it wouldn't be in range defined in _resim_from in the first place
In
RollbackSynchronizer
:The above is invoked at the start of each rollback loop. But if a node cannot be simulated for that tick (e.g.
NetworkTime.tick
is 101 but the latest tick is 98) it still runsPropertySnapshot.apply()
, despite already having the latest value. So the application will result in the same/existing result. For example, we are atNetworkTime.tick
101 and not the input authority. The input is 0,1 at tick 98 (latest_input
) The ticks 99, 100 and 101 are needless, the input is already 0,1, no need to re-apply them.An example check
(btw the above
latest_state
variable is yet another reason for renaming which is rejected, should belatest_state_tick
)Is there a scenario where a check using the
_can_simulate
check earlier, causes bugs? I think so, but I cannot think of one right now. If so, this would clear user confusion (see #280), whereby it makes it clear input prediction does not happen, and also boosts performance.