Roadmap
DINOForge follows a milestone-based development plan, building from low-level runtime to high-level content packs.
Milestones
M0 — Reverse-Engineering Harness ✅
Status: Complete
Install BepInEx, confirm plugin loading, test plugin, dump entities.
- BepInEx 5.4.23.5 installed with modified Doorstop pre-loader
- Runtime builds to
BepInEx/ecs_plugins/DINOForge.Runtime.dll - Entity Dumper, System Enumerator, Debug Overlay scaffolded
- Initial test suite passing (xUnit + FluentAssertions)
M1 — Runtime Scaffold ✅
Status: Complete
Bootstrap plugin, version detection, logging, ECS introspection, debug overlay.
- BepInEx plugin bootstrap with version-aware initialization
- ECS system and component discovery
- Runtime logging infrastructure
- Debug overlay foundation (F9 key)
M2 — Generic Mod SDK ✅
Status: Complete
Pack manifest format, registry system, schema validation, override model, dependency resolver.
- Pack manifest model with YAML loader (YamlDotNet)
- Generic
Registry<T>system with priority layers and conflict detection - Schema validation pipeline (NJsonSchema)
- Content override model with 4-layer priority (BaseGame -> Framework -> DomainPlugin -> Pack)
- Dependency resolver with cycle detection
- 17 JSON/YAML schemas covering all content types
- Content loader for YAML pack ingestion
- Asset service with addressables catalog support
M3 — Dev Tooling ✅
Status: Complete
Pack compiler CLI, validator CLI, test harness, diff tools, diagnostics.
- PackCompiler CLI (validate, build, assets commands)
- DumpTools CLI with Spectre.Console interactive terminal UI
dinoforgeCLI with 11 commands (status, query, override, reload, watch, dump, resources, screenshot, verify, component-map, etc.)- MCP Server with 13 game interaction tools for Claude Code integration
M3.5 — QA Harness ✅
Status: Complete
Bridge Protocol/Client for IPC, integration test suite, CI-runnable tests.
- Bridge Protocol: JSON-RPC message types, IGameBridge interface, typed result models
- Bridge Client: GameClient for out-of-process game communication with connection state management
- Integration test project (
DINOForge.Tests.Integration) with assertions, fixtures, and test data - 14 integration tests covering content loading, bridge communication, end-to-end pack application
- CI solution (
DINOForge.CI.sln) excluding Runtime for headless builds
M4 — Warfare Domain Plugin ✅
Status: Complete
Factions, doctrines, unit classes, weapons, waves, defenses.
- Faction archetype system (Order, Industrial Swarm, Asymmetric)
- 5 factions: Republic, CIS, West, Classic West Enemy, Guerrilla
- Unit role matrix with 13 shared slots across all factions
- Weapon classes (12 types) and defense tags (8 types)
- Wave composition templates
- Doctrine modifiers
- Balance validation
M5 — First Example Packs ✅
Status: Complete
Full set of example packs demonstrating all content types.
warfare-modern— West vs Classic West Enemy (Modern Warfare theme)warfare-starwars— Republic vs CIS (Star Wars Clone Wars theme)warfare-guerrilla— Asymmetric warfare (Guerrilla faction)example-balance— Simple stat override balance modeconomy-balanced— Economy balance profiles and trade rulesscenario-tutorial— Tutorial scenario with scripted conditions
M6 — In-Game Mod Menu & HMR ✅
Status: Complete
F10 mod menu overlay, hot module replacement for YAML packs.
- Mod menu overlay (F10) with pack listing, enable/disable, manual reload
- Mod settings panel for per-pack configuration
- Pack file watcher (HMR) for live YAML reload during gameplay
- Hot reload bridge wiring changes to re-validation and re-application
M7 — Installer & Universe Bible ✅
Status: Complete
PowerShell/Bash installer, Universe Bible system, pack generator.
Install-DINOForge.ps1(Windows) andinstall.sh(Linux/macOS) installer scripts- Installer library with programmatic installation support
- Universe Bible system: faction taxonomies, naming guides, style guides, crosswalk dictionaries
- Universe loader for parsing Bible documents
- Pack generator for scaffolding total conversion packs from a Universe Bible
Completed 2026-03-15: Universe Bible system working, installers ready.
M8 — Runtime Integration & Video Proof ✅
Status: Complete
ModPlatform orchestrator wiring SDK to Bridge to UI to HMR + autonomous video proof pipeline.
ModPlatformclass owns entire mod platform lifecycle (ADR-009)- Lifecycle phases: Initialize -> OnWorldReady -> LoadPacks -> StartHotReload -> Shutdown
- Plugin.cs stays thin (bootstrap only, forwards Unity callbacks)
- ECS bridge with component mapping, stat modifiers, entity queries, override applicator
- F9/F10 overlay regression fixed (2026-03-20): Removed Harmony patches, restored HideAndDontSave + DontDestroyOnLoad
- prove-features v2 pipeline (2026-03-27): Remotion video rendering + Edge-TTS voiceover + OmniParser VLM validation
- 4 MP4 proof videos rendered with captions and transitions
- 5 MP3 audio tracks with neural voice (Microsoft Aria)
- OmniParser-based UI element detection for automatic screenshot validation
- Evidence bundle:
docs/proof-of-features/20260327_213851/
Completed 2026-03-27: End-to-end validation verified, F9/F10 working, video proof pipeline mature.
M9 — Desktop Companion ⌛
Status: In Progress
WinUI 3 / WindowsAppSDK 1.6 desktop GUI that mirrors F9/F10 in-game panels for out-of-game evaluation.
- WinUI 3 + Mica background + NavigationView shell
- Pack list view (mirrors F10 mod menu) with enable/disable toggle
- Debug panel view (mirrors F9 panel) with 5 collapsible sections
disabled_packs.jsonread/write parity with game- No game launch required for pack configuration evaluation
- ADR-011
M10 — Fuzzing Infrastructure 🕒
Status: Planned
Comprehensive property-based and coverage-guided fuzzing across all serialization paths.
- FsCheck expanded from 4 domains / 14 properties to 10+ domains / 30+ properties
- SharpFuzz coverage-guided fuzzing on YAML, JSON, semver, and PackManifest parsers
- Persistent fuzz corpus (
src/Tests/FuzzCorpus/) - Nightly CI fuzz gate (
.github/workflows/fuzz.yml) - ADR-012
M11 — Test Coverage + Code Completion 🕒
Status: Planned
Fill test gaps and resolve build-excluded incomplete code items.
AssetSwapRegistryTests,FileSystemPackRootResolverTests,PackFileWatcherIntegrationTestsadded- Excluded test re-enablement (UnitSpawner, FactionSystem behind mock ECS)
- Target: 130+ passing tests (up from ~80)
ContextualModMenuHostunblocked (NativeMainMenuModMenu implemented)PackUnitSpawner.OnUpdate()completed (spawn queue + entity instantiation)HotReloadBridgeentity update logic completed- Aviation namespace: decision and resolution
Current Stats (v0.12.0+)
- 18 projects in the solution
- 100+ tests passing (unit + integration, target 130+)
- 17 schemas covering all content types
- 6 example packs complete and playable (Modern, Star Wars, Guerrilla, Economy, Scenario, Balance)
- 4 domain plugins: Warfare (✅ DONE), Economy, Scenario, UI
- 21 MCP tools for Claude Code game automation
- 8 CLI commands via
dinoforgeCLI + custom.claude/commands/ - Autonomous video proof via Remotion + TTS + OmniParser
Success Criteria
A new mod can be created mostly by editing validated pack files and running the toolchain, without new reverse engineering.
If every mod still needs runtime surgery, the framework failed.