Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

03 — Network Architecture

Keywords: netcode, relay lockstep, NetworkModel, sub-tick timestamps, reconnection, desync debugging, replay determinism, compatibility bridge, ranked authority, relay server

Iron Curtain ships one default gameplay netcode: relay-assisted deterministic lockstep with sub-tick order fairness. The NetworkModel trait enables clean single-player, replay, and future architecture modes. Key influences: Counter-Strike 2 (sub-tick timestamps), C&C Generals/Zero Hour (adaptive run-ahead), Valve GNS (message lanes), OpenTTD (desync debugging).


Section Index

SectionDescriptionFile
Protocol & OverviewNetcode philosophy, ic-protocol crate types (PlayerOrder, TimestampedOrder, TickOrders)protocol
Relay ArchitectureRelay with time authority, RelayCore library (dedicated/listen server), connection lifecycle type staterelay-architecture
Sub-Tick Timing & FairnessCS2-inspired sub-tick ordering, adaptive run-ahead (Generals), anti-lag-switch, order rate controlsub-tick-timing
Wire Format & Message LanesFrame data resilience, delta-compressed TLV wire format (Generals), priority message lanes (Valve GNS)wire-format
Desync Detection & RecoveryDual-mode state hashing, desync diagnosis tools, disconnect handling, reconnection, visual predictiondesync-recovery
Why It Feels FasterLatency comparison vs OpenRA — sub-tick, adaptive run-ahead, visual predictionwhy-faster
NetworkModel TraitTrait definition, implementations (relay/local/replay/fog-auth), deferred architectures, OrderCodecnetwork-model-trait
Development ToolsLatencySimulator, DesyncInjector, PacketRecorder for testingdev-tools
Connection EstablishmentHandshake flow, relay signaling, NAT traversal, WebSocket/WebRTC for browserconnection-establishment
Tracking Servers & BackendGame browser, server discovery (HTTPS seed + mDNS), backend infrastructure (tracking + relay)tracking-backend
Match LifecycleLobby → loading → tick processing → pause → disconnect → desync → replay → post-gamematch-lifecycle
Multi-Player ScalingBeyond 2 players: team games, FFA, observers, co-op, asymmetric player countsmultiplayer-scaling
System WiringIntegration proof: how GameLoop, NetworkModel, sim, and render connect in Bevysystem-wiring