Docs Référence

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.

DonnéesSourcePrécision
Unités, ressources, ordres, compétences, buffs, inventaireBloc monde poussé par le runtime toutes les 50 msPériode de publication (réglable jusqu’à 16 ms)
Événements de dégâts et d’éliminationEnregistrés par le runtime sur le thread du jeu, à chaque coupImmédiate
Autres événements (apparition, mort, changement d’ordre, montée de niveau…)Comparaison de deux publications consécutivesPé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 runtimeEnviron ±0.2 seconde de jeu
Caractéristiques de combat, table des contresTables de données du jeu (extraites du jeu installé sur votre machine)Sans les modificateurs des objets, auras et buffs
Recherche de cheminPraticabilité du terrain selon le moteur (cases de 128) + arbres + emprise des bâtiments, A* côté SDKUne case ; un passage plus étroit qu’une case est considéré comme bloqué
Heure de jeuJASS GetFloatGameState(GAME_STATE_TIME_OF_DAY)Période de publication
VisibilitéMasque de visibilité calculé par le runtime pour chaque unité et chaque joueurPériode de publication
Compteurs de technologie, faisabilité, or restant dans les minesRequête par la voie rapide, directement auprès du moteurImmé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 :

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

GrandeurValeur
Une journée480 secondes de jeu (240 secondes de jour, 240 de nuit) ; une heure = 20 secondes de jeu ; la partie commence à 8 h du matin
JourDe 6:00 à 18:00
Coefficient d’armure0.06 (tiré des tables de données du jeu)
Capacité du bloc monde16 joueurs, 1024 unités, 256 fiches de détails d’unité, 256 objets au sol, 128 productions
Arbres4096 destructibles au maximum, rafraîchis toutes les 2 secondes
Anneau d’événements8192 entrées ; si la lecture est trop lente, des événements sont perdus (le SDK le détecte)
Cases de la carte128 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*.