Co-op Architecture & Project Roadmap
Co-op Engineering and Project Roadmap
Classic late-90s and early-2000s strategy and RPG titles either shipped with fragile IPX/DirectPlay networking or cut multiplayer right before launch. Good Old Games Dev replaces legacy networking with a unified, deterministic co-op transport across all four ports.
Co-op Mode Comparison Across All 4 Ports
| Game Port | Players | Co-op Architecture | Campaign & Save Support | Buy Original Game |
|---|---|---|---|---|
| Jagged Alliance 2 | 1–6 Players | Shared Arulco campaign, shared finances, squad assignment & lockstep tactical turns | Full Arulco Revisited 1.4 campaign + .cocometa save recovery | GOG.com |
| Warlords III: Darklords Rising | 1–8 Players | Couch hotseat & allied co-op (SetupScr.pcx seat manager, controller GUID hotplug & deterministic combat) | Complete (v1.0.0) — Full campaigns, 43+ scenarios, Random Maps & portable saves | GOG.com |
| Anno 1503 A.D. — Royal Edition | 1–4 Players | Restored multi-island multiplayer + Shared Empire Co-op on a 20 Hz lockstep tick | Continuous play & scenarios (in progress) | GOG.com |
| Arcanum | 1–4 Players | Full story campaign party co-op, shared world-map travel & synchronized turn-based combat | Main Arcanum story module + Vormantown (in progress) | GOG.com |
Cross-Platform Determinism Rules
Because a single co-op session can mix macOS ARM64, Linux x86_64 (MSI Claw / Steam Deck), and Linux ARM64 (Khadas VIM1S), all simulation code adheres to strict cross-architecture determinism:
- No Unseeded
rand()or Floating-Point Drift: All hit rolls, AI pathfinding tie-breakers, and economy ticks use explicit fixed-point integer math and synchronized PRNG streams. - Command-Stream Lockstep + Turn Snapshots: Only player orders (move, fire, build, dialogue choice) travel over the wire, accompanied by per-tick CRC32 state hashes to detect any divergence immediately.
- Automatic Reconnect & Save Resync: Every turn boundary writes a paired
.sav+.cocometacheckpoint so a dropped handheld or TV console can rejoin in seconds.

