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

09 — Decision Log

Every major design decision, with rationale and alternatives considered. Decisions are organized into thematic sub-documents for efficient navigation.

For improved agentic retrieval / RAG summaries, see the reusable Decision Capsule template in src/decisions/DECISION-CAPSULE-TEMPLATE.md and the topic routing guide in src/LLM-INDEX.md.


Sub-Documents

DocumentScopeDecisions
Foundation & CoreLanguage, framework, data formats, simulation invariants, core engine identity, crate extraction, sim layeringD001–D003, D009, D010, D015, D017, D018, D039, D063, D064, D067, D076, D080
Networking & MultiplayerNetwork model, relay server, sub-tick ordering, community servers, ranked play, community server bundleD006–D008, D011, D012, D052, D055, D060, D074
Modding & CompatibilityScripting tiers, OpenRA compatibility, UI themes, mod profiles, licensing, export, Remastered format compatD004, D005, D014, D023–D027, D032, D050, D051, D062, D066, D068, D075
Gameplay & AIPathfinding, balance, QoL, AI systems, render modes, trait-abstracted subsystems, asymmetric co-op, LLM exhibition modes, replay highlights, time-machine mechanicsD013, D019, D021, D022, D028, D029, D033, D041–D045, D048, D054, D070, D073, D077, D078
Community & PlatformWorkshop, telemetry, storage, achievements, governance, profiles, data portabilityD030, D031, D034–D037, D046, D049, D053, D061
Tools & EditorLLM mission generation, scenario editor, asset studio, mod SDK, foreign replays, skill libraryD016, D020, D038, D040, D047, D056, D057
In-Game InteractionCommand console, communication systems (chat, voice, pings), voice-text bridge, tutorial/new player experience, installation/setup wizard UXD058, D059, D065, D069, D079

Decision Index

IDDecisionSub-Document
D001Language — RustFoundation
D002Framework — BevyFoundation
D003Data Format — Real YAML, Not MiniYAMLFoundation
D004Modding — Lua (Not Python) for ScriptingModding
D005Modding — WASM for Power Users (Tier 3)Modding
D006Networking — Pluggable via TraitNetworking
D007Networking — Relay Server as DefaultNetworking
D008Sub-Tick Timestamps on OrdersNetworking
D009Simulation — Fixed-Point Math, No FloatsFoundation
D010Simulation — Snapshottable StateFoundation
D011Cross-Engine Play — Community Layer, Not Sim LayerNetworking
D012Security — Validate Orders in SimNetworking
D013Pathfinding — Trait-Abstracted, Multi-Layer HybridGameplay
D014Templating — TeraModding
D015Performance — Efficiency-First, Not Thread-FirstFoundation
D016LLM-Generated Missions and CampaignsTools
D017Bevy Rendering PipelineFoundation
D018Multi-Game Extensibility (Game Modules)Foundation
D019Switchable Balance PresetsGameplay
D020Mod SDK & Creative ToolchainTools
D021Branching Campaign System with Persistent StateGameplay
D022Dynamic Weather with Terrain Surface EffectsGameplay
D023OpenRA Vocabulary Compatibility LayerModding
D024Lua API Superset of OpenRAModding
D025Runtime MiniYAML LoadingModding
D026OpenRA Mod Manifest CompatibilityModding
D027Canonical Enum Compatibility with OpenRAModding
D028Condition and Multiplier Systems as Phase 2 RequirementsGameplay
D029Cross-Game Component Library (Phase 2 Targets)Gameplay
D030Workshop Resource Registry & Dependency SystemCommunity
D031Observability & Telemetry (OTEL)Community
D032Switchable UI ThemesModding
D033Toggleable QoL & Gameplay Behavior PresetsGameplay
D034SQLite as Embedded StorageCommunity
D035Creator Recognition & AttributionCommunity
D036Achievement SystemCommunity
D037Community Governance & Platform StewardshipCommunity
D038Scenario Editor (OFP/Eden-Inspired, SDK)Tools
D039Engine Scope — General-Purpose Classic RTSFoundation
D040Asset StudioTools
D041Trait-Abstracted Subsystem StrategyGameplay
D042Player Behavioral Profiles & TrainingGameplay
D043AI Behavior Presets, Named AI Commanders & Puppet MastersGameplay
D044LLM-Enhanced AIGameplay
D045Pathfinding Behavior PresetsGameplay
D046Community Platform — Premium ContentCommunity
D047LLM Configuration ManagerTools
D048Switchable Render ModesGameplay
D049Workshop Asset Formats & P2P DistributionCommunity
D050Workshop as Cross-Project Reusable LibraryModding
D051Engine License — GPL v3 with Modding ExceptionModding
D052Community Servers with Portable Signed CredentialsNetworking
D053Player Profile SystemCommunity
D054Extended SwitchabilityGameplay
D055Ranked Tiers, Seasons & Matchmaking QueueNetworking
D056Foreign Replay ImportTools
D057LLM Skill LibraryTools
D058In-Game Command ConsoleInteraction
D059In-Game Communication (Chat, Voice, Pings)Interaction
D060Netcode Parameter PhilosophyNetworking
D061Player Data Backup & PortabilityCommunity
D062Mod Profiles & Virtual Asset NamespaceModding
D063Compression Configuration (Carried Forward in D067)Foundation
D064Server Configuration System (Carried Forward in D067)Foundation
D065Tutorial & New Player ExperienceInteraction
D066Cross-Engine Export & Editor ExtensibilityModding
D067Configuration Format Split — TOML vs YAMLFoundation
D068Selective Installation & Content FootprintsModding
D069Installation & First-Run Setup WizardInteraction
D070Asymmetric Co-op Mode — Commander & Field OpsGameplay
D071External Tool API — IC Remote Protocol (ICRP)Tools
D072Dedicated Server ManagementNetworking
D073LLM Exhibition Matches & Prompt-Coached ModesGameplay
D074Community Server — Unified Binary with Capability FlagsNetworking
D075Remastered Collection Format CompatibilityModding
D076Standalone MIT/Apache-Licensed Crate Extraction StrategyFoundation
D077Replay Highlights & Play-of-the-GameGameplay
D078Time-Machine Mechanics — Replay Takeover, Temporal Campaigns, Multiplayer Time ModesGameplay
D079Voice-Text Bridge — STT Captions, TTS Synthesis, AI Voice PersonasInteraction
D080Simulation Pure-Function Layering — Minimal Client PortabilityFoundation

Pending Decisions

IDTopicNeeds Resolution By
P002Fixed-point scaleResolved: 1024 (matches OpenRA WDist/WPos/WAngle). See research/fixed-point-math-design.mdResolved
P003Audio library choice + music integration designResolved: Kira via bevy_kira_audio — four-bus mixer (Music/SFX/Voice/Ambient), dynamic music FSM, EVA priority queue, sound pooling. See research/audio-library-music-integration-design.mdResolved
P004Lobby/matchmaking wire format detailsResolved: Complete lobby/matchmaking/discovery wire protocol — CBOR framing, 40+ message types, server discovery (HTTPS seed + mDNS), matchmaking queue, SCR credential exchange, lobby→game transition. See research/lobby-matchmaking-wire-protocol-design.mdResolved
P007Non-lockstep client game loop strategy — keep lockstep-only GameLoop and add separate FogAuthGameLoop/RollbackGameLoop later, or generalize the client/game-loop boundary now? See architecture/game-loop.md § FogAuth/Rollback, netcode/network-model-trait.md § Additional NetworkModel ArchitecturesM11 (Phase 7)
P008Workshop P2P transport: uTP (BT interop, NAT-friendly), QUIC (modern TLS + multiplexing), or dual-stack? Affects tracker behavior, NAT assumptions, dependency surface, operational tooling. See decisions/09b/D074-community-server-bundle.md § P2P transportPhase 4 (M8)
P009Official ranked speed policy — one globally canonical speed preset for all ranked queues (cross-community rating comparability), or community/queue-specific with rating-weight normalization? Affects spectator-delay defaults, tick-threshold consistency, cross-community Glicko-2 portability. See decisions/09b/D060-netcode-params.md § Tier 1Phase 5 (M7)