# Architecture Modulaire - Mobile Command & WarFactory ## Vue d'Ensemble Les deux projets partagent le **GroveEngine** comme fondation, ce qui permet de créer une bibliothèque de modules réutilisables entre les deux jeux. ## Modules Partagés (Core Library) ### 1. **ResourceModule** 🔄 **Réutilisabilité: 90%** - Gestion des ressources (inventaire, stockage) - Craft/production de base - Qualité des ressources (grades) - Balance/contraintes **Mobile Command**: Ressources scavengées, munitions, fuel, pièces détachées **WarFactory**: Minerais, composants, produits finis ### 2. **EconomyModule** 🔄 **Réutilisabilité: 85%** - Système de prix dynamiques - Offre/demande - Marchés/échanges - Budgets/finance **Mobile Command**: Marché noir, dons, ventes de scavenge **WarFactory**: Marché global, contrats PMC, ventes d'armes ### 3. **TransportModule** 🔄 **Réutilisabilité: 70%** - Pathfinding - Logistique/convois - Optimisation de routes - Gestion de flotte **Mobile Command**: Train + expéditions (drones/humains) **WarFactory**: Trains, camions, supply chains ### 4. **CombatModule** 🔄 **Réutilisabilité: 60%** - Calculs de dégâts - Système de santé/armor - Probabilités de hit - État des unités **Mobile Command**: Combat tactical, pertes permanentes **WarFactory**: Auto-battler, frontlines persistantes ### 5. **TechTreeModule** 🔄 **Réutilisabilité: 75%** - Progression technologique - Recherche/unlock - Dépendances entre techs - Cost/time calculations **Mobile Command**: Timeline 2022→2025 (drones evolution) **WarFactory**: 3000+ techs, branches industrielles/militaires ### 6. **EventModule** 🔄 **Réutilisabilité: 80%** - Système d'événements - Conditions/triggers - Choix multiples - Conséquences **Mobile Command**: 70% events, survie, moral **WarFactory**: Events diplomatiques, crises ### 7. **MapModule** 🔄 **Réutilisabilité: 50%** - Chunk system (64x64 tiles) - Streaming/persistence - Multi-échelle (world/regional/local) - Procedural generation base **Mobile Command**: Ukraine map, sites d'expédition **WarFactory**: World map, 218 features, geological sim ### 8. **StorageModule** 🔄 **Réutilisabilité: 95%** - Sauvegarde/chargement - Serialization - State management - Persistence **Les deux**: Save games, configs, analytics ## Modules Spécifiques - Mobile Command ### 9. **TrainBuilderModule** 📦 - Double-slice view (L/R) - Balance 2-axes (latéral + longitudinal) - Wagon management - Performance malus (déséquilibre) ### 10. **ExpeditionModule** 📦 - Gestion d'expéditions - Team composition (humains + drones) - Risk/reward calculs - Moral/fatigue ### 11. **DroneModule** 📦 - Evolution timeline (2022-2025) - Swarm coordination - FPV controls - Ground drones ### 12. **CommanderModule** 📦 - Commandants nommés (5-7) - Skills/personnalités - Mort permanente - Progression XP ### 13. **FameModule** 📦 - Communication/PR - Influenceurs - Déblocage de dons - Risk/reward missions ### 14. **ScavengeModule** 📦 - Sites scavengeable - Danger levels - Loot tables - Timeline evolution (facile→suicide) ## Modules Spécifiques - WarFactory ### 15. **FactoryModule** 🏭 - Belt/inserter/assembler - 60Hz production - Recipe chains - Throughput optimization ### 16. **VehicleDesignModule** 🏭 - Grid-based chassis - Component placement - Pick/place interface - Templates ### 17. **DoctrineModule** 🏭 - Military doctrine creation - Unit composition - Tactics/strategies - Player-driven meta ### 18. **DiplomacyModule** 🏭 - Factions/relations - Contrats/alliances - Reputation système - PMC operations ### 19. **GeologyModule** 🏭 - 7-phase geological sim - Tectonics/climate - Biomes (18 types) - Resource distribution (70+ features) ## Architecture de Partage ### Option 1: Modules GroveEngine Partagés ``` /grove-modules/ # Shared module library ├── ResourceModule/ ├── EconomyModule/ ├── TransportModule/ └── ... /mobilecommand/ └── external/ ├── GroveEngine/ └── grove-modules/ # Symlink /warfactoryracine/ └── external/ ├── GroveEngine/ └── grove-modules/ # Symlink ``` **Avantages**: - Code partagé centralisé - Updates profitent aux deux projets - Moins de duplication **Inconvénients**: - Couplage entre projets - Breaking changes affectent les deux ### Option 2: Copy-Paste avec Divergence ``` /mobilecommand/src/modules/ ├── ResourceModule.cpp # Version MC └── ... /warfactoryracine/modules/ ├── resource/ # Version WF └── ... ``` **Avantages**: - Indépendance totale - Optimisation per-projet **Inconvénients**: - Duplication de code - Bugs fixes dupliqués ### Option 3: Hybride (RECOMMANDÉ) ``` /grove-modules/core/ # Core stable, partagé ├── ResourceModule/ ├── StorageModule/ └── ... /mobilecommand/src/modules/ ├── TrainBuilderModule/ # Spécifique MC └── mc_adapters/ # Adaptateurs des core modules /warfactoryracine/modules/ ├── factory/ # Spécifique WF └── wf_adapters/ # Adaptateurs des core modules ``` **Avantages**: - Core stable partagé - Adaptateurs spécifiques - Flexibilité maximale ## Priorités de Développement ### Phase 1 - Mobile Command Prototype 1. **GameModule** (de base) 2. **ResourceModule** (scavenge, craft simple) 3. **TrainBuilderModule** (3 wagons) 4. **EventModule** (3-5 events) 5. **CombatModule** (1 mission Rimworld-style) ### Phase 2 - WarFactory Foundations 1. **FactoryModule** (production de base) 2. **ResourceModule** (réutilisé de MC) 3. **MapModule** (geological sim) 4. **TechTreeModule** (subset initial) ### Phase 3 - Modules Partagés Stabilisés 1. **EconomyModule** (marché dynamique) 2. **TransportModule** (logistics) 3. **StorageModule** (persistence) 4. **EventModule** (framework général) ## Recommandations ### Court Terme (Prototype MC) - Focus sur modules spécifiques MC - Garder ResourceModule/CombatModule simples et réutilisables - Documenter les patterns réutilisables ### Moyen Terme (MVP MC + WF Setup) - Identifier le core stable - Créer grove-modules/ library - Refactor vers adaptateurs ### Long Terme - Maintenir core library - Versioning sémantique des modules - Tests de compatibilité cross-projet ## Notes Techniques ### Communication Inter-Modules ```cpp // ResourceModule publie io->publish("resource:craft_complete", craftData); // TrainBuilderModule subscribe io->subscribe("resource:craft_complete", callback); ``` ### Configuration Partagée ```json { "modules": { "ResourceModule": { "maxStackSize": 100, "qualityGrades": ["poor", "normal", "good", "excellent"] } } } ``` ### State Preservation ```cpp // Hot-reload compatible std::unique_ptr getState() override { auto state = std::make_unique("state"); state->setInt("resourceCount", m_resources.size()); return state; } ``` --- **Objectif**: Construire une bibliothèque de modules GroveEngine réutilisables tout en gardant l'indépendance des projets.