Behind the Forge: Dedicated-Server Netcode in Iron Cohort 22
By Raven Iron Games
Beyond our Valheim tooling ecosystem, the Raven Iron forge has been engineering an experimental massive-warfare multiplayer title: Iron Cohort 22, built natively in Godot and C#.
The goal: simulate massive medieval warfare battles with hundreds of flocking grunts, lieutenants, and player commanders on a single server instance.
1. Batched Snapshots Over Individual Sync Nodes
Standard multiplayer engines offer individual object synchronizers (MultiplayerSynchronizer in Godot, NetworkTransform in Unity). When scaling to 500+ entities per battlefield, syncing individual node transforms produces excessive packet overhead.
In Iron Cohort 22, we engineered CohortSnapshotCodec.cs:
- Encodes an entire cohort (1 Commander, 2 Lieutenants, all active formation grunts) into flat
float[]andbyte[]arrays. - Broadcasts a single batched unreliable UDP packet per cohort per physics tick.
- Reduces network overhead by over 70% compared to per-node replication.
2. Shared Gameplay Math, Gated by Authority
To avoid duplicate codebases between client and server, all actors (CommanderController, LieutenantController, FlockingGrunt) implement the INetworkedActor interface:
ServerPhysicsProcess: Executes full boid formation steering, obstacle avoidance, and pathfinding math from player input.ClientPhysicsProcess: Performs pure client-side visual interpolation (lerping) towards the latest verified snapshot.
This allowed us to reuse 100% of our complex squad formation algorithms without divergent simulation bugs.
3. The Collision vs. Cosmetic Decoration Split
In procedural castle environments, running cosmetic foliage, dynamic lighting, and minimap scattering on headless servers wastes CPU cycles.
ProceduralEnvironment.cs cleanly separates:
BuildCollisionGeometry(): Deterministic ground meshes and CSG castle wall colliders (executed synchronously on both server and client).BuildVisualDecoration(): Skybox, volumetric fog, grass scatter, and ambient audio (executed strictly client-side).
Stay tuned for more updates from the Raven Iron development labs.