aissia/docs/04-reference/questions-ouvertes.md
StillHammer ba42b6d9c7 Update CDC with hybrid architecture (WarFactory + multi-target)
- 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>
2025-10-27 11:49:09 +08:00

14 KiB
Raw Blame History

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.