Fighting Game · Guides & deep dives

Sequencer Networking

threshold, a twelve-frame snap threshold, and a 250 ms client prediction cap.

4sections1 minread

On this page

Task: TODOS.phase-72.72.15.1.15

The sequencer networking layer provides deterministic data contracts that synchronize cinematic playback across multiplayer clients. Authority state owns the session, sequence id, revision, playback status, direction, server frame, server time, playback rate, and loop flag. Each client reports its loaded sequence, local frame, last applied revision, and estimated latency.

Runtime API#

  • Authority state: FV2SequencerNetworkAuthorityState
  • Client state: FV2SequencerNetworkClientState
  • Sync settings: FV2SequencerNetworkSyncSettings
  • Evaluation: FV2SequencerNetworkSyncEvaluation
  • Issue row: FV2SequencerNetworkSyncIssue
  • Actions: EV2SequencerNetworkSyncAction
  • Issues: EV2SequencerNetworkSyncIssueType

BuildDefaultSequencerNetworkSyncSettings uses a three-frame soft drift threshold, a twelve-frame snap threshold, and a 250 ms client prediction cap. EvaluateSequencerNetworkSync predicts the authority frame from server frame plus capped latency whenever the authority is playing. Paused, scrubbing, completed, and stopped states do not advance during prediction.

Client Actions#

Fresh or unloaded clients receive StartSequence and jump to the predicted authority frame. Loaded clients inside the soft drift window keep MaintainPlayback; moderate drift uses BlendToFrame; large drift uses SnapToFrame. Paused authority state maps to PauseSequence, while stopped or completed authority state maps to StopSequence.

The default fixture uses NetSession.CouncilIntro, Seq.DataModel.CouncilIntro, revision 3, server frame 60, and predicts frame 63 for a 50 ms client.

Validation#

The evaluator rejects missing session ids, missing sequence ids, missing client ids, sequence mismatches, invalid revisions, invalid playback rates, negative server/client time, negative latency, invalid settings, and stale authority revisions. This keeps future replicated actors and RPCs from accepting a network packet that would desynchronize playback.

Verification#

  • python3 V2/ue/Tools/check-v2-sequencer-networking.py
  • V2.Cinematics.Sequencer.Networking
  • python3 V2/ue/Tools/check-v2-cinematics-module.py
  • python3 V2/ue/Tools/check-v2-ci-workflow.py