Plans créés: - PROTOTYPE_PLAN.md: Plan détaillé 12 semaines (4 phases) - SHARED_MODULES_PLAN.md: Architecture modules partagés MC/WF - MODULES_ARCHITECTURE.md: Vue d'ensemble modules Phase 1 (Semaines 1-2): Fondations - GameModule, ResourceModule, StorageModule Phase 2 (Semaines 3-4): Train & Resources - TrainBuilderModule, ResourceModule v2 Phase 3 (Semaines 5-8): Combat & Events - CombatModule, EventModule, ExpeditionModule Phase 4 (Semaines 9-12): Integration & Polish - GameModule v2, UI basique, balance pass Grove-Modules Strategy: - Core library (ResourceModule, StorageModule, etc.) - Common modules (CombatModule, TransportModule, etc.) - Adaptateurs spécifiques MC/WF - Versioning sémantique - CI/CD cross-projet 🎯 Success Metric: 30 min gameplay, 10+ décisions impactantes 🔄 Réutilisabilité: 60-95% modules entre MC et WF 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
302 lines
7.0 KiB
Markdown
302 lines
7.0 KiB
Markdown
# 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<IDataNode> getState() override {
|
|
auto state = std::make_unique<JsonDataNode>("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.
|