- Add hybrid deployment modes: local_dev (MVP) and production_pwa (optional) - Integrate WarFactory engine reuse with hot-reload 0.4ms - Define multi-target compilation strategy (DLL/SO/WASM) - Detail both deployment modes with cost analysis - Add progressive roadmap: Phase 1 (local), Phase 2 (POC WASM), Phase 3 (cloud) - Budget clarified: $10-20/mois (local) vs $13-25/mois (cloud) - Document open questions for technical validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
319 lines
14 KiB
Markdown
319 lines
14 KiB
Markdown
# Questions Ouvertes - Warfactory
|
||
|
||
*Questions importantes à résoudre lors du développement*
|
||
|
||
## Questions Architecturales
|
||
|
||
### 1. **Operation Engine - Compréhension Situation**
|
||
**Question** : Comment implémenter l'analyse de rapports War Engine pour "comprendre" situations complexes ?
|
||
|
||
**Options envisagées** :
|
||
- Pattern matching simple (if-then rules)
|
||
- Algorithmes plus sophistiqués
|
||
- Machine learning avancé
|
||
|
||
**Status** : En suspens, sujet difficile à résoudre pour l'instant
|
||
|
||
### 2. **Designer Engine Role** ✅ RÉSOLU
|
||
**Question** : Qui design les véhicules pour les IA companies/états ?
|
||
|
||
**Solution** : Designer Engine unifié sert joueur ET IA
|
||
- IA : Random generation + evaluate + blueprints doctrinaux
|
||
- Joueur : Design manuel + assistance IA optionnelle
|
||
- Company features influencent choix procéduraux IA
|
||
|
||
### 3. **Factory Benchmarking Implementation** ✅ RÉSOLU
|
||
**Question** : Le système factory benchmarking est-il implémenté ou spéculatif ?
|
||
|
||
**Solution** : Reporté en long-term update
|
||
- Optimisation prématurée, focus sur gameplay core d'abord
|
||
- Concept conservé pour développement futur
|
||
- Status uniforme dans tous les documents
|
||
|
||
## Questions Gameplay
|
||
|
||
### 4. **Tension Militaire/Politique**
|
||
**Question** : Mécaniques concrètes pour résistance militaire aux ordres politiques stupides ?
|
||
|
||
**Exemples** :
|
||
- Militaire peut "traîner les pieds" sur ordres suicide
|
||
- Délais supplémentaires pour ordres non-optimaux
|
||
- Système de moral/confiance commandement
|
||
|
||
**Status** : Envisagé pour long-term updates
|
||
|
||
### 5. **Convergence Tactique IA**
|
||
**Question** : Comment éviter homogénéisation si toutes IA apprennent mêmes tactiques efficaces ?
|
||
|
||
**Solutions identifiées** :
|
||
- Diversité options/tech/ennemis
|
||
- Armes semi-random créent différentiations
|
||
- Biais doctrinaux persistants
|
||
|
||
**À surveiller** : Équilibrage convergence réaliste vs diversité gameplay
|
||
|
||
## Questions Techniques
|
||
|
||
### 6. **Chunk Size Standardization** ✅ RÉSOLU
|
||
**Question** : Quelle taille officielle pour les chunks ?
|
||
|
||
**Solution** : Architecture multi-échelle clarifiée
|
||
- Système patches ressources (forme libre) vs chunks terrain/bâtiments/effets
|
||
- Chaque type de donnée utilise résolution optimale selon besoins
|
||
- 64x64 = chunk principal gameplay, autres tailles pour données spécialisées
|
||
|
||
### 7. **Client Capabilities** ✅ RÉSOLU
|
||
**Question** : Les clients sont-ils "dumb terminals" ou gèrent-ils streaming intelligent ?
|
||
|
||
**Solution clarifiée** : Smart Client / Authoritative Server
|
||
- **Client Smart** : Interface complexe, rendu optimisé, streaming carte, cache local
|
||
- **Client Dumb** : Aucune simulation gameplay, pas de logique métier
|
||
- **Responsabilités client** : UI industrielle/militaire/diplomatique, LOD, culling, cache zones
|
||
- **Server Authoritative** : Toute simulation et état de jeu
|
||
|
||
**Cohérence restaurée** : Terminologie "dumb terminal" remplacée par architecture plus précise.
|
||
|
||
## Questions Scope
|
||
|
||
### 8. **Système Administration - Integration** ✅ RÉSOLU
|
||
**Question** : Comment intégrer le système de points d'administration avec l'architecture engines ?
|
||
|
||
**Solution** : MacroEntity Engine gère entièrement le système
|
||
- **Architecture** : MacroEntity Engine responsable companies/états + administration
|
||
- **Isolation** : Autres engines ignorent système admin, consultent via API si besoin
|
||
- **Actions refusées** : Admin exhausté = refus immédiat (pas de queue)
|
||
- **Performance** : Calculs légers, batch processing, rythme adapté gameplay macro
|
||
- **Joueur exempt** : Pas de contraintes admin pour le joueur
|
||
- **Recherche** : Coûts admin faibles pour ne pas freiner le jeu
|
||
|
||
### 9. **Client Rendering Stack**
|
||
**Question** : Quelle technologie pour le rendu 2D pixel art ?
|
||
|
||
**Options techniques** :
|
||
- **Canvas 2D** : Simple, direct, compatible partout
|
||
- **WebGL** : Performance supérieure, scaling, effects
|
||
- **Hybrid** : Canvas UI + WebGL game world
|
||
|
||
**Considérations** :
|
||
- Performance avec milliers d'unités simultanées
|
||
- Compatibilité navigateurs et plateformes
|
||
- Complexité développement vs performance gains
|
||
- Support zoom discret pixel perfect
|
||
|
||
**À décider** : Choix tech stack rendu client
|
||
|
||
### 10. **Développement Narratif**
|
||
**Question** : Comment développer le contenu narratif pour supporter la richesse du système ?
|
||
|
||
**État actuel** : Travail narratif incomplet
|
||
- **Ukraine baseline** : Contexte initial défini mais peu développé
|
||
- **Autres régions** : Congo, Sahara, etc. - aucun contenu narratif
|
||
- **Storylines** : Manque de quêtes, événements, personnages
|
||
- **Immersion** : Gap entre mécaniques sophistiquées et narrative basique
|
||
|
||
**Besoins identifiés** :
|
||
- **Ukraine dense** : Développer storylines épiques, personnages, événements historiques
|
||
- **Régions alternatives** : Warlords Congo, conflicts sahéliens, tensions géopolitiques
|
||
- **Événements dynamiques** : Crises, alliances, retournements de situation
|
||
- **Personnages** : Leaders, généraux, figures historiques et fictives
|
||
- **Lore systémique** : Background économique, technologique, culturel par région
|
||
|
||
**À développer** : Contenu narratif riche pour toutes les régions supportées
|
||
|
||
### 11. **Optimisations Transport Factorio (Factory System Performance)**
|
||
**Question** : Quelle stratégie d'optimisation pour atteindre 50x-100x gains performance sur les belts/convoyeurs ?
|
||
|
||
**Optimisations identifiées** :
|
||
- **Segment merging** : Fusion segments identiques pour réduire calculs
|
||
- **Compression caching** : Cache états compressés pour éviter recalculs
|
||
- **Belt batching** : Traiter items par lots plutôt qu'individuellement
|
||
- **Spatial indexing** : Structures spatiales optimisées pour queries rapides
|
||
|
||
**Trade-offs à considérer** :
|
||
- **Mémoire vs CPU** : Caching augmente RAM mais réduit calculs
|
||
- **Latence vs Throughput** : Batching améliore débit mais augmente latence
|
||
- **Complexité vs Performance** : Optimisations avancées compliquent maintenance
|
||
|
||
**À investiguer** :
|
||
- Profiling détaillé système actuel pour identifier bottlenecks
|
||
- Benchmarking différentes approches (segment merging vs autres)
|
||
- Équilibrage optimal entre différentes optimisations
|
||
- Impact sur architecture modulaire (ProductionModule monolithique)
|
||
|
||
### 12. **SOA Data Layout (Structure of Arrays)**
|
||
**Question** : Comment implémenter efficacement le pattern SOA pour optimiser cache locality et préparer SIMD ?
|
||
|
||
**Contexte technique** :
|
||
- **AOS traditionnel** : `struct Entity { x, y, z, health; } entities[1000];`
|
||
- **SOA optimisé** : Arrays séparés `positions_x[1000]`, `positions_y[1000]`, etc.
|
||
|
||
**Avantages SOA** :
|
||
- **Cache efficiency** : Traitement d'une propriété sur toutes entités sans charger données inutiles
|
||
- **SIMD readiness** : Données alignées pour vectorisation automatique
|
||
- **Memory bandwidth** : Réduction transferts mémoire jusqu'à 4x
|
||
|
||
**Application Warfactory** :
|
||
- **Belts** : Positions, vitesses, items séparés pour traitement batch
|
||
- **Factories** : États production, inventaires, types en arrays distincts
|
||
- **Units** : Coordonnées, santé, munitions en structures séparées
|
||
|
||
**Défis d'implémentation** :
|
||
- **Complexité code** : Accès moins intuitif qu'AOS
|
||
- **Maintenance** : Synchronisation entre arrays parallèles
|
||
- **Trade-off** : SOA pas optimal pour accès random single entity
|
||
|
||
**À décider** :
|
||
- Quels systèmes bénéficient le plus de SOA ?
|
||
- Comment gérer la transition progressive AOS → SOA ?
|
||
- Quel niveau d'abstraction pour masquer complexité ?
|
||
|
||
### 13. **Trade-off SIMD vs Claude (Optimisation vs Maintenabilité)**
|
||
**Question** : Faut-il privilégier auto-vectorisation compilateur ou SIMD manuel pour performance ?
|
||
|
||
**Context décisionnel** :
|
||
- **SIMD manuel** : Intrinsics SSE/AVX/NEON pour contrôle total performance
|
||
- **Auto-vectorisation** : Compilateur optimise automatiquement avec flags appropriés
|
||
|
||
**Arguments pour auto-vectorisation** :
|
||
- **Simplicité code** : Pas d'intrinsics complexes, code lisible
|
||
- **Portabilité** : Fonctionne sur toutes architectures sans modification
|
||
- **Claude-friendly** : IA peut comprendre et modifier facilement
|
||
- **Maintenance** : Réduction drastique complexité long-terme
|
||
|
||
**Arguments contre SIMD manuel** :
|
||
- **Complexité extrême** : Code intrinsics illisible, bug-prone
|
||
- **Architecture-specific** : Versions différentes ARM/x86/x64
|
||
- **ROI questionnable** : 10-20% gain pour 10x complexité
|
||
- **Claude incompatible** : IA difficile à utiliser sur code SIMD
|
||
|
||
**Stratégie recommandée** :
|
||
- **Phase 1** : SOA + auto-vectorisation partout
|
||
- **Phase 2** : Profiling pour identifier hot spots réels
|
||
- **Phase 3** : SIMD manuel UNIQUEMENT si bottleneck critique prouvé
|
||
- **Documentation** : Si SIMD manuel, isoler dans fonctions avec fallback C++
|
||
|
||
**Flags compilateur optimaux** :
|
||
- `-O3 -march=native` : Maximum auto-vectorisation
|
||
- `-ftree-vectorize` : Force vectorisation loops
|
||
- `-ffast-math` : Optimisations math agressives (attention précision)
|
||
|
||
### 14. **Infrastructure Binaire (Accès Transport)**
|
||
**Question** : L'accès aux infrastructures (port/rail/aéroport) doit-il être binaire ou gradué ?
|
||
|
||
**Option Binaire (proposée)** :
|
||
- Accès = true/false uniquement
|
||
- Simplicité maximale pour IA et gameplay
|
||
- Pas de niveaux ou gradients
|
||
|
||
**Option Graduée (alternative)** :
|
||
- Niveaux infrastructure (petit port → grand port → méga-port)
|
||
- Capacité throughput variable
|
||
- Coûts d'upgrade progressifs
|
||
|
||
**Trade-offs** :
|
||
- **Binaire** : Simple mais moins de nuance stratégique
|
||
- **Gradué** : Plus réaliste mais complexité accrue
|
||
- **Hybride** : Binaire pour accès, capacité max comme propriété séparée
|
||
|
||
**À décider** : Quelle granularité pour l'infrastructure transport ?
|
||
|
||
### 15. **Phases Économiques (Cycle 24h)**
|
||
**Question** : Comment structurer le cycle économique quotidien de 24h ?
|
||
|
||
**Proposition actuelle** :
|
||
- Offer: 6h - Companies postent offres
|
||
- Demand: 6h - Companies postent demandes
|
||
- Clearing: 1h - Algorithme matching
|
||
- Transport: 1h - Organisation logistique
|
||
- Execution: 10h - Livraison effective
|
||
|
||
**Questions ouvertes** :
|
||
- **Synchronisation globale** : Tous sur même cycle ou décalés par timezone ?
|
||
- **Flexibilité** : Permettre transactions hors-cycle pour urgences ?
|
||
- **Granularité** : 24h trop long/court pour gameplay ?
|
||
- **Interruptions** : Que se passe-t-il si guerre/embargo pendant cycle ?
|
||
|
||
**Alternatives** :
|
||
- Cycles plus courts (6h) pour dynamisme
|
||
- Cycles asynchrones par marché régional
|
||
- Système continu avec batch processing périodique
|
||
|
||
### 16. **Pricing Dynamique (Formule Prix)**
|
||
**Question** : Quelle formule précise pour calculer les prix dynamiques ?
|
||
|
||
**Composants identifiés** :
|
||
- Base price (coût production)
|
||
- Transport cost (distance × mode)
|
||
- Scarcity factor (offre/demande)
|
||
- Regional modifiers (taxes, risques)
|
||
|
||
**Formule proposée** :
|
||
`Prix = Base × (1 + Scarcity) × (1 + Regional) + Transport`
|
||
|
||
**Questions détails** :
|
||
- **Scarcity calculation** : Linéaire, exponentielle, ou par paliers ?
|
||
- **Regional factors** : Guerre (+50%), embargo (+100%), taxes (±20%) ?
|
||
- **Price caps** : Limiter prix max pour éviter spirales ?
|
||
- **Historical smoothing** : Moyenne mobile pour stabilité ?
|
||
|
||
**Impacts à considérer** :
|
||
- Volatilité excessive peut frustrer joueurs
|
||
- Prix trop stables = pas d'opportunités trading
|
||
- Balance réalisme vs fun gameplay
|
||
|
||
### 17. **Vision Simulation Complète Victoria 3-Level (Point 35)**
|
||
**Question** : Comment implémenter une simulation économique Victoria 3-level dans le contexte factory game de Warfactory ?
|
||
|
||
**Modules identifiés** :
|
||
- **PopulationModule** : Demographics avec classes (Workers/Engineers/Managers)
|
||
- **MarketModule** : Supply/demand dynamics avec price discovery real-time
|
||
- **MoneyModule** : Currency, inflation, banking systems
|
||
- **TradeModule** : International commerce, tariffs, trade agreements
|
||
- **PolicyModule** : Government intervention, taxation, regulation
|
||
|
||
**Défis d'intégration** :
|
||
- **Performance scaling** : 0.01-0.1Hz simulation économique vs real-time factory
|
||
- **Complexity balance** : Victoria 3-level sans overwhelming factory gameplay
|
||
- **Player agency** : Comment player influence économie macro via actions micro
|
||
- **Data interdependencies** : Synchronisation entre modules économiques
|
||
|
||
**Questions spécifiques** :
|
||
- **Population dynamics** : Birth/death rates, migration patterns réalistes ?
|
||
- **Economic timescales** : Daily economic cycles vs hourly factory production ?
|
||
- **Government simulation** : Policies automatiques ou player-controlled ?
|
||
- **Market volatility** : Niveau réalisme vs stabilité gameplay ?
|
||
|
||
**Architecture concerns** :
|
||
- Quel niveau détail pour chaque module ?
|
||
- Comment éviter simulation économique devenant mini-jeu séparé ?
|
||
- Interface player pour comprendre/influencer économie macro ?
|
||
- Performance impact sur real-time factory operations ?
|
||
|
||
**Scope questions** :
|
||
- Victoria 3-level = objectif final ou starting point ?
|
||
- Quels aspects Victoria 3 essentiels vs nice-to-have ?
|
||
- Timeline implémentation (post-MVP ou core feature) ?
|
||
|
||
**À déterminer** : Scope précis, architecture détaillée, priorités implémentation
|
||
|
||
## Process de Résolution
|
||
|
||
### Priorité 1 - Bloquants Architecture
|
||
- Factory benchmarking status
|
||
- Chunk size standardization
|
||
- Client capabilities définition
|
||
|
||
### Priorité 2 - Core Gameplay
|
||
- Designer Engine role
|
||
- Operation Engine comprehension method
|
||
|
||
### Priorité 3 - Polish Features
|
||
- Tension militaire/politique
|
||
- Convergence tactique prevention
|
||
|
||
### Long-term
|
||
- Narrative/technical alignment
|
||
|
||
---
|
||
|
||
*Ces questions seront résolues progressivement lors du développement. Certaines nécessitent prototypage pour validation.* |