warfactoryracine/docs/global/architecture-technique.md
StillHammer bb92e9dc93 Add comprehensive engine-focused documentation structure
📚 Complete documentation reorganization:

đŸ—‚ïž Structure:
- docs/global/ → Complete project documentation (all original files)
- docs/engines/ → 10 engine-specific docs with focused responsibilities
- docs/serveur/ → Server coordinator and inter-engine communication
- docs/client/ → Smart Client interface and user experience

🔧 Engine Documentation:
- Designer: Vehicle design with AI assistance (1-2 designs/tick)
- Economy: Market simulation and dynamic pricing
- Event: Breakthrough system and global events
- Factory: Factorio-like production with belts/assemblers
- Intelligence: Metrics collection (3.1GB adaptive) + reconnaissance
- Logistic: Supply chains and convoy management
- MacroEntity: Companies, diplomacy, administration (1000 pts/day)
- Map: Procedural generation (218+ elements) + chunk streaming
- Operation: Military strategy and adaptive AI generals
- War: Multi-chunk combat and persistent frontlines

📋 Each engine doc includes:
- Core responsibilities and system overview
- Key mechanics from relevant design documents
- Communication patterns with other engines
- Implementation notes and architecture details

🎯 Navigation optimized for:
- Engine developers (focused system details)
- System architects (coordination patterns)
- Game designers (mechanics integration)

đŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 14:41:03 +08:00

33 KiB

Architecture Technique

Vision Globale

Concept : RTS/4X hybride hommageant l'Ukraine avec systÚme industriel complexe (Factorio-like), simulation militaire réaliste et gestion géopolitique.

Innovation clé : Architecture multi-serveurs modulaire permettant scaling horizontal et développement parallÚle par IA.

Architecture SystĂšme

Structure Modulaire Multi-Serveurs

                    ┌─────────────────────┐
                    │  Central Coordinator │  ← Meta orchestrator (bootstrap, health, lifecycle)
                    └─────────────────────┘
                                │
    ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
    │       │       │       │       │       │       │       │       │       │       │
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│Fact │ │Logic│ │Econ │ │Desig│ │Macro│ │ Map │ │Comb │ │Oper │ │Intel│ │Event│
│ory  │ │istic│ │omy  │ │ner  │ │Enti │     │ │ at  │ │ation│ │ li  │     │
└─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘
    │       │       │       │       │       │       │       │       │       │
    └───────┌───────┌───────┌───────┌───────┌───────┌───────┌───────┌───────┘
            │       │       │       │       │       │       │       │
      ┌─────────────────────────────────────────────────────────────┐
      │                        Clients                              │ ← Smart UI/Rendering, Authoritative Server
      └─────────────────────────────────────────────────────────────┘

Engines Autonomes

Définition Autonomie

L'architecture repose sur 10 engines autonomes communicant via APIs standardisées, chacun responsable d'un domaine spécifique du gameplay.

Autonome signifie :

  • ✅ Logique mĂ©tier : Calculs, dĂ©cisions, algorithmes dans son domaine
  • ✅ State persistence : GĂšre ses donnĂ©es en mĂ©moire/disque
  • ✅ Graceful degradation : Continue de fonctionner si autres engines down
  • ✅ Independent scaling : Peut ĂȘtre optimisĂ©/Ă©tendu sĂ©parĂ©ment

Autonome ne signifie PAS :

  • ❌ Infrastructure isolĂ©e : Utilise services communs (metrics, health, config)
  • ❌ Communication zero : Échange donnĂ©es via Redis/HTTP selon besoins
  • ❌ No dependencies : Utilise donnĂ©es d'autres engines (prix, terrain, etc.)

Timing interactions :

  • Critique temps rĂ©el : Direct HTTP GET (ex: War Engine → Map Engine terrain)
  • Background sync : Redis Pub/Sub async (ex: Economy → tous engines prix)
  • Infrastructure services : HTTP Ă  demande (ex: Intelligence Engine mĂ©triques)

Vue d'ensemble Engines

Factory Engine

  • ResponsabilitĂ© : SystĂšmes Factorio du joueur uniquement
  • Scope : Mining, production, assemblage, infrastructures joueur
  • Autonomie : Simulation complĂšte des usines joueur
  • Communication : Export donnĂ©es production vers Logistic Engine

Logistic Engine

  • ResponsabilitĂ© : Flux physiques et virtuels de ressources
  • Scope : Transport, supply chains, FOBs militaires, distribution
  • Autonomie : Gestion complĂšte des mouvements de biens
  • Communication : Interface avec Factory, Economy et Combat Engines

Economy Engine

  • ResponsabilitĂ© : Usines IA, marchĂ©s, prix dynamiques
  • Scope : Productions IA, company behaviors, marchĂ©s segmentĂ©s
  • Autonomie : Simulation Ă©conomique globale indĂ©pendante
  • Communication : Prix/demandes vers tous engines consommateurs

Designer System Engine

  • ResponsabilitĂ© : Design vĂ©hicules procĂ©dural pour IA + assistance joueur
  • Scope :
    • Design procĂ©dural IA : random generation + evaluate + pass/drop
    • Assistance design joueur : mĂȘme systĂšme utilisable manuellement
    • Blueprints doctrinaux : grilles efficaces, designs dev, captures enemy
    • Modification designs existants vs crĂ©ation from scratch
  • Autonomie :
    • Engine autonome rĂ©pondant aux commandes joueur + IA
    • Random ticking gĂ©nĂ©ration avec Ă©valuation viabilitĂ© basique
    • Company features influencent choix procĂ©duraux
  • Évaluation Designs :
    • Check stats sur CDC thĂ©orique ("design viable ?")
    • DĂ©tection automatique designs dĂ©faillants (tank 1km/h = reject)
    • Long-term : Retex spĂ©cifiques d'Operation Engine (anti-Javelin urbain)
    • Future : Combat simulations via War Engine
  • Communication :
    • Reçoit demandes Operation Engine + joueur
    • Nouveaux designs vers Economy et War Engines
    • Blueprints Ă©volutifs inter-companies (captures)
  • SpĂ©cialitĂ© : Inclut systĂšme de recherche dual et breakthroughs

MacroEntity Engine (Company & State)

  • ResponsabilitĂ© : EntitĂ©s (companies, Ă©tats), diplomatie, points administration
  • Scope :
    • Features companies, relations, politiques commerciales
    • SystĂšme points administration pour companies et Ă©tats
    • Actions coĂ»tant admin : recherche, commerce, diplomatie, production, militaire
  • Autonomie : Comportements entitĂ©s, Ă©volution features, gestion pools admin quotidiens
  • Communication : Commandes vers Economy, restrictions vers tous engines
  • Points Administration :
    • Pool quotidien companies (1000 base) et Ă©tats (variable selon taille)
    • Actions bloquĂ©es si admin exhaustĂ© (pas de queue, refus immĂ©diat)
    • Modificateurs via company features et contexte (guerre, rĂ©cession)
    • Calculs lĂ©gers, batch processing, rythme bas adaptĂ© gameplay macro

Map Engine

  • ResponsabilitĂ© : Gestion carte, streaming, gĂ©nĂ©ration
  • Scope : Chunks, FOW, navigation, terrain procedural
  • Autonomie : GĂ©nĂ©ration Ă  la demande, optimisation mĂ©moire
  • Communication : DonnĂ©es terrain vers Combat et Factory Engines

Combat Engine (War Engine)

  • ResponsabilitĂ© : Auto-battler tactique avec stocks embarquĂ©s
  • Scope :
    • Batailles temps rĂ©el avec ~500 unitĂ©s actives simultanĂ©es
    • Last meter logistics (camions, dĂ©pĂŽts locaux, 3km radius)
    • Stocks munitions/carburant dans vĂ©hicules et dĂ©pĂŽts tactiques
    • Zones trigger pour dĂ©fense automatique
  • Autonomie :
    • Self-contained avec propres stocks et round de commande
    • UnitĂ©s agissent avec derniers ordres reçus si communication coupĂ©e
    • Gestion autonome logistique courte distance
  • Communication :
    • Reports situation brute vers Operation Engine (pull par waves)
    • Intel bĂątiments vers Intelligence Engine
    • Demandes resupply vers Logistic Engine (longue distance)
    • Updates Economy Engine post-bataille (dĂ©lai acceptable ~1 minute)

Operation Engine

  • ResponsabilitĂ© : IA militaire dĂ©cisionnelle et coordination organisationnelle
  • Scope :
    • Analyse rapports War Engine pour "comprendre" situations (mĂ©thode TBD)
    • GĂ©nĂ©ration ordres tactiques et stratĂ©giques
    • Coordination avec politique via Economy Engine
    • Doctrines militaires diffĂ©renciĂ©es par nation/company
  • Autonomie :
    • Vraie IA militaire (analyse, comprĂ©hension, dĂ©cision)
    • Peut crĂ©er latence dĂ©cisionnelle rĂ©aliste (France 1940)
    • Gestion orders de bataille (test → attaque → exploitation)
  • Machine Learning Simple :
    • Apprentissage tactiques efficaces par contexte/terrain/vĂ©hicules
    • Retex par gĂ©nĂ©ral avec influence modĂšles nationaux (doctrines)
    • Évolution doctrinale lente vs apprentissage gĂ©nĂ©ral rapide
    • RĂ©sistance convergence par diversitĂ© tech/armes semi-random
  • Coordination Politique :
    • Reçoit objectifs stratĂ©giques du politique (Economy Engine)
    • Politique peut override directions militaires
    • Adaptation militaire aux contraintes politiques
  • Communication :
    • Reçoit reports du War Engine
    • Envoie ordres au War Engine
    • Reçoit objectifs stratĂ©giques Economy Engine
    • Demandes intel Ă  Intelligence Engine

Intelligence Engine

  • ResponsabilitĂ© : Reconnaissance, espionnage, fog of war, mĂ©triques Ă©conomiques
  • Scope : Satellites, intel gathering, information warfare, collecte mĂ©triques
  • Autonomie : Collecte et analyse renseignements, agrĂ©gation data Ă©conomique
  • Communication : Intel vers Operation et Company Engines
  • MĂ©triques multijoueur : Scaling adaptatif selon nombre companies, data sharing intelligent

Event Engine

  • ResponsabilitĂ© : ÉvĂ©nements alĂ©atoires, crises, disruptions
  • Scope : Wars, breakthroughs, economic crashes, endgame crisis
  • Autonomie : DĂ©clenchement et gestion Ă©vĂ©nements contextuels
  • Communication : Trigger events vers engines concernĂ©s

Architecture Communication Inter-Engines

Stack Technique

  • Redis Pub/Sub : Communication asynchrone Ă©vĂ©nementielle (pull par waves)
  • HTTP REST : Queries synchrones et commands
  • JSON : Format d'Ă©change uniforme
  • TCP : Reliability pour donnĂ©es critiques

Principe de Communication

  • War Engine : Self-contained, pulls par waves (Ă©vite spam messages)
  • Latence assumĂ©e : DĂ©lais logistiques intĂ©grĂ©s au gameplay (rĂ©alisme)
  • Autonomie engines : Continuent Ă  fonctionner avec derniĂšres donnĂ©es reçues
  • Reports non temps rĂ©el : Economy updates acceptent dĂ©lais 1+ minute

Patterns Redis par Engine

Factory Engine

PUBLISHES :

factory:production_complete   → Economy, Logistic
factory:shutdown             → Logistic, Map
factory:resource_request     → Economy, Logistic
factory:blueprint_test       → Designer

SUBSCRIBES :

economy:price_update         ← Economy
logistic:resource_available  ← Logistic
designer:blueprint_ready     ← Designer

Economy Engine

PUBLISHES :

economy:price_update         → Factory, Combat, Logistic
economy:market_crash         → ALL
economy:company_bankrupt     → Company&State, Map
economy:resource_shortage    → Factory, Logistic

SUBSCRIBES :

factory:production_complete  ← Factory
combat:battle_result         ← Combat
logistic:transport_complete  ← Logistic
company:order_placed         ← Company&State

Combat Engine

PUBLISHES :

combat:battle_start          → Economy, Map, Intelligence
combat:battle_result         → Economy, Map, Intelligence, Operation
combat:unit_destroyed        → Economy, Logistic
combat:resource_consumed     → Economy, Logistic

SUBSCRIBES :

economy:price_update         ← Economy
logistic:supply_delivered    ← Logistic
operation:battle_order       ← Operation
intelligence:enemy_spotted   ← Intelligence

Map Engine

PUBLISHES :

map:territory_change         → ALL
map:resource_discovered      → Economy, Factory
map:terrain_updated          → Combat, Logistic
map:fog_revealed             → Intelligence, Operation

SUBSCRIBES :

factory:shutdown             ← Factory
combat:battle_result         ← Combat
intelligence:recon_complete  ← Intelligence

Logistic Engine

PUBLISHES :

logistic:transport_complete  → Economy, Factory
logistic:supply_delivered    → Combat
logistic:resource_available  → Factory
logistic:convoy_attacked     → Combat, Economy

SUBSCRIBES :

factory:production_complete  ← Factory
combat:resource_consumed     ← Combat
economy:resource_shortage    ← Economy
map:terrain_updated          ← Map

Designer Engine

PUBLISHES :

designer:blueprint_ready     → Factory, Economy
designer:tech_breakthrough   → ALL
designer:design_validated    → Economy, Combat

SUBSCRIBES :

factory:blueprint_test       ← Factory
combat:performance_data      ← Combat
economy:market_demand        ← Economy

MacroEntity Engine (Company & State)

PUBLISHES :

macroentity:order_placed         → Economy
macroentity:feature_changed      → Economy, Designer
macroentity:diplomatic_action    → ALL
macroentity:policy_change        → Economy, Map
macroentity:admin_exhausted      → Economy (action refusĂ©e)

SUBSCRIBES :

economy:company_bankrupt     ← Economy
combat:battle_result         ← Combat
event:crisis_triggered       ← Event
economy:action_request       ← Economy (check admin disponible)

Operation Engine

PUBLISHES :

operation:battle_order       → War Engine
operation:strategy_change    → War Engine, Logistic
operation:target_selected    → War Engine, Intelligence
operation:resupply_request   → Logistic

SUBSCRIBES :

war:situation_report         ← War Engine (pull par waves)
intelligence:intel_update    ← Intelligence
economy:political_directive  ← Economy (political coordination)

War Engine (Combat Engine)

PUBLISHES :

war:situation_report         → Operation Engine (waves, non temps rĂ©el)
war:building_discovered      → Intelligence
war:resupply_needed         → Logistic
war:battle_complete         → Economy (dĂ©lai 1+ min acceptable)

SUBSCRIBES :

operation:battle_order       ← Operation Engine
logistic:supply_delivered    ← Logistic (long distance resupply)
map:terrain_updated          ← Map

Intelligence Engine

PUBLISHES :

intelligence:enemy_spotted   → Combat, Operation
intelligence:intel_update    → Operation, Company&State
intelligence:recon_complete  → Map, Operation

SUBSCRIBES :

combat:battle_start          ← Combat
map:fog_revealed             ← Map

Event Engine

PUBLISHES :

event:crisis_triggered       → ALL
event:breakthrough_event     → Designer, Economy
event:diplomatic_crisis      → Company&State

SUBSCRIBES :

(Monitore all channels pour trigger contextuel)

APIs HTTP Standardisées

Format URL Standard

http://{engine-name}:808{N}/{endpoint}

Ports :
factory:8080, economy:8081, combat:8082, map:8083
logistic:8084, designer:8085, macroentity:8086, operation:8087
intelligence:8088, event:8089

Endpoints Communs (tous engines)

GET  /health              → Health check
GET  /status              → État gĂ©nĂ©ral engine
GET  /metrics             → MĂ©triques performance
POST /shutdown            → ArrĂȘt propre engine

Endpoints Spécifiques par Engine

Factory Engine :

GET  /factories           → Liste usines actives
GET  /factories/{id}      → DĂ©tails usine
POST /factories/{id}/start → DĂ©marrer production
POST /factories/{id}/stop  → ArrĂȘter production
GET  /production/queue     → Queue production
POST /blueprints/validate  → Valider blueprint

Economy Engine :

GET  /prices              → Prix actuels toutes ressources
GET  /prices/{resource}   → Prix ressource spĂ©cifique
GET  /market/demand       → Demande par ressource
GET  /companies           → Liste companies actives
POST /orders              → Placer commande

Combat Engine :

GET  /battles/active      → Batailles en cours
POST /battles/start       → DĂ©marrer bataille
GET  /units/status        → Status toutes unitĂ©s
POST /units/{id}/order    → Donner ordre unitĂ©

Format JSON Uniforme

Structure Standard Message

{
  "timestamp": "2024-03-15T14:30:00Z",
  "source_engine": "factory",
  "target_engines": ["economy", "logistic"],
  "event_type": "production_complete",
  "sequence_id": 12345,
  "data": {
    "factory_id": "fact_001",
    "produced_item": "steel_plate",
    "quantity": 100,
    "quality": 85
  },
  "metadata": {
    "priority": "normal",
    "retry_count": 0
  }
}

Format HTTP Response Standard

{
  "success": true,
  "timestamp": "2024-03-15T14:30:00Z",
  "engine": "economy",
  "data": {
    "steel_price": 45.0,
    "trend": "increasing"
  },
  "error": null,
  "execution_time_ms": 23
}

Format Error Standard

{
  "success": false,
  "timestamp": "2024-03-15T14:30:00Z",
  "engine": "combat",
  "data": null,
  "error": {
    "code": "UNIT_NOT_FOUND",
    "message": "Unit with ID unit_123 not found",
    "details": {
      "unit_id": "unit_123",
      "requested_action": "move"
    }
  },
  "execution_time_ms": 5
}

Flux de Données Critiques

Factory Engine → Economy/Logistic : Production outputs
Economy Engine → ALL : Prix et demandes
Designer Engine → Economy/Combat : Nouveaux designs
Intelligence Engine → Operation : Reconnaissance data
Event Engine → ALL : Crisis triggers
Map Engine → Combat/Factory : Terrain data
Operation Engine → Combat : Battle orders
Combat Engine → Economy/Map : Battle results

Error Handling & Reliability

Engine Crash/Restart Strategy

Detection rapide de crash

Health check HTTP: GET /health toutes les 30 secondes
Redis heartbeat: PUBLISH engine:heartbeat {"engine": "factory", "timestamp": "..."}
Timeout detection: Si pas de heartbeat depuis 60s = engine down

Recovery automatique

Engine redĂ©marre → republish Ă©tat current dans Redis
Example: Factory Engine restart → PUBLISH factory:status {"active_productions": [...]}
Autres engines reçoivent l'update et ajustent leur état local

Graceful degradation

// Dans chaque engine
if (!canReachEngine("economy")) {
    // Utiliser derniers prix connus en cache
    price = fallbackPriceCache.get(resource);
    logWarning("Using cached price, Economy engine unreachable");
}

Redis Failover Strategy

Redis persistence activée

# Configuration Redis
save 900 1     # Save snapshot if 1+ keys changed in 15min
appendonly yes # Log toutes les commandes

Multiple Redis instances (plus tard)

Primary Redis: 6379 (read/write)
Replica Redis: 6380 (read-only backup)
Si primary down → engines switch automatiquement vers replica

Message replay aprĂšs Redis restart

Chaque engine garde buffer local des derniers messages
Engine restart → replay buffer vers Redis pour resync

Circuit Breaker Pattern

Éviter cascade failures

class EngineCircuitBreaker {
    int failureCount = 0;
    bool isOpen = false;

    bool callEngine(string endpoint) {
        if (isOpen && failureCount > 5) {
            return false; // Circuit ouvert, pas d'appel
        }

        if (httpCall(endpoint).success()) {
            failureCount = 0; // Reset sur succĂšs
            return true;
        } else {
            failureCount++;
            if (failureCount > 5) isOpen = true;
            return false;
        }
    }
}

Message Persistence & Replay

Event sourcing basique

Redis streams pour persistence:
XADD events:factory * engine factory event production_complete data {...}
XADD events:combat * engine combat event battle_end data {...}

Recovery: XREAD depuis last timestamp connu

State snapshots

Chaque engine sauvegarde état complet périodiquement:
HSET snapshots:factory:1234567890 state "{...complete_state...}"
Recovery = load last snapshot + replay events depuis timestamp

Timeout & Retry Strategy

HTTP calls avec timeouts

HttpConfig config {
    .connectionTimeout = 5000ms,  // 5s pour établir connection
    .requestTimeout = 10000ms,    // 10s pour réponse complÚte
    .retryCount = 3,
    .retryDelay = 1000ms
};

Redis operations timeouts

RedisConfig config {
    .commandTimeout = 2000ms,    // 2s max par commande Redis
    .reconnectRetryInterval = 5000ms
};

Health Check System

Endpoint standard pour tous engines

GET /health
Response:
{
  "status": "healthy|degraded|unhealthy",
  "dependencies": {
    "redis": "connected",
    "other_engines": ["factory:healthy", "economy:degraded"]
  },
  "metrics": {
    "uptime": 3600,
    "requests_per_second": 45,
    "error_rate": 0.02
  }
}

Central monitoring simple

Script qui poll /health de tous engines toutes les 30s
Log les status changes
Alert si engine down > 2 minutes

Détails des Engines

Factory Engine

  • ResponsabilitĂ© : SystĂšmes Factorio du joueur uniquement
  • Scope : Mining, production, assemblage, infrastructures joueur
  • Autonomie : Simulation complĂšte des usines joueur
  • Communication : Export donnĂ©es production vers Logistic Engine
  • Innovation : Factory benchmarking → conversion stable factories en lookup tables
  • Performance : Unload simulation dĂ©taillĂ©e aprĂšs stabilisation

Logistic Engine

  • ResponsabilitĂ© : Flux physiques et virtuels de ressources
  • Scope : Transport, supply chains, FOBs militaires, distribution
  • Autonomie : Gestion complĂšte des mouvements de biens
  • Communication : Interface avec Factory, Economy et Combat Engines
  • Features : Transport multi-modal (camions, trains, avions, drones, navires)
  • VulnĂ©rabilitĂ©s : Convois attaquables, infrastructure destructible

Economy Engine

  • ResponsabilitĂ© : Usines IA, marchĂ©s, prix dynamiques
  • Scope : Productions IA, company behaviors, marchĂ©s segmentĂ©s
  • Autonomie : Simulation Ă©conomique globale indĂ©pendante
  • Communication : Prix/demandes vers tous engines consommateurs
  • Features : SystĂšme Ă©conomique rĂ©actif aux Ă©vĂ©nements militaires
  • MarchĂ©s : National, company-specific, blocs, mondial avec restrictions

Designer System Engine

  • ResponsabilitĂ© : Conception IA de vĂ©hicules et Ă©quipements
  • Scope : Algorithmes design, validation, recherche technologique
  • Autonomie : Processus design distribuĂ©, cultural blueprints
  • Communication : Nouveaux designs vers Economy et Combat Engines
  • SpĂ©cialitĂ© : Inclut systĂšme de recherche dual et breakthroughs
  • Performance : 1-2 designs créés globalement par tick (total mondial, pas par company), Ă©volution vs crĂ©ation from scratch

MacroEntity Engine (Company & State)

  • ResponsabilitĂ© : EntitĂ©s (companies, Ă©tats), diplomatie, points administration
  • Scope : Features companies, relations, politiques commerciales, systĂšme admin
  • Autonomie : Comportements entitĂ©s, Ă©volution features, gestion admin pools
  • Communication : Commandes vers Economy, restrictions vers tous
  • Features : SystĂšme 2-4 features par company, Ă©volution dynamique
  • Diplomatie : Relations internationales, sanctions, embargos
  • Administration : Pool quotidien, actions bloquĂ©es si exhaustĂ©, modificateurs contextuels

Map Engine

  • ResponsabilitĂ© : Gestion carte, streaming, gĂ©nĂ©ration
  • Scope : Chunks, FOW, navigation, terrain procedural
  • Autonomie : GĂ©nĂ©ration Ă  la demande, optimisation mĂ©moire
  • Communication : DonnĂ©es terrain vers Combat et Factory Engines
  • SystĂšme : Zoom discret (global + local 1mx1m), chunks 64x64
  • Navigation : Node-based pour terrestre, libre pour aĂ©rien

Combat Engine

  • ResponsabilitĂ© : Batailles temps rĂ©el, IA militaire
  • Scope : UnitĂ©s, doctrines, combats locaux
  • Autonomie : Simulations tactiques indĂ©pendantes
  • Communication : RĂ©sultats vers Map et Logistic Engines
  • Performance : Adaptive tick rate (60→15 TPS sous charge)
  • Features : Actions normales (assaut, reco, soutien, etc.)

Operation Engine

  • ResponsabilitĂ© : OpĂ©rations militaires, gĂ©nĂ©raux IA
  • Scope : StratĂ©gie macro, AI decision making, planning
  • Autonomie : Prise de dĂ©cision stratĂ©gique autonome
  • Communication : Ordres vers Combat Engine, demandes vers Logistic
  • Features : GĂ©nĂ©raux avec ML, doctrines, expĂ©rience terrain
  • IA : Adaptation comportements selon succĂšs/Ă©checs

Intelligence Engine

  • ResponsabilitĂ© : Reconnaissance, espionnage, fog of war
  • Scope : Satellites, intel gathering, information warfare
  • Autonomie : Collecte et analyse renseignements
  • Communication : Intel vers Operation et Company Engines
  • SystĂšme : FOW par chunks, qualitĂ© reconnaissance progressive
  • Persistance : MĂ©moire intel par actor, expiration possible

Event Engine

  • ResponsabilitĂ© : ÉvĂ©nements alĂ©atoires, crises, disruptions
  • Scope : Wars, breakthroughs, economic crashes, endgame crisis
  • Autonomie : DĂ©clenchement et gestion Ă©vĂ©nements contextuels
  • Communication : Trigger events vers engines concernĂ©s
  • Features : 3 endgames (zombies, aliens, dĂ©mons), events gĂ©opolitiques
  • ProbabilitĂ©s : Events Ă©gales entre companies, adaptation contextuelle

Central Coordinator

  • Fonction : Meta orchestrator - bootstrap, health monitoring, lifecycle management
  • Scope ultra-limitĂ© :
    • Lancement engines + load map/gameset initial
    • Health ping engines (pas leur contenu)
    • Time sync basique si nĂ©cessaire
    • Graceful shutdown + unload map (quit partie)
  • Aveugle au gameplay : Ne connaĂźt rien des mĂ©caniques de jeu, pure infrastructure
  • Post-bootstrap : Engines communiquent directement via Redis, coordinator passif
  • Crash-safe : Coordinator down = invisible pour gameplay, engines continuent autonomes

Décisions Techniques Clés

1. Performance Stack

  • Langages : C++ / C / ASM pour performance critique
  • Justification : Simulation temps rĂ©el complexe + milliers d'unitĂ©s
  • Compromise : ComplexitĂ© dev acceptable vs performance requirements

2. Synchronisation Multijoueur

  • ProblĂšme : DĂ©terminisme impossible avec multi-serveurs
  • Solution : Server-authoritative + error-resilient design
  • Approach : Graceful degradation + periodic sync + rollback capability

3. Smart Client / Authoritative Server

  • Client Smart : Interface complexe, rendu optimisĂ©, streaming carte, cache local
  • Client Dumb : Aucune simulation gameplay, pas de logique mĂ©tier
  • Server Authoritative : Toute simulation et Ă©tat de jeu sur serveurs
  • Avantages : Anti-cheat naturel, interface rĂ©active, pas de sync client-side
  • Trade-off : Latency interactions vs sĂ©curitĂ© et cohĂ©rence

4. Async Gameplay Design

  • Principe : Combat peut avoir latence, player gĂšre autre chose
  • ImplĂ©mentation : Background processing pendant que player fait diplo/Ă©co
  • Exemple : Bataille 10k unitĂ©s = 30 secondes → player continue production

Optimisations Performance

Load Management

  • Adaptive Tick Rate : 60 TPS → 15 TPS si surcharge
  • Queue Systems : Batch processing pour opĂ©rations coĂ»teuses
  • Future Scaling : Clustering dynamique per module

Workflow Développement

IA-Assisted Development

  • Claude Code #1 → Factory Engine + Logistic Engine
  • Claude Code #2 → Combat Engine + Operation Engine
  • Claude Code #3 → Economy Engine + Designer Engine
  • Claude Code #4 → MacroEntity Engine + Intelligence Engine
  • Claude Code #5 → Map Engine + Event Engine
  • Humain → Central Coordinator + architecture globale + vision produit

Principe Modulaire pour IA

  • Self-contained modules → Claude peut "faire du spagos" dans sa boĂźte
  • Clean APIs → interfaces claires entre modules
  • Isolation → bugs dans un module n'affectent pas les autres

Repository Structure

Ukraine-War-Game/                    # Meta-repository
├── Factory-Engine/                  # Git submodule
├── Logistic-Engine/                 # Git submodule
├── Economy-Engine/                  # Git submodule
├── Designer-Engine/                 # Git submodule
├── MacroEntity-Engine/              # Git submodule
├── Map-Engine/                      # Git submodule
├── Combat-Engine/                   # Git submodule
├── Operation-Engine/                # Git submodule
├── Intelligence-Engine/             # Git submodule
├── Event-Engine/                    # Git submodule
├── Client-Renderer/                 # Git submodule
├── Central-Coordinator/             # Git submodule
├── shared/                         # Protocols & configs communs
│   ├── engine-apis/                # Interface contracts entre engines
│   ├── message-schemas/            # Format des messages inter-engines
│   └── event-definitions/          # Types d'Ă©vĂ©nements standardisĂ©s
├── docs/                           # Documentation architecture
├── scripts/                        # Dev tools (build-all, deploy)
└── docker/                         # Dev environment setup

Scalabilité Future

Clustering Capability

  • Current : 1 serveur par module
  • Future : N serveurs per module avec load balancing
  • Implementation : Kubernetes orchestration + auto-scaling

Performance Monitoring

  • Health Checks : Inter-server communication monitoring
  • Metrics : Tick rates, queue sizes, response times
  • Alerting : Auto-failover + human notifications

Considérations Multijoueur

Sync Strategy

  • Error-Resilient : Accept temporary inconsistencies
  • Periodic Reconciliation : Checkpoints + state correction
  • Conflict Resolution : Server priority rules + rollback capability

Network Architecture

  • Server-to-Server : Reliable message queues (Redis/RabbitMQ)
  • Client-to-Server : Standard TCP/WebSocket
  • Client Responsibilities :
    • Rendu 2D pixel art avec LOD et culling
    • Interface utilisateur complexe (industrielle, militaire, diplomatique)
    • Streaming carte intelligent (zoom, position, cache zones explorĂ©es)
    • Cache local pour performance UI
  • Server Authority : Simulation, logique mĂ©tier, Ă©tat de jeu
  • Bandwidth : Clients reçoivent state updates, n'envoient que commands

Art Direction & Rendering

Style Visuel : Pixel Art

  • Justification : Prototypage rapide, gĂ©nĂ©ration par IA (Claude), performance optimale
  • Aesthetic : Factorio-like, RTS classique, lisibilitĂ© maximale
  • Avantages dĂ©veloppement :
    • Claude capable de gĂ©nĂ©rer sprites cohĂ©rents par batch
    • ItĂ©ration rapide sur feedback visuel
    • Pas de complexitĂ© 3D/animation
    • Style intemporel et scalable

Spécifications Assets

  • VĂ©hicules : 32x32 pixels (chars, IFV, drones)
  • BĂątiments : 64x64 pixels (usines, dĂ©fenses)
  • Terrain : Tiles 32x32 (sol, routes, vĂ©gĂ©tation)
  • UI Elements : Pixel perfect, zoom discret (1x, 2x, 4x)
  • Color Palette : LimitĂ©e pour cohĂ©rence (Ă  dĂ©finir selon contexte Ukraine)

Roadmap Technique

Phase 1 : Core Engines MVP

  • Factory Engine (mining + production basique)
  • Economy Engine (resources tracking)
  • Map Engine (chunks + navigation basique)
  • Client renderer pixel art (tech stack TBD)

Phase 2 : Multi-Engine Integration

  • Central Coordinator implementation
  • Inter-engine communication protocols (message queues)
  • Logistic Engine (transport basique)
  • Combat Engine (unit battles simple)

Phase 3 : Advanced Engines

  • Designer Engine (IA vehicle conception)
  • MacroEntity Engine (entities + diplomatie + administration)
  • Operation Engine (gĂ©nĂ©raux IA)
  • Intelligence Engine (FOW + reconnaissance)

Phase 4 : Complete System

  • Event Engine (crises + Ă©vĂ©nements)
  • Factory benchmarking system
  • Performance optimizations (adaptive tick rate)
  • Endgame crisis implementations

Notes de Conception

Pragmatisme vs Perfection

  • Principle : Ship working system > perfect architecture
  • Error Strategy : Resilient design > error-free design
  • Performance : Good enough > premature optimization

Hommage Ukraine

  • Lore : Guerre rĂ©elle comme base narrative
  • Valeurs : Mettre en avant courage et libertĂ© ukrainiens
  • Authenticity : SystĂšmes militaires basĂ©s sur conflit rĂ©el

"Ave Machina, guide my development !" ⚙đŸ‡ș🇩