đ 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>
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 !" âïžđșđŠ