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

Iron Curtain — Platform Capabilities

Everything you get when you choose Iron Curtain as your RTS platform — whether you’re a player, a modder, a map maker, or building a total conversion.

For Players

Gameplay Modes

ModeWhat You Get
Campaign (Allied + Soviet)All original Red Alert missions fully playable in classic and Enhanced modes: branching outcomes, unit roster persistence, veterancy carry-over, optional hero progression, and an optional War Table with operations, enemy initiatives, expiring opportunities, and a dynamic arms race (D021)
Skirmish vs AIUp to 8 players/AI on any map; named AI Commanders with portraits, agendas, and taunts (D043); AI difficulty (Easy–Brutal); mix different commander personalities in the same match
Ranked MultiplayerGlicko-2 rating with seasonal tiers (Conscript → Supreme Commander), per-queue ratings (1v1, 2v2, FFA), map veto system, placement matches, escalating cooldowns (D055)
Casual MultiplayerGame browser, Among Us-style room codes (IRON-XXXX), QR join for LAN/streaming, Discord/Steam deep links, auto-download missing mods on join (D030)
Asymmetric Co-opCommander + Field Ops roles with separate HUDs, support request system (CAS, Recon, Reinforcements, Extraction), and War-Effort Board pacing (D070)
Generative CampaignsDescribe a campaign in plain text → LLM generates branching missions, briefings, AI behavior, and narrative that adapts to your play; built-in CPU models run locally after a one-time download, external LLM providers (BYOLLM) unlock higher quality (D016)
LLM ExhibitionBYO-LLM Fight Night (AI vs AI), Prompt Duel (guide AI with strategy prompts), Director Showmatch (audience-driven spectacle) (D073)
SpectatingMid-game join, configurable broadcast delay, observer panels (Army/Production/Economy/Score/APM), directed camera AI, community observer UI layouts via Workshop

The Red Alert Experience — Faithful and Enhanced

IC recreates the Red Alert feel using values verified against EA source code, then adds quality-of-life features that don’t break the classic identity:

Faithfully Recreated:

  • Palette-indexed sprite rendering with all original SHP draw modes (shadow, ghost, predator)
  • Isometric 14-layer Z-order (terrain → shadows → buildings → units → aircraft → projectiles → effects → UI)
  • Credit counter with ticking animation, power bar with green/yellow/red states
  • EVA voice system with priority queuing (rare notifications don’t get lost)
  • Unit voice pools with no-immediate-repeat selection
  • Dynamic music (combat/build/victory transitions honoring Frank Klepacki’s intent)

IC Enhancements (New Features With No Classic RA Equivalent):

  • Attack-move (default on), rally points, parallel factories, unit stances (Aggressive/Defensive/Hold/Return Fire)
  • Smart box-select (harvesters deprioritized), camera bookmarks (F5-F8)
  • Dynamic weather system affecting movement and terrain passability (D022)
  • Veterancy promotions with visible rank indicators and stat bonuses
  • Render mode toggle (F1): Classic / HD / 3D — switchable mid-game (D048)

Customization — Play Your Way

IC doesn’t force one way to play. Every axis is independently composable:

Balance Presets (D019):

  • Classic (original EA values — frozen, never changes)
  • OpenRA (tracks upstream OpenRA balance patches)
  • Remastered Collection
  • IC Default (patched once per ranked season based on telemetry)
  • Custom (player-editable YAML)

Subfaction Selection (proposed — under research):

  • Allies pick a nation — England, France, Germany, Greece — each with a thematic passive and one tech tree modification reflecting their alternate-timeline military tradition
  • Soviets pick an institution — Red Army, NKVD, GRU, Soviet Science Bureau — competing power structures within the totalitarian state, each with a distinct playstyle identity
  • Narrative asymmetry (countries vs. institutions) with mechanical symmetry (both sides get 1 passive + 1 tech tree mod) — reasonable balance overhead
  • Classic preset uses original RA1 country bonuses (5 countries, 10% passives); IC Default uses the expanded 4×4 system; Custom/modded subfactions via YAML inheritance
  • Community can add new countries or institutions via Tier 1 YAML modding (no code required)
  • See research/subfaction-country-system-study.md for full design rationale and industry research. Requires D019 integration and community feedback before formal adoption

Experience Profiles (D033):

  • Vanilla RA, OpenRA, Remastered, or Iron Curtain — each bundles balance + theme + QoL + AI + pathfinding + render mode
  • Override any individual axis in the lobby
  • Create and share custom profiles via Workshop

Quality of Life Toggles (D033):

  • Production: attack-move, waypoint queue, multi-queue, rally points, parallel factories
  • Commands: force-fire, force-move, guard, scatter, unit stances
  • UI: health bars, range circles, build radius, target lines, selection outline
  • Selection: box shape (diamond/rectangle), smart type cycling
  • All individually toggleable, not locked to presets

Pathfinding Variants (D045):

  • Remastered (original feel), OpenRA (improved A*), IC Default (flowfield + ORCA-lite hybrid)
  • Per-lobby selection, mod-extensible via WASM

AI Personality & Difficulty (D043):

  • Named AI Commanders with portraits, specializations, visible agendas, and contextual taunts (Generals ZH / Civ 5 pattern)
  • 6 built-in RA1 commanders (Col. Volkov — Armor, Cmdr. Nadia — Intel, Gen. Kukov — Brute Force, Cdr. Stavros — Air, Col. von Esling — Defense, Lt. Tanya — Spec Ops)
  • Two-axis tuning: commander persona (aggression, expansion, tech preference) × engine difficulty scaling (resource bonuses)
  • Mix different commanders in the same match — each AI slot picks independently
  • Puppet Master strategic guidance: optional external advisor (LLM, human coach, or future types) that directs AI objectives without replacing tick-level control; Masterless by default
  • Community commanders via Workshop (YAML — no code required); LLM-generated commanders (Phase 7)
  • Replay-based behavioral mimicry: AI learns from your replays (D042)

Multiplayer Infrastructure

  • Relay servers eliminate lag-switching and host advantage — relay owns the clock (D007)
  • Sub-tick fairness — orders from faster and slower players processed fairly (D008)
  • Adaptive run-ahead — client predicts during lag, corrects without rubber-banding
  • Encrypted transport — X25519 key exchange, AES-256-GCM authenticated encryption, Ed25519 identity binding (TransportCrypto)
  • Community servers — single ic-server binary with toggleable capability flags (relay, matchmaking, ranking, Workshop P2P seeding, moderation) and federated trust (D074)
  • Cross-engine browser — see OpenRA and CnCNet games from the IC client (D011)
  • Portable identity — 24-word recovery phrase; restore on any machine (D061)

Replays & Analysis

  • Auto-recording of all matches with Match ID system
  • Arbitrary seeking (forward and backward) via keyframe re-simulation
  • 5 camera modes: free, player perspective, follow unit, directed (AI auto-follows action), drone cinematic
  • Observer overlays: army composition, production queues, economy, powers, score, APM
  • Heatmaps: unit death, combat, camera attention, economy
  • Graphs: army value, income, unspent resources, APM — all clickable (jump to that moment)
  • Video export (WebM) with cinematic camera path editor, lens controls, letterbox
  • Foreign replay import — play OpenRA .orarep and Remastered replays with divergence tracking (D056)
  • Anonymization for sharing (strip names, voice, chat)

Workshop & Content

  • Browse and install maps, mods, campaigns, themes, AI presets, music, sprites, voice packs, and more
  • One-click mod profiles — save different mod combinations, switch instantly
  • Auto-download on lobby join — missing content installs automatically (P2P preferred, HTTP fallback)
  • Mod fingerprint — SHA-256 hash ensures all players have identical rules
  • Federated mirrors — official server, community mirrors, local directories; works offline with bundles

Tutorial & Onboarding (D065)

  • Commander School — 6-mission dopamine-first tutorial campaign (blow things up first, learn economy later)
  • IC-aware hints — veterans see “IC adds rally points,” newcomers see “Right-click to set a rally point”
  • Feature Smart Tips — non-intrusive contextual tips on Workshop, Settings, Profile, and Main Menu screens
  • Adaptive pacing — hint frequency scales with demonstrated skill
  • Post-game learning — “You had 15 idle harvester seconds” with replay moment links

Platform Support

PlatformStatus
Windows, macOS, LinuxFull desktop support
Steam DeckGamepad controls, touchpad, gyro, shoulder-button PTT
Browser (WASM)Full game playable in browser with WebRTC VoIP
TabletTouch-optimized sidebar, command rail, camera bookmark dock
PhoneBottom-bar layout, build drawer, compact minimap, tempo advisory
Portable modeUSB-stick deployment, no installation required

For Modders & Content Creators

Three-Tier Modding System

TierToolWhat You Can DoSkill Required
Tier 1: YAMLText editorUnit stats, weapons, buildings, factions, balance presets, UI themes, terrain, achievementsNone — edit values in plain text
Tier 2: LuaText editor + SDKMission scripting, campaign logic, AI behavior, weather control, custom triggers, tutorial sequencesBasic scripting
Tier 3: WASMRust/C/AssemblyScriptCustom mechanics, new components, total conversions, custom pathfinding, custom export targetsProgramming

Each tier is optional and sandboxed. No C# runtime. No engine recompilation. No forking.

OpenRA Compatibility — Bring Your Existing Work

FeatureWhat It Means
MiniYAML loading (D025)OpenRA rules.yaml files load directly — no conversion required
Mod manifest parsing (D026)OpenRA mod.yaml recognized natively; ic mod import for permanent migration
Vocabulary aliases (D023)OpenRA trait names (Armament, Valued, Buildable) accepted as aliases
Replay import (D056)OpenRA .orarep files play back with divergence tracking
Lua API superset (D024)All 16 OpenRA Lua globals work identically; IC adds 11 more (Campaign, Weather, Layer, SubMap, Region, Var, Workshop, LLM, Achievement, Tutorial, Ai)
C# assembly handling (D026)C# DLLs flagged with warnings; affected units get placeholder rendering
Cross-engine browser (D011)IC games appear in OpenRA/CnCNet browser and vice versa

Scenario Editor (SDK — D038)

A full visual mission editor inspired by OFP’s mission editor and Arma 3’s Eden Editor:

12 editing modes: Terrain (paint tiles/resources/cliffs/water), Entities (place units/buildings/props), Groups (squad organization), Triggers (area-based conditional logic), Waypoints (OFP F4-style visual route authoring), Connections (visual trigger/waypoint linking), Modules (30+ drag-and-drop logic blocks), Regions (named spatial zones), Layers (dynamic mission expansion), Portals (sub-map transitions), Scripts (Lua file browser/editor), Campaign (mission graph wiring)

Key capabilities:

  • Simple/Advanced mode — same data model, different UI complexity; beginners place units in minutes, advanced users add triggers and scripting
  • Entity placement with double-click, naming (variable names for scripts), faction assignment, probability of presence, condition of presence, veterancy, health, inline Lua init scripts
  • Trigger system — area-based with conditions (unit present/destroyed/captured/built), min/mid/max randomized timers, repeatable/one-shot, Lua escape hatch for custom conditions
  • Module system — 30+ pre-built logic nodes: Wave Spawner, Patrol Route, Guard Position, Reinforcements, Destroy Target, Capture Building, Defend Position, Escort Convoy, Weather Change, Camera Pan, Cinematic Sequence, Map Segment Unlock, Sub-Scenario Portal, Tutorial Step, Spectator Bookmark, and more
  • Waypoints — visual route authoring with types (Move, Attack, Guard, Patrol, Harvest, Script, Wait), synchronization lines for multi-group coordination, route naming for script reference
  • Mission outcomes — named outcome triggers (Mission.Complete("victory_bridge_intact")) wired to campaign branch graph
  • Compositions — reusable prefabs (base layouts, defensive formations, scripted encounters) saved and shared via Workshop
  • Preview / Test / Validate / Publish toolbar — Test launches real game runtime; Validate checks rules asynchronously; Publish Readiness aggregates all warnings
  • Git-first collaboration — stable content IDs, canonical serialization, semantic diff/merge helpers
  • Undo/redo + autosave with crash recovery
  • Interactive guided tours — 10 built-in step-by-step walkthroughs with spotlight overlay and validation (D038)
  • F1 context help — opens authoring manual page for any selected element

Asset Studio (SDK — D040)

XCC Mixer replacement with visual editing — no command-line tools needed:

  • Browse .mix/.big/.oramap archives with extraction
  • View sprites (.shp/.png with palette), palettes (.pal), terrain tiles (.tmp), audio (.aud/.wav/.ogg), video (.vqa/.mp4/.webm), 3D models (.gltf/.vxl)
  • Edit palettes (remap, faction colors, hue shifts), sprite sheets (reorder frames, adjust timing, composite layers), terrain tiles (connectivity rules, transitions), chrome/themes (9-slice panels, live menu preview)
  • Convert bidirectionally: SHP ↔ PNG, AUD ↔ WAV, VQA ↔ WebM
  • Import PNG → palette-quantized SHP; GLTF → game models with LODs; fonts → bitmap sheets
  • Batch operations — bulk palette remap, resize, re-export across assets
  • Diff/compare — side-by-side version comparison with pixel-diff highlights
  • Hot-reload bridge — edit assets, see changes in running game immediately
  • Provenance metadata — track source, author, license, modification history per asset
  • Optional LLM-assisted generation (Phase 7) — describe a unit → LLM generates sprite sheet → iterate

Campaign System (D021)

  • Branching graph backbone — missions linked by named outcomes, not linear lists
  • Optional strategic layer / War Table — phase-based campaign wrapper that presents operations, enemy initiatives, and urgency between milestone missions
  • Operations as a distinct campaign tier — main missions, SpecOps, theater branches, generated operations, and follow-up reveals all use the same campaign graph foundation
  • Expiring opportunities — optional mission nodes with expires_in_phases timers and on_expire consequences let the world move without you
  • Arms race / tech ledger — campaign-visible acquisition / denial state that changes later missions and endgame composition
  • Command Authority and phase pressure — players cannot run every operation before the main mission becomes urgent
  • Multiple outcomes per mission — win/loss/partial each branch differently
  • No mandatory game-over — designer controls what happens on defeat (retry, fallback, consequences)
  • Unit roster persistence — surviving units carry forward with veterancy, kills, equipment
  • Campaign variables — Lua-accessible flags, counters, and state that persist across missions; strategic-layer campaigns also get first-class phase / initiative / ledger state
  • Hero progression (optional) — XP, levels, skill trees, loadouts per named character
  • Intermission / War Table screens — Hero Sheets, Skill Choice, Armory/Loadout, operation cards, and strategic readouts between missions
  • Campaign Graph Editor in SDK — visual node-and-edge editing, drag missions, label outcomes, author phase metadata, validate branches

Export to Other Engines (D066)

IC scenarios can be exported to other Red Alert implementations:

TargetOutputFidelity
IC Native.icscn / .iccampaignFull
OpenRA.oramap ZIP + MiniYAML rules + mod.yamlHigh (IC-only features degrade with warnings)
Original Red Alertrules.ini + .bin + .mpr + .shp/.pal/.aud/.mixModerate (complex triggers downcompile via pattern matching)
  • Export-safe authoring mode — live fidelity indicators (green/yellow/red) per entity/trigger
  • Pattern-based trigger downcompilationTrigger.AfterDelay() → RA1 timed trigger, Trigger.OnKilled() → destroyed trigger, etc.
  • Extensible export targets — community can add Tiberian Sun, RA2, Remastered via WASM plugins
  • CLI exportic export --target openra|ra1 mission.yaml -o ./output/

The vision: IC becomes the tool the C&C community uses to create content for any C&C engine, not just IC itself.

Workshop Distribution (D030)

  • Publish maps, mods, campaigns, themes, AI presets, music, sprites, voice packs, script libraries, observer layouts, camera paths, LLM configs
  • Versioning — semver with dependency ranges (Cargo-style); lockfile for reproducible installs
  • Licensing — SPDX identifiers with ic mod audit for compatibility checking
  • Channels — dev / beta / release with promotion between channels
  • P2P distribution — BitTorrent/WebTorrent for large packages; HTTP fallback
  • Community mirrors — run your own Workshop server; federation with official
  • Offline bundles — export resources as portable archives for LAN parties
  • CI/CD integration — headless publishing via scoped API tokens; tag-based automation
  • CLI: ic mod install, ic mod update, ic mod tree, ic mod audit, ic mod publish

LLM-Powered Creator Tools (Optional — D016)

Built-in CPU models (Tier 1) run locally after a one-time download; no account or external service needed. External LLM providers (BYOLLM Tiers 2–4) unlock higher quality.

  • Single mission generation — text prompt → terrain, objectives, AI behavior, triggers, briefing
  • Campaign generation — text description → full branching multi-mission campaign
  • Natural language intent — “Soviet campaign, disgraced colonel, Eastern Front” → pre-filled campaign parameters
  • Replay-to-scenario extraction — convert replay into playable mission with optional LLM-generated narrative
  • Player-aware generation — LLM reads your match history for personalized missions
  • LLM Orchestrator AI — strategic wrapper around conventional AI; AI handles micro
  • Skill Library (D057) — persistent store of verified LLM outputs; promotes quality over time

For Engine Developers & Researchers

Deterministic Simulation Core

  • Fixed-point math only (i32/i64, scale 1024) — no floats in sim; identical results on all platforms
  • No I/O in sim — pure state evolution; no file, network, or clock access
  • No HashMap/HashSetBTreeMap/BTreeSet/IndexMap only; deterministic iteration
  • Snapshottable state — full game state serializable for replays, save/load, crash recovery, delta encoding (D010)
  • External Sim APIic-sim is a public library crate: new(), step(), inject_orders(), query_state(), snapshot(), restore()
  • Use cases: AI bot tournaments, academic research, automated testing, replay analysis tools

Pluggable Architecture (14+ Trait Seams — D041)

Every major subsystem is abstracted behind a trait — swap algorithms without forking:

TraitBuilt-In ImplementationsWhat You Can Swap
NetworkModelRelay lockstep, local, replay playbackNetwork transport
PathfinderJPS+flowfield, A* grid, navmeshMovement algorithm
SpatialIndexGrid hash, BVH, R-treeRange query structure
FogProviderRadius (RA1), elevation LOS (RA2/TS)Visibility model
DamageResolverStandard (RA1), shield-first (RA2), sub-object (Generals)Damage calculation
AiStrategyPersonality-driven, planning, neural netAI decision-making
OrderValidatorStandard ownership/affordabilityRule enforcement
RankingProviderGlicko-2, Elo, TrueSkillRating algorithm
RenderableSprite (2D), voxel, mesh (3D)Visual representation
GameModuleRA1, TD, D2K, customEntire game ruleset
InputSourceMouse/KB, touch, gamepad, AIInput device
TransportTCP, QUIC, WebSocket, WebRTCWire protocol

Multi-Game Engine

IC is not hardcoded for Red Alert. The GameModule trait defines everything game-specific:

  • Components, systems, and scheduling
  • Fog model, damage model, pathfinding
  • AI defaults, order validation
  • Each module (RA1, TD, RA2, D2K, custom) registers its own rules
  • Same engine binary runs different games via module selection

Performance

  • Render-sim split — simulation at 15 Hz, rendering at 60+ FPS with interpolation
  • Zero-allocation hot paths — string interning, object pooling, pre-allocated buffers
  • Delta encoding — property-level change tracking; baselines (Quake 3 pattern) reduce snapshot payloads ~90%
  • Amortized staggered updates — fog, AI, and pathfinding spread across multiple ticks
  • Multi-layer pathfinding — hierarchical sectors + JPS + flowfield + ORCA-lite avoidance
  • GPU compatibility tiers — auto-detection; playable on 12-year-old hardware

Security & Anti-Cheat

  • Relay time authority — server owns the clock; lag-switch impossible (D007)
  • Deterministic order validation — all clients agree on accept/reject; cheated orders rejected identically (D012)
  • Capability-based WASM sandbox — mods cannot access filesystem, network, or raw memory (D005)
  • Signed replay hash chain — Ed25519 signing; tampering detected (D010)
  • Mandatory transport encryption — AEAD on all network traffic
  • Bounded reconciler corrections — state corrections validated before application

Observability

  • Unified OTEL telemetry — client, relay, tracking, AI all emit structured events (D031)
  • Desync diagnostics — Merkle tree pinpoints divergence to exact system/entity
  • Background replay writer — crash-safe, zero frame-time impact
  • Diagnostic overlay — FPS, latency, order rate, path cache stats in-game

Community Infrastructure

  • Unified ic-server binary with independently toggleable capability flags: relay, matchmaking, ranking, Workshop P2P seeding, moderation (D074)
  • Ed25519 signed credential records — portable reputation across communities
  • Transparency logs — server publishes signed operation log for accountability
  • Federated architecture — communities interoperate with official infrastructure
  • Server configuration via server_config.toml with deployment guide (Chapter 15)

Quick Comparison

CapabilityOpenRARemasteredIron Curtain
Open sourceYesNoYes
Branching campaignsNoNoYes — fail-forward graph + optional War Table (D021)
Balance presets (switchable)No (one balance)NoYes — Classic/OpenRA/Remastered/IC/Custom (D019)
Relay server (no host advantage)No (P2P)No (P2P)Yes (D007)
Ranked matchmakingCommunityNoBuilt-in Glicko-2 (D055)
Mod workshop with dependenciesNoSteam WorkshopFederated with semver, P2P, offline (D030)
Scenario editorMap editor onlyNoFull OFP-inspired mission editor (D038)
Asset studioNoNoVisual sprite/palette/terrain/audio editor (D040)
Export to other enginesN/AN/AOpenRA + RA1 export with fidelity warnings (D066)
LLM-generated missionsNoNoBuilt-in + BYOLLM — text → playable campaigns (D016)
Multi-game engineRA1/TD/TS/D2K (separate mods)RA1 + TD onlyGameModule trait — any RTS (D018)
Weather systemNoNoDynamic with gameplay effects (D022)
Render mode toggleNoToggle (Classic/HD)Classic/HD/3D — mid-game (D048)
Tutorial systemWiki linkBasic tooltips5-layer onboarding (D065)
Mobile/browserNoNoPhone, tablet, browser WASM, Steam Deck
Voice chatNoNoBuilt-in WebRTC/Opus (D059)
Asymmetric co-opNoNoCommander + Field Ops roles (D070)