Interface IInputBuffer
public interface IInputBuffer
Properties
Delay
Delay applied to the stored inputs.
int Delay { get; set; }
Property Value
LastAcknowledgedFrame
Last frame received that didn't trigger a misprediction, or -1 if nothing was acknowledged yet. Might be greater than LastConsumedFrame.
long LastAcknowledgedFrame { get; }
Property Value
LastConsumedFrame
Last frame that was fetched from the buffer and was not predicted.
long LastConsumedFrame { get; }
Property Value
LastFrame
Last (latest) frame number for which an input was stored, received or predicted. -1 if nothing was added to the buffer yet.
long LastFrame { get; }
Property Value
LastReceivedFrame
Last frame number that was received from the remote input producer, or -1 if nothing was received yet.
long LastReceivedFrame { get; }
Property Value
LastSentFrame
Last frame number that was dequeued for sending, or -1 if nothing was sent yet.
long LastSentFrame { get; }
Property Value
MispredictionFrame
Frame at which last prediction failure has been detected.
long? MispredictionFrame { get; }
Property Value
- long?
Remarks
Value is nulled-out as soon as the input is retrieved for that or subsequent frames. For this reason this property should be inspected before any input retrieving method in a given frame in order to check whether the simulation correction is required.
Size
Size of the buffer. Dictates how many frames worth of inputs can be stored. When buffer reaches its capacity a pause is requested through the ShouldPause(long, long).
int Size { get; }
Property Value
Methods
Reset()
Clears the input buffer and resets its state.
void Reset()
ShouldPause(long, long)
If true, the buffer cannot do any more predictions. Client should pause the game and stop polling inputs to not lose any data required for a rollback.
bool ShouldPause(long currentFrame, long commonReceivedFrame)
Parameters
currentFrame
longCurrent simulation frame.
commonReceivedFrame
longCommon (lowest) received frame for all inputs in the simulation.
Returns
Events
OnStaleInput
Called when an input is received that is older than the oldest input in the buffer.
event StaleInputHandler OnStaleInput