Salut, c'est Nemzy, le dev d'AoE Buddy. Une question m'obsédait : peut-on deviner ton Elo juste en regardant comment tu joues ?
J'ai analysé 12 800 replays de 1v1 classé, de 600 à 2 800 Elo, et entraîné un modèle qui ne regarde que toi : ni ton adversaire, ni le résultat. Verdict : il tombe à 100 Elo près sur 5 parties.
Voici ce que les données disent de notre jeu, et ce qui n'a pas marché.
1. Les données en bref
- 12 800 replays de 1v1 classé, autant de parties à 700 qu'à 2 500, téléchargés du point de vue du joueur pour avoir sa caméra (10 positions par seconde). Plus 19 944 replays de juillet pour l'entraînement.
- 335 indicateurs par joueur et par partie : ordres, caméra, villageois, âges, combats, scouting, murs…
- 439 joueurs mis de côté (15 parties chacun) : le modèle ne les voit jamais, c'est sur eux qu'on mesure son erreur.
Toutes les minutes de l'article sont des minutes de jeu (l'horloge en jeu, qui tourne à ×1,7).
2. Ce qui sépare les niveaux
Avant de construire une IA, on a posé la question la plus directe : quels indicateurs montent (ou descendent) avec l'Elo ? Pour chacun des 334 indicateurs, on a calculé une corrélation de rang (dite « de Spearman ») sur 21 081 joueurs-parties.
Comment la lire : on classe les joueurs selon l'indicateur, puis selon leur Elo, et on regarde si les deux classements se ressemblent. 0 veut dire aucun lien, +1 veut dire que l'indicateur range les joueurs exactement comme l'Elo, −1 qu'il les range à l'envers (c'est le cas des temps de réaction ou des pauses : plus c'est bas, meilleur on est). Au-delà de 0,5, c'est un lien très fort pour un jeu aussi varié qu'AoE2.
Parmi les 334 indicateurs, on en a retenu 30 « grands indicateurs » compréhensibles par un joueur, un seul par famille (pas trois variantes des sauts de caméra), dans les sept domaines du jeu. Le voici en version console :

Et le détail, avec ce que ça veut dire concrètement. Dans tout le tableau, « à 1 000 » désigne les joueurs entre 1 000 et 1 199 Elo et « à 2 000 » ceux entre 2 000 et 2 199 (médianes, c'est-à-dire le joueur du milieu de chaque tranche).
| # | Indicateur | Domaine | rho | Ce que ça veut dire |
|---|---|---|---|---|
| 1 | Actions utiles par minute | Vitesse et automatismes | +0,86 | Un joueur à 2 000 donne 36 actions utiles par minute, un joueur à 1 000 en donne 18 : le double. |
| 2 | Sauts de caméra par minute (0 à 10 min) | Multitâche | +0,77 | Avant 10 minutes, 1,1 saut de caméra par minute à 1 000, 8,5 à 2 000 : environ huit fois plus. |
| 3 | Ordres donnés au contact de l'ennemi / min | Micro et combat | +0,76 | 1,9 ordre de combat par minute à 1 000, 5,8 à 2 000 : on ne laisse plus les unités se battre seules. |
| 4 | Allers-retours base / front par minute | Multitâche | +0,74 | 2,5 allers-retours par minute entre sa base et l'extérieur à 2 000, 0,9 à 1 000. |
| 5 | Groupes de contrôle rappelés / min | Vitesse et automatismes | +0,74 | 2,7 rappels de groupe par minute à 2 000 contre 0,9 à 1 000 : les groupes de contrôle deviennent un réflexe. |
| 6 | Zones gérées en même temps | Multitâche | +0,73 | Par tranche de 30 secondes, un joueur à 2 000 agit dans 2,3 zones distinctes de la carte, un joueur à 1 000 dans 1,7. |
| 7 | Zones scoutées avant 6 min | Carte et vision | +0,69 | 6 zones de la carte visées par l'éclaireur avant 6 minutes à 1 000, 18 à 2 000 : trois fois plus de carte lue. |
| 8 | Changements de formation | Micro et combat | +0,67 | Utilisés dans 19 % des parties à 1 000 et 79 % à 2 000. |
| 9 | Points de ralliement placés / min | Macro et production | +0,67 | 1,8 point de ralliement par minute à 1 000, 3,8 à 2 000 : le double. |
| 10 | Plus longue pause sans ordre | Vitesse et automatismes | −0,66 | La plus longue pause sans aucun ordre passe de 34 s à 1 000 à 19 s à 2 000. |
| 11 | Temps de caméra sur sa base (0 à 10 min) | Carte et vision | −0,56 | Avant 10 minutes, la caméra reste sur sa base 89 % du temps à 1 000, 77 % à 2 000. |
| 12 | Patrouilles | Micro et combat | +0,56 | La patrouille apparaît dans 41 % des parties à 1 000 et 80 % à 2 000. |
| 13 | Zones de la carte où l'on donne des ordres | Carte et vision | +0,55 | 46 zones différentes de la carte reçoivent au moins un ordre à 1 000, 68 à 2 000. |
| 14 | Ressources qui dorment en réserve (12 à 20 min) | Éco | −0,55 | Entre 12 et 20 minutes, 894 ressources dorment en général dans la banque à 1 000, 672 à 2 000. |
| 15 | Première unité militaire | Macro et production | −0,51 | La première unité militaire sort à 11,4 min à 1 000, à 9,3 min à 2 000. |
| 16 | Unités militaires produites avant 20 min | Macro et production | +0,50 | 7 unités militaires avant 20 minutes à 1 000, 15 à 2 000. |
| 17 | Arrivée à l'Âge féodal | Macro et production | −0,48 | Arrivée en Féodal à 10,1 min à 1 000, 9,0 min à 2 000 : une minute de jeu d'écart, pas plus. |
| 18 | Temps de caméra chez l'adversaire (0 à 10 min) | Carte et vision | +0,46 | Avant 10 minutes, la caméra passe 0,7 % du temps chez l'adversaire à 1 000, 6,6 % à 2 000. |
| 19 | Cases de murs posées | Militaire et adaptation | +0,45 | 4 cases de murs sur la partie à 1 000, 12 à 2 000. |
| 20 | Part des ordres de combat sur une cible précise | Micro et combat | −0,44 | Le clic sur une cible pèse 41 % des ordres de combat à 1 000 et 28 % à 2 000 : les bons joueurs déplacent, replient et regroupent davantage. |
| 21 | Production pendant les combats | Multitâche | +0,43 | Production pendant les combats comparée au reste de la partie : −3 % à 1 000 (elle ralentit), +27 % à 2 000 (elle continue, et même plus fort). |
| 22 | Premier cerf poussé | Éco | −0,43 | Quand il y a des cerfs, le premier est touché à 4,5 min à 1 000 et à 2,3 min à 2 000. |
| 23 | TC inactif (part de la partie) | Éco | −0,39 | Le TC ne produit rien 9,3 % du temps à 1 000, 4,0 % à 2 000 : deux fois moins de temps perdu. |
| 24 | Hache à double tranchant | Éco | −0,37 | Lancée à 12,0 min à 1 000, à 9,8 min à 2 000. |
| 25 | Empennage (Fletching) | Militaire et adaptation | −0,36 | Lancé à 20,5 min à 1 000, à 16,2 min à 2 000 (parties où il est recherché). |
| 26 | Réaction à une attaque | Militaire et adaptation | −0,29 | Délai médian de réaction à une incursion : 11 s à 1 000, 7 s à 2 000. |
| 27 | Villageois à 15 min | Éco | +0,20 | 30 villageois à 15 minutes à 1 000, 31 à 2 000 : presque rien ne sépare les niveaux. |
| 28 | Fermes construites avant 15 min | Éco | +0,20 | 7 fermes avant 15 minutes à 1 000, 9 à 2 000. |
| 29 | Nouvelles unités adverses contrées en moins de 3 min | Militaire et adaptation | +0,19 | 25 % des nouvelles unités adverses reçoivent un contre en moins de 3 minutes à 1 000, 33 % à 2 000 : un écart modeste. |
| 30 | Arrivée à l'Âge des châteaux | Macro et production | +0,01 | Arrivée en Châteaux à 20,6 min à 1 000 et 20,9 min à 2 000 : aucune différence (parties où l'on y arrive). |
Ce que ce classement raconte
1. La vitesse écrase tout. Les actions utiles par minute (sans le spam de clics) arrivent en tête avec +0,86 : à elles seules, elles rangent les joueurs presque comme l'Elo. Et ce n'est pas qu'une question de doigts : la plus longue pause sans aucun ordre (−0,66) dit la même chose. Un joueur à 1 000 « décroche » 34 secondes d'affilée au moins une fois par partie ; à 2 000, jamais plus de 19.
2. Le multitâche est la vraie signature du niveau. Allers-retours entre la base et le front (+0,74), zones gérées en même temps (+0,73), sauts de caméra (+0,77) : les bons joueurs ne sont pas seulement plus rapides, ils sont partout à la fois. Un 2 000 donne des ordres dans 2,3 zones différentes toutes les 30 secondes ; un 1 000 dans 1,7, souvent sa base et un seul autre endroit. C'est pour cela qu'on a sorti le multitâche de « Carte et vision » pour en faire un domaine à part entière, « Multitâche » : zones gérées en même temps, allers-retours base / front (+0,74), production pendant les combats (+0,43). Un bon scouting masquait jusque-là un multitâche faible.
3. La carte se lit tôt. Avant 6 minutes, l'éclaireur d'un joueur à 2 000 a visité 18 zones, contre 6 à 1 000. Et pendant les 10 premières minutes, sa caméra passe neuf fois plus de temps chez l'adversaire.
4. L'éco compte, mais moins qu'on ne le croit. Le TC inactif est divisé par deux entre 1 000 et 2 000 (9,3 % contre 4,0 %), mais sa corrélation reste modeste (−0,39) : à niveau égal, les écarts entre joueurs sont énormes, certains 1 000 tournent très bien et certains 2 000 laissent leur TC dormir. Les ressources qui dorment en banque séparent mieux les niveaux (−0,55).
5. Les grandes surprises.
- Villageois à 15 minutes : +0,20 seulement. 30 villageois à 1 000, 31 à 2 000. L'explication est mécanique : un TC produit au mieux un villageois toutes les 25 secondes et le passage en Féodal le bloque plus de deux minutes. À 15 minutes, presque tout le monde est donc collé au même plafond, autour de 31 à 33. Ce chiffre est par ailleurs reconstitué à partir des ordres (le replay ne contient pas l'état du jeu), il faut donc le lire comme une estimation.
- L'arrivée en Châteaux ne dit rien (+0,01). 20,6 minutes à 1 000, 20,9 à 2 000. Le timing d'âge que tout le monde surveille est l'un des pires indicateurs de niveau. Attention à une limite : on ne compte que les parties où le joueur y arrive.
- Le clic sur une cible baisse avec le niveau (−0,44). À première vue contre-intuitif : on s'attendrait à ce que les bons joueurs ciblent mieux. En réalité, ils font autre chose en plus : replis, regroupements, déplacements. Le clic sur cible devient minoritaire.
Sur tous ces graphiques, chaque point est un joueur dans une partie (60 tirés au hasard par tranche de 200 Elo), la ligne suit le joueur médian de chaque tranche et la zone claire contient la moitié centrale des joueurs. Survole-les pour lire les valeurs.
Corrélation ne veut pas dire recette. Spammer la patrouille ne te fera pas gagner 500 Elo. Ces indicateurs sont des traces du niveau : ils montrent ce que font les bons joueurs, pas forcément pourquoi ils gagnent.
L'histoire de la caméra
Au tout début du projet, sur un premier petit lot de 591 joueurs dont on avait la caméra (presque tous entre 1 000 et 2 000), les sauts de caméra par minute en début de partie sortaient avec +0,40. C'était le premier signal fort, et le point de départ de toute une famille d'indicateurs de multitâche : zones gérées en même temps, allers-retours base / front, production pendant les combats, zones scoutées.
Aujourd'hui, sur 11 735 joueurs-parties de 600 à 2 800 Elo, ce même indicateur monte à +0,77, et ses petits frères suivent : allers-retours base / front +0,74, zones gérées en même temps +0,73, zones scoutées avant 6 min +0,69, production pendant les combats +0,43.
Honnêtement, une bonne partie de ce bond vient de l'échelle : une corrélation grimpe mécaniquement quand on compare des joueurs de 600 à 2 800 plutôt que de 1 000 à 2 000. Ce que la caméra a vraiment apporté, c'est une idée : mesurer non pas combien on clique, mais où.
À toi de fouiller
Les 333 indicateurs sont là. Choisis-en un : la courbe suit le joueur médian de chaque tranche de 200 Elo, de 600 à 2 800.
3. L'IA qui devine ton Elo
Une corrélation regarde un indicateur à la fois. Pour estimer un Elo, il faut les combiner tous. On a utilisé LightGBM, un modèle d'arbres de décision très utilisé pour ce genre de tableau de chiffres : il apprend des règles du type « si les actions utiles dépassent 30 et que la caméra quitte souvent la base, alors plutôt 1 800 ».
Deux choix importants :
- Joueur isolé. Le modèle ne voit rien de l'adversaire : ni son Elo, ni son jeu, ni le résultat de la partie. Uniquement ce que toi tu as fait. C'est indispensable pour repérer un smurf : il joue contre des adversaires de son faux niveau et gagne, et on ne veut surtout pas que le modèle en tire son estimation.
- Validation par joueur. Toutes les parties d'un même joueur restent du même côté (entraînement ou test). Sinon le modèle reconnaîtrait le joueur au lieu d'estimer son niveau.


En pondérant comme la vraie échelle du 1v1 classé (où il y a bien plus de joueurs à 1 200 qu'à 2 600), l'erreur moyenne est de :
- 121 Elo sur une seule partie (environ 12 %) ;
- 102 Elo sur 5 parties (environ 10 %).
Ces deux moyennes viennent du même modèle, mesuré sur une moitié des joueurs suivis jamais utilisée pour régler le modèle. Sur les 439 joueurs suivis, le même calcul donne 117 et 101 : la différence tient à l'échantillon, pas au modèle.
Le tableau par niveau dit l'essentiel, y compris ce qui fâche. Le biais, c'est l'estimation moins l'Elo réel sur une partie : négatif, le modèle sous-estime.
| Elo réel | Joueurs | Erreur, 1 partie | Erreur, 5 parties | Biais |
|---|---|---|---|---|
| 600 à 799 | 34 | 95 | 84 | +68 |
| 800 à 999 | 46 | 116 | 106 | +16 |
| 1 000 à 1 199 | 39 | 111 | 91 | +11 |
| 1 200 à 1 399 | 47 | 110 | 91 | −1 |
| 1 400 à 1 599 | 31 | 159 | 135 | +17 |
| 1 600 à 1 799 | 46 | 172 | 139 | +16 |
| 1 800 à 1 999 | 38 | 153 | 133 | +47 |
| 2 000 à 2 199 | 37 | 168 | 147 | −36 |
| 2 200 à 2 399 | 43 | 180 | 138 | −127 |
| 2 400 à 2 599 | 40 | 267 | 231 | −245 |
| 2 600 à 2 799 | 35 | 329 | 325 | −326 |
| Tous niveaux (échelle réelle) | 121 (12 %) | 102 (10 %) |
Deux choses sautent aux yeux. En bas de l'échelle, le modèle surestime un peu les 600 à 799 (+68) : comme tout modèle de ce type, il tire les extrêmes vers le milieu de l'échelle. Et au-dessus de 2 000, la tendance s'inverse franchement.
Le sommet reste un mur. Dès 2 200, le modèle sous-estime (−127), puis de 245 Elo entre 2 400 et 2 599 et de 326 Elo au-delà. Et regarder 5 parties au lieu d'une n'y change presque rien (329 contre 325 en haut de l'échelle) : ce n'est pas du bruit, c'est un plafond. Nos indicateurs ne séparent tout simplement plus l'élite. Un 2 400 et un 2 700 ont tous les deux 40 actions utiles par minute, scoutent autant et agissent dans deux à trois zones à la fois. Ce qui les sépare (lecture du jeu adverse, décisions au bon moment, exécution des combats décisifs) ne se voit pas encore dans nos chiffres.
4. Et en équipe ?
Le même travail a été refait sur 7 381 replays de parties classées en équipe (2v2, 3v3 et 4v4), soit 44 113 joueurs-parties. Toujours le même principe du joueur isolé : le modèle ne regarde que ce que fait le joueur, ni ses alliés, ni ses adversaires, ni le résultat.
- 118 Elo d'erreur sur une partie (10,1 %) : 114 en 2v2, 112 en 3v3, 124 en 4v4.
- 100 Elo à partir de 3 parties.
- Le modèle 1v1 appliqué tel quel aux parties d'équipe fait bien pire : 192 Elo, en sous-estimant les joueurs. Le jeu en équipe a ses propres repères, il fallait un modèle à part.
- Contrôle anti-fuite : en séparant les données par partie (pour que deux coéquipiers d'une même partie ne se retrouvent jamais l'un à l'entraînement, l'autre au test), l'erreur reste à 116. Le modèle ne triche donc pas en reconnaissant la partie.
- Et l'indicateur n°1 en équipe est le même qu'en 1v1 : les actions utiles par minute.
5. Tout ce qui n'a servi à rien
C'est la partie qu'on ne raconte jamais, et pourtant elle a pris autant de temps que le reste. Chacune de ces idées semblait excellente. Aucune n'a bougé l'erreur de plus de 4 Elo, ce qui est du bruit :
- le type de carte (ouverte, fermée, eau) : 174 → 173 ;
- l'Elo « stabilisé » (corriger l'Elo des comptes récents) ;
- la valeur investie et récoltée, 46 indicateurs de plus : 117 → 117 ;
- les paquets Sync bruts du replay ;
- un réseau de neurones qui lit la séquence complète des ordres : 192, contre 188 pour LightGBM ;
- retirer les réémissions du moteur (des ordres que le jeu renvoie tout seul).
Et ajouter des parties ? La courbe d'apprentissage répond : chaque fois qu'on double les données, l'erreur baisse de 5 à 7 Elo. Mais au-dessus de 2 400, elle ne bouge plus du tout. Plus de replays ne réglera pas le problème du sommet.

La carte : on avait repéré quelque chose, on a creusé
Il y avait de quoi y croire. Selon la carte, l'erreur du modèle varie presque du simple au double : environ 190 Elo sur Scandinavia, 230 sur Arabia, plus de 310 sur Hideout et Fortress. Et sur Discord, l'idée revenait souvent : Arabia et Arena ne se jouent pas pareil. On a donc poussé ce test beaucoup plus loin que les autres : un modèle par carte, puis 10 000 parties Arabia téléchargées exprès pour aller jusqu'à 60 000 parties d'entraînement. Toujours sur des joueurs que le modèle n'a jamais vus.
Et ce n'est pas une question de quantité. On a entraîné les deux avec exactement le même nombre de parties, de 2 500 à 60 000 : le modèle toutes cartes gagne à chaque fois, et l'écart se stabilise vers 8 Elo au lieu de se refermer.
Pourquoi ? Ce qui trahit un niveau (actions utiles, éco, micro) se retrouve d'une carte à l'autre. Un modèle qui a vu toutes les cartes a vu plus de joueurs et plus de situations, et il apprend mieux ce qui compte vraiment. Donner simplement le nom de la carte au modèle ne change rien non plus. L'écart d'erreur entre les cartes venait donc surtout de qui joue ces cartes, et à quel niveau, pas des cartes elles-mêmes.
La civilisation : même signal, même verdict
Là aussi, il y avait un signal. Selon la civ jouée, l'erreur du modèle va d'environ 220 Elo (Birmans) à plus de 380 (Mapuche). Et l'idée tient debout : certaines civs faussent les indicateurs, les Huns n'ont pas besoin de maisons, les Chinois démarrent avec plus de villageois. On a donc donné la civ du joueur au modèle, puis aussi celle de l'adversaire.
C'est même un poil pire. Le modèle n'a pas besoin qu'on lui donne la civ : il la lit déjà dans les ordres du joueur. Et avec 56 civs, chacune n'a que quelques centaines de parties, alors le modèle finit par apprendre du bruit propre à chaque civ. Civ par civ, les écarts vont de −28 à +26 Elo et se compensent : du hasard, pas un vrai effet.
6. Qui va gagner ? La partie minute par minute
En bonus, on a entraîné un second modèle sur 12 793 parties, qui regarde l'état des deux joueurs à chaque minute de jeu (armée, éco, technologies, âge…) et en déduit une probabilité de victoire. De quoi repérer les retournements, les avances perdues et le moment où la partie bascule.
Quelques chiffres sortis de ce modèle (état de la partie seul, sans l'Elo) :
- un joueur qui passe sous 25 % de chances pendant deux minutes de suite finit quand même par gagner une fois sur six (17,6 %) ;
- environ 11 % des parties connaissent un vrai retournement de ce genre ;
- dans ces parties, le creux arrive le plus souvent autour de la 29e minute (médiane), et elles durent nettement plus longtemps (49 minutes en médiane, contre 38).
7. Le test « stratégie » : existe-t-il un talent invisible ?
C'est la question qui a fait débat sur le Discord. L'hypothèse : certains joueurs ont un Elo bien plus haut que ce que leur jeu mesuré laisse prévoir. Ils auraient un talent que nos indicateurs ne voient pas, appelons-le « stratégie », qui leur ferait gagner des parties que leur jeu ne laissait pas prévoir. L'hypothèse opposée : cet écart, c'est surtout du bruit.
Pour trancher sans tricher, les critères de réussite ont été écrits avant de lancer le moindre calcul. Puis on a coupé les parties de chaque joueur en deux moitiés au hasard (200 fois) pour voir si ce qu'on mesure sur une moitié se retrouve sur l'autre.

Les résultats sont nets :
- L'écart « Elo réel moins Elo estimé » est un trait très stable du joueur : 0,87 de corrélation entre ses deux moitiés de parties. Si le modèle te sous-estime sur tes parties du lundi, il te sous-estime aussi sur celles du jeudi.
- Mais « gagner au-delà de l'état mesuré de la partie » n'est pas un trait (0,08), « perdre alors qu'on menait » non plus (0,03).
- Et l'écart ne prédit pas la surperformance (−0,007). Les joueurs sous-estimés ne gagnent pas plus de parties « perdues d'avance » que les autres.
- La composition d'armée et les technologies forment bien un style stable (0,35), mais elles n'améliorent ni la prédiction du vainqueur (+0,1 %), ni l'estimation de l'Elo.
Et la contre-épreuve la plus parlante : les 20 % de joueurs les plus surestimés, ceux dont le jeu mesuré est au-dessus de leur Elo, gagnent 59 % de leurs parties et mènent aux trois cinquièmes de la partie (0,55 de probabilité de victoire d'après l'état mesuré). Ils ne sont pas « surestimés » : ils sont en train de monter, et leur Elo n'a pas encore rattrapé leur jeu.
Verdict : l'écart entre ton jeu et ton Elo est bien réel et bien à toi, mais ce n'est pas un pouvoir mystérieux de retourner les parties. C'est plus probablement un mélange de ce qu'on ne mesure pas encore (la qualité des combats décisifs, par exemple) et d'un Elo en retard ou en avance sur le niveau.
8. Ton empreinte de jeu
Dernière expérience, presque inquiétante : on montre au modèle 6 parties, dont une n'appartient pas au joueur. Il trouve l'intruse 99 % du temps (le hasard ferait 17 %). Ce qui trahit le plus un joueur, ce sont ses habitudes d'interface : ses raccourcis, sa façon de sélectionner, de rappeler ses groupes. Sans elles, le modèle reconnaît encore l'intruse 78 % du temps.
Ton style de jeu est une signature. Pour repérer un smurf ou un compte partagé, c'est une très bonne nouvelle.
9. Ce qu'on retient
- Ton replay dit ton niveau à environ 100 Elo près sur 5 parties, sans rien savoir de ton adversaire ni du résultat. En équipe aussi : 100 Elo à partir de 3 parties.
- Ce qui fait le niveau, c'est la vitesse utile et le multitâche, bien plus que le timing des âges ou le nombre de villageois à 15 minutes.
- L'élite reste un mystère pour les chiffres : au-dessus de 2 400, ce qui fait la différence ne se lit pas encore dans les commandes.
- Le « talent invisible » n'a pas passé le test : l'écart entre ton jeu et ton Elo est stable, mais il ne te fait pas gagner les parties perdues.
Et maintenant ? La prochaine étape : comprendre ce qui se passe au sommet, là où nos 335 indicateurs ne suffisent plus.
10. Comment le modèle estime ton Elo, en clair
Une question revient souvent : « pourquoi mon éco est à 2 100 si mon Elo estimé n'est qu'à 1 550 ? ». Pour y répondre, il faut voir comment le modèle travaille. Et ce n'est pas un barème avec des cases à cocher.
Il n'y a pas de barème
Personne n'a écrit de règle du type « 30 villageois à 15 minutes = 1 500 Elo ». Le modèle a appris seul, sur 57 450 joueurs-parties de 1v1 classé dont il connaissait l'Elo. Pour chaque partie, il lit tes 335 indicateurs : tes ordres, ta caméra, tes villageois, tes combats, ton scouting… Jamais le résultat de la partie, jamais ton adversaire.
900 petits arbres de questions
Le modèle est une forêt de 900 arbres de décision. Chaque arbre pose quelques questions à la suite sur tes indicateurs, puis ajoute ou retire quelques points d'Elo. Voici à quoi ressemble un arbre :
Ton estimation, c'est la somme de ces 900 petites corrections. Rien n'est donc tout ou rien : une faiblesse coûte quelques points dans des dizaines d'arbres, une force en rapporte dans d'autres, et le même indicateur ne pèse pas pareil selon le reste de ton jeu. Faire 30 villageois à 15 minutes ne dit pas la même chose si tu donnes aussi 35 actions utiles par minute ou seulement 15.
Le modèle fait ça pour chacune de tes 10 dernières parties, puis prend la moyenne : une partie ratée ne décide pas toute seule.
Les barres par domaine : sept avis séparés
Les barres de ta page ne viennent pas du même calcul. Pour chaque domaine (éco, macro, micro…), un modèle à part ne regarde que les indicateurs de ce domaine et répond à une seule question : « si on ne regardait que ton éco, on te donnerait quel Elo ? ». La barre compare cette réponse au joueur typique de ton Elo.
Ces sept avis ne pèsent pas pareil dans l'estimation finale. On l'a mesuré sur 414 joueurs :
La micro et la vitesse font 70 % du résultat. Le militaire et le multitâche pèsent presque zéro, et pas parce qu'ils ne comptent pas en jeu : ce qu'ils mesurent se voit déjà dans les autres domaines (un bon multitâche se lit déjà dans ta vitesse et ta macro), et le modèle ne le compte pas deux fois.
Un exemple réel, en détail : le profil « boomer »
Un joueur à 1 455 Elo, analysé sur le site. Sur sa page : éco au niveau d'un joueur à 2 136, macro à 2 106, mais micro à 1 372, et une estimation à 1 566. On a ouvert le capot pour voir d'où vient chaque chiffre.
Partie par partie
D'une partie à l'autre, l'estimation va de 1 315 à 1 817, alors que son Elo réel ne bouge que de 1 361 à 1 439. Sa meilleure partie (37 minutes sur Arabia en Mongols) ressemble à celle d'un joueur à 1 800 ; sa défaite de 55 minutes en Japonais, à celle d'un joueur à 1 300. C'est pour ça qu'on fait la moyenne : 1 566. Et ce n'est pas un hasard s'il a gagné 6 parties sur 7 : son Elo monte, et le modèle voit un joueur qui n'a pas fini de grimper.
Ce qui fait monter son éco
Chaque modèle de domaine part de la note moyenne de tous les joueurs, puis chaque indicateur ajoute ou retire des points. Voici ceux qui pèsent le plus dans sa note d'éco, comparés aux joueurs de son niveau (1 350 à 1 550 Elo) :
| Indicateur | Lui | Joueurs de son niveau | Effet sur la note |
|---|---|---|---|
| Ressources en réserve, entre 6 et 12 min | 495 | 595 | +76 |
| Ressources en réserve, entre 20 et 30 min | 657 | 1 004 | +57 |
| Ressources en réserve, entre 12 et 20 min | 690 | 763 | +57 |
| Villageois sans tâche (3 à 20 min) | 5,6 % | 8,5 % | +57 |
| Premier cerf chassé | 1 min 40 | 3 min 00 | +45 |
| Villageois bâtisseurs (3 à 20 min) | 2,4 % | 3,0 % | −34 |
| Premier passage à l’or | 7 min 46 | 12 min 58 | +29 |
Le fil rouge : il dépense tout ce qu'il récolte. Entre 20 et 30 minutes, il garde en moyenne 657 ressources en banque quand les joueurs de son niveau en laissent dormir 1 000. Ajoute des villageois presque jamais inactifs, des cerfs chassés tôt et l'or lancé 5 minutes avant les autres : c'est l'éco d'un joueur bien plus haut. Une seule ligne joue contre lui : il a un peu moins de villageois bâtisseurs que la moyenne, et le modèle a appris qu'à ce niveau, construire davantage va avec un meilleur Elo.
Ce qui fait monter sa macro
| Indicateur | Lui | Joueurs de son niveau | Effet sur la note |
|---|---|---|---|
| Actions de macro par minute (10 à 20 min) | 9,8 | 9,9 | +94 |
| Points de ralliement placés par minute | 2,9 | 2,6 | +76 |
| Première unité militaire | 7 min 49 | 9 min 52 | +65 |
| Rythme de production militaire | 11,2 | 7,3 | +51 |
| Technologies relancées | 2,8 % | 10,5 % | −49 |
| Clic Féodal | 6 min 42 | 7 min 09 | +46 |
| Arrivée en Féodal | 9 min 16 | 11 min 21 | +30 |
| Armée à 15 min | 12 | 6 | +24 |
Son ouverture est rapide et propre : Féodal deux minutes avant les joueurs de son niveau, première unité militaire deux minutes plus tôt, deux fois plus d'armée à 15 minutes. Mais regarde la première ligne : ses actions de macro sont pile dans la moyenne, et c'est pourtant l'indicateur qui lui rapporte le plus. C'est exactement ce que veut dire « pas de barème » : le modèle ne lit pas ce chiffre seul. Avec une Féodal aussi rapide et autant de production, ce même rythme de 9,8 actions par minute raconte un joueur efficace, qui obtient plus avec autant de clics.
Ce qui plombe sa micro
| Indicateur | Lui | Joueurs de son niveau | Effet sur la note |
|---|---|---|---|
| Patrouilles par minute | 0 | 0,06 | −28 |
| Actions de micro par minute | 13,4 | 14,0 | −25 |
| Ordres enchaînés (touche Maj) par minute | 0,47 | 0,84 | −25 |
| Engagements par minute | 0,56 | 0,51 | +22 |
| Intensité de la micro | 20,1 | 18,9 | −20 |
| Ordres donnés à une seule unité | 39 % | 42 % | −18 |
Il se bat autant que les autres (un peu plus, même), mais il tient moins ses unités : aucune patrouille, presque deux fois moins d'ordres enchaînés. Et même piège que pour la macro : son intensité de micro est un peu au-dessus de la moyenne, mais elle lui coûte des points, parce qu'elle vient avec peu d'ordres fins. Le modèle y voit des combats subis plutôt que dirigés. Et ce n'est pas une mauvaise passe : sa note de micro est basse dans ses 7 parties, sans exception.
Comment les sept avis se recombinent
| Domaine | Sa note face au joueur type | Poids | Contribution |
|---|---|---|---|
| Éco | +720 | 16 % | +119 |
| Macro et production | +601 | 12 % | +75 |
| Vitesse et automatismes | +85 | 28 % | +24 |
| Militaire et adaptation | +379 | 0 % | 0 |
| Multitâche | +328 | 0 % | 0 |
| Carte et vision | +75 | 1 % | 0 |
| Micro et combat | −288 | 42 % | −121 |
| Total (valeurs arrondies) | +98 |
Son éco et sa macro rapportent près de 200 points ; sa micro, qui pèse plus lourd que les deux réunies, en reprend 121. Il reste +98 : c'est le « Potentiel » affiché sur sa page, et son niveau de référence (1 468) + 98 donne bien les 1 566 estimés.
Ce que ça veut dire pour lui
Ce n'est pas une contradiction, c'est un profil : son jeu de construction est celui d'un joueur à 2 100, son jeu de combat celui d'un joueur à 1 300. La page lui donne d'ailleurs une piste concrète : quand l'adversaire arrive dans sa base, il met 25 secondes à réagir, contre 11 pour les joueurs de son niveau, et c'est arrivé dans 6 parties sur 7. Patrouiller, enchaîner ses ordres, réagir plus vite aux raids : c'est là que se trouvent ses prochains points d'Elo, pas dans son éco.
Méthode, pour les curieux
- Corrélations : Spearman entre chaque indicateur et l'Elo du joueur avant la partie, une ligne par joueur et par partie de 1v1 classé, parties de moins de 8 minutes exclues, sur le jeu complet (21 081 joueurs-parties, 12 670 parties, 8 589 joueurs). Contrôles : même calcul avec une seule ligne par joueur, et sur des tirages où chaque tranche de 200 Elo pèse autant ; le classement change peu (la plus grosse différence concerne les changements de formation : +0,67, et +0,48 avec une seule ligne par joueur). Les indicateurs de caméra ne portent que sur le joueur qui a enregistré le replay (11 735 joueurs-parties).
- Médianes : par tranche de 200 Elo, de 600 à 2 800.
- Modèle : LightGBM, joueur isolé, validation par joueur (GroupKFold), test sur 439 joueurs jamais vus. Erreurs par tranche :
runs/v4b-eval.log; moyenne pondérée comme l'échelle réelle :runs/calib-multi.log(même modèle, jeu v4, moitié des joueurs suivis non utilisée pour le réglage). - Scripts :
article/stats.py(corrélations),article/export_page_data.py(données des graphiques).