# D’où viennent les données

> L’origine et la précision de chaque type de données. Quand quelque chose « semble faux », commencez par cette page.

Source: https://war3ai.com/fr/docs/data-sources/

| Données | Source | Précision |
|---|---|---|
| Unités, ressources, ordres, compétences, buffs, inventaire | Bloc monde poussé par le runtime toutes les 50 ms | Période de publication (réglable jusqu’à 16 ms) |
| Événements de dégâts et d’élimination | Enregistrés par le runtime sur le thread du jeu, à chaque coup | Immédiate |
| Autres événements (apparition, mort, changement d’ordre, montée de niveau…) | Comparaison de deux publications consécutives | Période de publication |
| Table de production (entraînement / recherche / construction / amélioration) | Champs de minuterie des compétences de production du moteur + temps écoulé cumulé par le runtime | Environ ±0.2 seconde de jeu |
| Caractéristiques de combat, table des contres | Tables de données du jeu (extraites du jeu installé sur votre machine) | Sans les modificateurs des objets, auras et buffs |
| Recherche de chemin | Praticabilité du terrain selon le moteur (cases de 128) + arbres + emprise des bâtiments, A* côté SDK | Une case ; un passage plus étroit qu’une case est considéré comme bloqué |
| Heure de jeu | JASS `GetFloatGameState(GAME_STATE_TIME_OF_DAY)` | Période de publication |
| Visibilité | Masque de visibilité calculé par le runtime pour chaque unité et chaque joueur | Période de publication |
| Compteurs de technologie, faisabilité, or restant dans les mines | Requête par la voie rapide, directement auprès du moteur | Immédiate |

## Les données de jeu ne sont pas distribuées avec le code

Les tables d’unités, de compétences, d’objets, de héros et de buffs, la table des contres de dégâts, etc. proviennent des fichiers du jeu de Blizzard et **ne figurent pas dans le dépôt**. Une fois le dossier du jeu réglé dans le « Centre de contrôle » de Farsight, elles sont extraites automatiquement de votre propre jeu ; vous pouvez aussi lancer l’extraction à la main :

```bash
python data/tools/extract_game_data.py
```

Le résultat est placé dans `data/game/` (hors git) : les `.slk` / `.txt` bruts, ainsi que les fichiers mis en forme `units.json`, `names.json`, `skills.json`, `items.json`, `heroes.json` et `buffs.json`.

## Quelques chiffres concrets

| Grandeur | Valeur |
|---|---|
| Une journée | 480 secondes de jeu (240 secondes de jour, 240 de nuit) ; une heure = 20 secondes de jeu ; la partie commence à 8 h du matin |
| Jour | De 6:00 à 18:00 |
| Coefficient d’armure | 0.06 (tiré des tables de données du jeu) |
| Capacité du bloc monde | 16 joueurs, 1024 unités, 256 fiches de détails d’unité, 256 objets au sol, 128 productions |
| Arbres | 4096 destructibles au maximum, rafraîchis toutes les 2 secondes |
| Anneau d’événements | 8192 entrées ; si la lecture est trop lente, des événements sont perdus (le SDK le détecte) |
| Cases de la carte | 128 unités de jeu par case, 256 × 256 au maximum |

## Exemples calibrés par des mesures

- Durées de production : paysan 14.9, ferme 34.9, Épées en fer forgé 59.9 secondes de jeu, identiques aux valeurs poussées par le runtime (écart inférieur à 0.2 seconde) ;
- Caractéristiques de combat comparées au panneau du jeu : Paladin 650 PV, 255 mana, 3.9 d’armure, attaque 24 à 34 ; fantassin avec une amélioration d’attaque : 13 à 15 ;
- Les dégâts avant armure des événements de dégâts du moteur (14 / 15 / 15) tombent dans l’intervalle calculé par `stats()` ;
- Recherche de chemin : Echo Isles fait 116 × 88 cases, distance au sol jusqu’au bâtiment principal adverse 10642 (9856 à vol d’oiseau), construction de la grille en 18 ms, environ 1 ms par A*.
