warfactoryracine/docs/systemes-techniques.md
StillHammer 2e0a35cf1f Initial Warfactory documentation with complete map system
- Comprehensive map system with point-based procedural generation
- Regional tendencies system for geographical specialization
- 10-engine autonomous architecture documentation
- Vehicle design system with 3-layer structure
- Technology trees with breakthrough mechanics
- Economic system with company features and cultural doctrines
- Complete metrics and analytics system
- Military mechanics and AI systems
2025-09-18 13:25:15 +08:00

1.7 KiB

Systèmes techniques

Tile System

Superficies

  • Océan : 362 000 000 000 m²
  • Total : 510 000 000 000 m²
  • Terre : 148 000 000 000 m² (118.4 Go)
  • Urbain : 4 440 000 000 m² (3.552 Go)

Référence Minecraft

  • MC 256x256 = 3 540 ko

Gestion mémoire

Game Chunk max DD Absolue pire cas (256x256)

  • Land : 131 ko
  • Ressources : 393 ko
  • Build : 459 ko
  • Roof : 131 ko
  • Effect : 131 ko
  • Total : 1 245 ko

Game Chunk RAM (256x256)

  • Land : 131 ko
  • Ressources : 655 ko
  • Build : 720 ko
  • Roof : 131 ko
  • Effect : 131 ko
  • Total : 1 768 ko

Structure des chunks

5 valeurs importantes

Chunk 512x512 :

  • landId 16b // texture de la tile (potentiel modificateur) DD/Ram

Chunk 64x64 :

  • ressourcePtr 32b DD/Ram
{
    ressourceId : 16b DD/Ram
    RessourceNbr : 32b DD/Ram
}

Chunk 256x256 :

  • buildingPtr 32b "DD"/Ram
{
    BuildingId 32b DD/Ram
    Collision 4b Ram
    PV 20b DD(24b)/Ram
}

Chunk 512x512 :

  • roofId 16b

Chunk 128x128 :

  • effectId 16b

Principe de gestion mémoire

L'idée c'est de pas avoir tout en mémoire à part landId

Stack technique

Langages de performance

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

Optimisations performance

Adaptive Tick Rate

  • Normal : 60 TPS
  • Sous charge : 15 TPS
  • Principe : Dégradation gracieuse selon la charge

Queue Systems

  • Batch processing pour opérations coûteuses
  • Future scaling : clustering dynamique per module