IMT3603 · M06 Multiplayer
Prediction: act now, ask later
func _physics_process(delta: float) -> void:
var input := _sample_input()
_apply(input, delta) # move immediately, do not wait
pending.append({"tick": _tick, "input": input})
_send_input.rpc_id(1, _tick, input) # the authority will confirm later
_tick += 1
Your own character responds in zero milliseconds. Everyone else's does not.
A sketch, not repo code: the companion project stops one rung below this, deliberately.