pub struct SpectatorConfig {
pub buffer_size: usize,
pub catchup_speed: usize,
pub max_frames_behind: usize,
}Expand description
Configuration for spectator sessions.
These settings control spectator behavior including buffer sizes, catch-up speed, and frame lag tolerance.
§Example
use fortress_rollback::SpectatorConfig;
// For watching a fast-paced game, use larger buffer and faster catchup
let fast_game_config = SpectatorConfig {
buffer_size: 90,
catchup_speed: 2,
max_frames_behind: 15,
..SpectatorConfig::default()
};
// For spectators on slower connections
let slow_connection_config = SpectatorConfig {
buffer_size: 120,
max_frames_behind: 20,
..SpectatorConfig::default()
};Fields§
§buffer_size: usizeThe number of frames of input that the spectator can buffer. This defines how many frames of inputs from the host the spectator can store before older inputs are overwritten.
A larger buffer allows the spectator to tolerate more latency or jitter, but uses more memory.
Default: 60 (1 second at 60 FPS)
catchup_speed: usizeHow many frames to advance per step when the spectator is behind.
When the spectator falls more than max_frames_behind frames behind
the host, it will advance this many frames per step to catch up.
Higher values catch up faster but may cause visual stuttering.
Default: 1
max_frames_behind: usizeThe maximum number of frames the spectator can fall behind before
triggering catch-up mode. When the spectator is more than this many
frames behind the host’s current frame, it will use catchup_speed
to advance faster.
Default: 10
Implementations§
Source§impl SpectatorConfig
impl SpectatorConfig
Sourcepub fn fast_paced() -> Self
pub fn fast_paced() -> Self
Configuration preset for fast-paced games.
Uses a larger buffer and faster catch-up for games where falling behind is more noticeable.
Sourcepub fn slow_connection() -> Self
pub fn slow_connection() -> Self
Configuration preset for spectators on slower connections.
Uses a larger buffer and more tolerance for falling behind.
Sourcepub fn local() -> Self
pub fn local() -> Self
Configuration preset for local viewing with minimal latency.
Uses smaller buffer and stricter catch-up for responsive viewing.
Sourcepub fn broadcast() -> Self
pub fn broadcast() -> Self
Configuration preset for streaming/broadcast scenarios.
Optimized for live event streaming, tournament broadcasts, and replay viewers. Uses a very large buffer and conservative catch-up to avoid visual stuttering on stream.
Characteristics:
- Large buffer (3 seconds at 60 FPS)
- Slow, smooth catch-up to avoid jarring speed changes
- High tolerance for falling behind
Trait Implementations§
Source§impl Clone for SpectatorConfig
impl Clone for SpectatorConfig
Source§fn clone(&self) -> SpectatorConfig
fn clone(&self) -> SpectatorConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more