Hola, soy Nemzy, el dev de AoE Buddy. Había una pregunta que me obsesionaba: ¿se puede adivinar tu Elo solo viendo cómo juegas?
Analicé 12 800 replays de 1v1 clasificatorio, de 600 a 2 800 Elo, y entrené un modelo que solo te mira a ti: ni a tu rival ni el resultado. Veredicto: acierta con 100 Elo de margen en 5 partidas.
Esto es lo que dicen los datos sobre nuestro juego, y lo que no funcionó.
1. Los datos en breve
- 12 800 replays de 1v1 clasificatorio, tantas partidas a 700 como a 2 500, descargadas desde el punto de vista del jugador para tener su cámara (10 posiciones por segundo). Más 19 944 replays de julio para el entrenamiento.
- 335 indicadores por jugador y por partida: órdenes, cámara, aldeanos, edades, combates, exploración, murallas…
- 439 jugadores apartados (15 partidas cada uno): el modelo nunca los ve, y es con ellos con los que medimos su error.
Todos los minutos del artículo son minutos de juego (el reloj del juego, que corre a ×1,7).
2. Lo que separa los niveles
Antes de construir una IA, nos hicimos la pregunta más directa: ¿qué indicadores suben (o bajan) con el Elo? Para cada uno de los 334 indicadores, calculamos una correlación de rangos (llamada «de Spearman») sobre 21 081 jugadores-partidas.
Cómo leerla: se ordena a los jugadores según el indicador, luego según su Elo, y se mira si las dos clasificaciones se parecen. 0 significa ninguna relación, +1 significa que el indicador ordena a los jugadores exactamente como el Elo, −1 que los ordena al revés (es el caso de los tiempos de reacción o de las pausas: cuanto más bajo, mejor). Por encima de 0,5, es una relación muy fuerte para un juego tan variado como AoE2.
De los 334 indicadores, nos quedamos con 30 «grandes indicadores» comprensibles para un jugador, uno solo por familia (no tres variantes de los saltos de cámara), en los siete dominios del juego. Aquí está en versión consola:

Y el detalle, con lo que significa en concreto. En toda la tabla, «a 1 000» designa a los jugadores entre 1 000 y 1 199 Elo y «a 2 000» a los que están entre 2 000 y 2 199 (medianas, es decir, el jugador del medio de cada tramo).
| # | Indicador | Dominio | rho | Lo que significa |
|---|---|---|---|---|
| 1 | Acciones útiles por minuto | Velocidad y automatismos | +0,86 | Un jugador de 2 000 da 36 acciones útiles por minuto, uno de 1 000 da 18: el doble. |
| 2 | Saltos de cámara por minuto (0 a 10 min) | Multitarea | +0,77 | Antes de los 10 minutos, 1,1 saltos de cámara por minuto a 1 000, 8,5 a 2 000: unas ocho veces más. |
| 3 | Órdenes dadas en contacto con el enemigo / min | Micro y combate | +0,76 | 1,9 órdenes de combate por minuto a 1 000, 5,8 a 2 000: ya no dejas que las unidades peleen solas. |
| 4 | Idas y vueltas base / frente por minuto | Multitarea | +0,74 | 2,5 idas y vueltas por minuto entre tu base y el exterior a 2 000, 0,9 a 1 000. |
| 5 | Grupos de control recuperados / min | Velocidad y automatismos | +0,74 | 2,7 llamadas de grupo por minuto a 2 000 frente a 0,9 a 1 000: los grupos de control se vuelven un reflejo. |
| 6 | Zonas gestionadas a la vez | Multitarea | +0,73 | En cada tramo de 30 segundos, un jugador a 2 000 actúa en 2,3 zonas distintas del mapa, un jugador a 1 000 en 1,7. |
| 7 | Zonas exploradas antes de los 6 min | Mapa y visión | +0,69 | 6 zonas del mapa visitadas por el explorador antes de los 6 minutos a 1 000, 18 a 2 000: el triple de mapa leído. |
| 8 | Cambios de formación | Micro y combate | +0,67 | Usados en el 19 % de las partidas a 1 000 y el 79 % a 2 000. |
| 9 | Puntos de reunión colocados / min | Macro y producción | +0,67 | 1,8 puntos de reunión por minuto a 1 000, 3,8 a 2 000: el doble. |
| 10 | Pausa más larga sin órdenes | Velocidad y automatismos | −0,66 | La pausa más larga sin ninguna orden pasa de 34 s a 1 000 a 19 s a 2 000. |
| 11 | Tiempo de cámara en su base (0 a 10 min) | Mapa y visión | −0,56 | Antes de los 10 minutos, la cámara se queda en tu base el 89 % del tiempo a 1 000, el 77 % a 2 000. |
| 12 | Patrullas | Micro y combate | +0,56 | Patrullar aparece en el 41 % de las partidas a 1 000 y en el 80 % a 2 000. |
| 13 | Zonas del mapa donde se dan órdenes | Mapa y visión | +0,55 | 46 zonas distintas del mapa reciben al menos una orden a 1 000, 68 a 2 000. |
| 14 | Recursos que duermen en reserva (12 a 20 min) | Economía | −0,55 | Entre los 12 y los 20 minutos, en general 894 recursos duermen en el banco a 1 000, 672 a 2 000. |
| 15 | Primera unidad militar | Macro y producción | −0,51 | La primera unidad militar sale a los 11,4 min a 1 000, a los 9,3 min a 2 000. |
| 16 | Unidades militares producidas antes de los 20 min | Macro y producción | +0,50 | 7 unidades militares antes de los 20 minutos a 1 000, 15 a 2 000. |
| 17 | Llegada a la Edad Feudal | Macro y producción | −0,48 | Llegada a la Edad Feudal a los 10,1 min a 1 000, 9,0 min a 2 000: un minuto de juego de diferencia, no más. |
| 18 | Tiempo de cámara en casa del rival (0 a 10 min) | Mapa y visión | +0,46 | Antes de los 10 minutos, la cámara pasa el 0,7 % del tiempo en la base rival a 1 000, el 6,6 % a 2 000. |
| 19 | Casillas de muralla colocadas | Militar y adaptación | +0,45 | 4 casillas de muralla en la partida a 1 000, 12 a 2 000. |
| 20 | Proporción de órdenes de combate sobre un objetivo concreto | Micro y combate | −0,44 | El clic sobre un objetivo supone el 41 % de las órdenes de combate a 1 000 y el 28 % a 2 000: los buenos jugadores mueven, repliegan y reagrupan más. |
| 21 | Producción durante los combates | Multitarea | +0,43 | Producción durante los combates comparada con el resto de la partida: −3 % a 1 000 (se ralentiza), +27 % a 2 000 (sigue, e incluso con más fuerza). |
| 22 | Primer ciervo empujado | Economía | −0,43 | Cuando hay ciervos, el primero se toca a los 4,5 min a 1 000 y a los 2,3 min a 2 000. |
| 23 | TC inactivo (parte de la partida) | Economía | −0,39 | El TC no produce nada el 9,3 % del tiempo a 1 000, el 4,0 % a 2 000: la mitad de tiempo perdido. |
| 24 | Hacha de doble filo | Economía | −0,37 | Lanzada a los 12,0 min a 1 000, a los 9,8 min a 2 000. |
| 25 | Emplumado (Fletching) | Militar y adaptación | −0,36 | Lanzado a los 20,5 min a 1 000, a los 16,2 min a 2 000 (partidas en las que se investiga). |
| 26 | Reacción a un ataque | Militar y adaptación | −0,29 | Tiempo mediano de reacción a una incursión: 11 s a 1 000, 7 s a 2 000. |
| 27 | Aldeanos a los 15 min | Economía | +0,20 | 30 aldeanos a los 15 minutos a 1 000, 31 a 2 000: casi nada separa los niveles. |
| 28 | Granjas construidas antes de 15 min | Economía | +0,20 | 7 granjas antes de los 15 minutos a 1 000, 9 a 2 000. |
| 29 | Nuevas unidades enemigas contrarrestadas en menos de 3 min | Militar y adaptación | +0,19 | El 25 % de las nuevas unidades rivales reciben un counter en menos de 3 minutos a 1 000, el 33 % a 2 000: una diferencia modesta. |
| 30 | Llegada a la Edad de los Castillos | Macro y producción | +0,01 | Llegada a la Edad de los Castillos a los 20,6 min a 1 000 y 20,9 min a 2 000: ninguna diferencia (partidas en las que se llega). |
Lo que cuenta esta clasificación
1. La velocidad lo aplasta todo. Las acciones útiles por minuto (sin el spam de clics) quedan en cabeza con +0,86: por sí solas, ordenan a los jugadores casi como el Elo. Y no es solo cuestión de dedos: la pausa más larga sin ninguna orden (−0,66) dice lo mismo. Un jugador de 1 000 «desconecta» 34 segundos seguidos al menos una vez por partida; a 2 000, nunca más de 19.
2. La multitarea es la verdadera firma del nivel. Idas y vueltas entre la base y el frente (+0,74), zonas gestionadas a la vez (+0,73), saltos de cámara (+0,77): los buenos jugadores no solo son más rápidos, están en todas partes a la vez. Un 2 000 da órdenes en 2,3 zonas distintas cada 30 segundos; un 1 000 en 1,7, a menudo su base y un solo sitio más. Por eso sacamos la multitarea de «Mapa y visión» para convertirla en un dominio propio, «Multitarea»: zonas gestionadas a la vez, idas y vueltas base / frente (+0,74), producción durante los combates (+0,43). Hasta entonces, un buen scouting ocultaba una multitarea débil.
3. El mapa se lee pronto. Antes de los 6 minutos, el explorador de un jugador de 2 000 ha visitado 18 zonas, frente a 6 a 1 000. Y durante los 10 primeros minutos, su cámara pasa nueve veces más tiempo en la base rival.
4. La economía cuenta, pero menos de lo que se cree. El TC inactivo se divide por dos entre 1 000 y 2 000 (9,3 % frente a 4,0 %), pero su correlación sigue siendo modesta (−0,39): al mismo nivel, las diferencias entre jugadores son enormes, algunos 1 000 lo tienen muy bien rodado y algunos 2 000 dejan dormir su TC. Los recursos que duermen en el banco separan mejor los niveles (−0,55).
5. Las grandes sorpresas.
- Aldeanos a los 15 minutos: solo +0,20. 30 aldeanos a 1 000, 31 a 2 000. La explicación es mecánica: un TC produce como mucho un aldeano cada 25 segundos y el paso a Feudal lo bloquea más de dos minutos. A los 15 minutos, casi todo el mundo está pegado al mismo techo, alrededor de 31 a 33. Además, esta cifra se reconstruye a partir de las órdenes (el replay no contiene el estado del juego), así que hay que leerla como una estimación.
- Llegar a Castillos no dice nada (+0,01). 20,6 minutos a 1 000, 20,9 a 2 000. El timing de edad que todo el mundo vigila es uno de los peores indicadores de nivel. Ojo con un límite: solo contamos las partidas en las que el jugador llega.
- El clic sobre un objetivo baja con el nivel (−0,44). A primera vista es contraintuitivo: uno esperaría que los buenos jugadores apuntaran mejor. En realidad, hacen otra cosa además: retiradas, reagrupamientos, desplazamientos. El clic sobre un objetivo pasa a ser minoritario.
En todos estos gráficos, cada punto es un jugador en una partida (60 elegidos al azar por tramo de 200 de Elo), la línea sigue al jugador mediano de cada tramo y la zona clara contiene la mitad central de los jugadores. Pasa el ratón por encima para leer los valores.
Correlación no significa receta. Spamear la patrulla no te hará ganar 500 Elo. Estos indicadores son huellas del nivel: muestran lo que hacen los buenos jugadores, no necesariamente por qué ganan.
La historia de la cámara
Al principio del proyecto, con un primer lote pequeño de 591 jugadores de los que teníamos la cámara (casi todos entre 1 000 y 2 000), los saltos de cámara por minuto al principio de la partida salían con +0,40. Fue la primera señal fuerte, y el punto de partida de toda una familia de indicadores de multitarea: zonas gestionadas a la vez, idas y vueltas base / frente, producción durante los combates, zonas exploradas.
Hoy, con 11 735 jugadores-partida de 600 a 2 800 Elo, este mismo indicador sube a +0,77, y sus hermanos pequeños le siguen: idas y vueltas base / frente +0,74, zonas gestionadas a la vez +0,73, zonas exploradas antes de los 6 min +0,69, producción durante los combates +0,43.
Sinceramente, buena parte de este salto viene de la escala: una correlación sube mecánicamente cuando se comparan jugadores de 600 a 2 800 en vez de 1 000 a 2 000. Lo que la cámara aportó de verdad es una idea: medir no cuánto haces clic, sino dónde.
Te toca investigar
Los 333 indicadores están aquí. Elige uno: la curva sigue al jugador mediano de cada tramo de 200 Elo, de 600 a 2 800.
3. La IA que adivina tu Elo
Una correlación mira un indicador a la vez. Para estimar un Elo, hay que combinarlos todos. Usamos LightGBM, un modelo de árboles de decisión muy usado para este tipo de tabla de números: aprende reglas del tipo «si las acciones útiles superan 30 y la cámara sale a menudo de la base, entonces más bien 1 800».
Dos decisiones importantes:
- Jugador aislado. El modelo no ve nada del rival: ni su Elo, ni su juego, ni el resultado de la partida. Solo lo que tú hiciste. Es imprescindible para detectar un smurf: juega contra rivales de su falso nivel y gana, y lo último que queremos es que el modelo base su estimación en eso.
- Validación por jugador. Todas las partidas de un mismo jugador se quedan del mismo lado (entrenamiento o test). Si no, el modelo reconocería al jugador en lugar de estimar su nivel.


Ponderando como la verdadera escalera de 1v1 clasificatorio (donde hay muchos más jugadores a 1 200 que a 2 600), el error medio es de:
- 121 Elo en una sola partida (alrededor del 12 %);
- 102 Elo con 5 partidas (alrededor del 10 %).
Estas dos medias vienen del mismo modelo, medido sobre una mitad de los jugadores seguidos nunca usada para ajustar el modelo. Con los 439 jugadores seguidos, el mismo cálculo da 117 y 101: la diferencia se debe a la muestra, no al modelo.
La tabla por nivel dice lo esencial, incluido lo que molesta. El sesgo es la estimación menos el Elo real en una partida: si es negativo, el modelo subestima.
| Elo real | Jugadores | Error, 1 partida | Error, 5 partidas | Sesgo |
|---|---|---|---|---|
| 600 a 799 | 34 | 95 | 84 | +68 |
| 800 a 999 | 46 | 116 | 106 | +16 |
| 1 000 a 1 199 | 39 | 111 | 91 | +11 |
| 1 200 a 1 399 | 47 | 110 | 91 | −1 |
| 1 400 a 1 599 | 31 | 159 | 135 | +17 |
| 1 600 a 1 799 | 46 | 172 | 139 | +16 |
| 1 800 a 1 999 | 38 | 153 | 133 | +47 |
| 2 000 a 2 199 | 37 | 168 | 147 | −36 |
| 2 200 a 2 399 | 43 | 180 | 138 | −127 |
| 2 400 a 2 599 | 40 | 267 | 231 | −245 |
| 2 600 a 2 799 | 35 | 329 | 325 | −326 |
| Todos los niveles (escala real) | 121 (12 %) | 102 (10 %) |
Dos cosas saltan a la vista. Abajo de la escalera, el modelo sobrestima un poco a los de 600 a 799 (+68): como cualquier modelo de este tipo, tira de los extremos hacia el centro de la escalera. Y por encima de 2 000, la tendencia se invierte claramente.
La cima sigue siendo un muro. Desde 2 200, el modelo subestima (−127), luego en 245 Elo entre 2 400 y 2 599 y en 326 Elo por encima. Y mirar 5 partidas en lugar de una casi no cambia nada (329 frente a 325 en lo alto de la escalera): no es ruido, es un techo. Nuestros indicadores simplemente ya no separan a la élite. Un 2 400 y un 2 700 tienen los dos 40 acciones útiles por minuto, exploran igual y actúan en dos o tres zonas a la vez. Lo que los separa (leer el juego rival, tomar decisiones en el momento justo, ejecutar los combates decisivos) todavía no se ve en nuestras cifras.
4. ¿Y en equipo?
El mismo trabajo se rehízo con 7 381 replays de partidas clasificatorias en equipo (2v2, 3v3 y 4v4), es decir, 44 113 jugadores-partida. Siempre el mismo principio del jugador aislado: el modelo solo mira lo que hace el jugador, ni sus aliados, ni sus rivales, ni el resultado.
- 118 Elo de error en una partida (10,1 %): 114 en 2v2, 112 en 3v3, 124 en 4v4.
- 100 Elo a partir de 3 partidas.
- El modelo de 1v1 aplicado tal cual a las partidas en equipo lo hace mucho peor: 192 Elo, subestimando a los jugadores. El juego en equipo tiene sus propias referencias, hacía falta un modelo aparte.
- Control antifugas: separando los datos por partida (para que dos compañeros de una misma partida nunca acaben uno en el entrenamiento y el otro en el test), el error se queda en 116. Así que el modelo no hace trampa reconociendo la partida.
- Y el indicador n.º 1 en equipo es el mismo que en 1v1: las acciones útiles por minuto.
5. Todo lo que no sirvió para nada
Es la parte que nunca se cuenta, y sin embargo llevó tanto tiempo como todo lo demás. Cada una de estas ideas parecía excelente. Ninguna movió el error más de 4 Elo, lo cual es ruido:
- el tipo de mapa (abierto, cerrado, agua): 174 → 173;
- el Elo «estabilizado» (corregir el Elo de las cuentas recientes);
- el valor invertido y recolectado, 46 indicadores más: 117 → 117;
- los paquetes Sync en bruto del replay;
- una red neuronal que lee la secuencia completa de órdenes: 192, frente a 188 de LightGBM;
- quitar los reenvíos del motor (órdenes que el juego reenvía por sí solo).
¿Y si añadimos partidas? La curva de aprendizaje responde: cada vez que duplicamos los datos, el error baja 5 a 7 Elo. Pero por encima de 2 400 ya no se mueve en absoluto. Más replays no van a resolver el problema de la cima.

6. ¿Quién va a ganar? La partida minuto a minuto
Como extra, entrenamos un segundo modelo con 12 793 partidas, que mira el estado de los dos jugadores en cada minuto de juego (ejército, eco, tecnologías, edad…) y deduce una probabilidad de victoria. Suficiente para detectar remontadas, ventajas desperdiciadas y el momento en que la partida se decide.
Algunas cifras salidas de este modelo (solo el estado de la partida, sin el Elo):
- un jugador que cae por debajo del 25 % de probabilidades durante dos minutos seguidos acaba ganando igualmente una de cada seis veces (17,6 %);
- aproximadamente el 11 % de las partidas viven una auténtica remontada de este tipo;
- en estas partidas, el bajón suele llegar hacia el minuto 29 (mediana), y duran bastante más (49 minutos de mediana, frente a 38).
7. El test de la «estrategia»: ¿existe un talento invisible?
Es la pregunta que generó debate en el Discord. La hipótesis: algunos jugadores tienen un Elo mucho más alto de lo que su juego medido haría prever. Tendrían un talento que nuestros indicadores no ven, llamémoslo «estrategia», que les haría ganar partidas que su juego no dejaba prever. La hipótesis contraria: esa diferencia es sobre todo ruido.
Para zanjarlo sin hacer trampa, los criterios de éxito se escribieron antes de lanzar el más mínimo cálculo. Luego partimos al azar las partidas de cada jugador en dos mitades (200 veces) para ver si lo que medimos en una mitad se repite en la otra.

Los resultados son claros:
- La diferencia «Elo real menos Elo estimado» es un rasgo muy estable del jugador: 0,87 de correlación entre las dos mitades de sus partidas. Si el modelo te subestima en tus partidas del lunes, también te subestima en las del jueves.
- Pero «ganar más allá del estado medido de la partida» no es un rasgo (0,08), y «perder yendo por delante» tampoco (0,03).
- Y la diferencia no predice el sobrerrendimiento (−0,007). Los jugadores subestimados no ganan más partidas «perdidas de antemano» que los demás.
- La composición del ejército y las tecnologías sí forman un estilo estable (0,35), pero no mejoran ni la predicción del ganador (+0,1 %) ni la estimación del Elo.
Y la contraprueba más reveladora: el 20 % de jugadores más sobrestimados, aquellos cuyo juego medido está por encima de su Elo, ganan el 59 % de sus partidas y van por delante a los tres quintos de la partida (0,55 de probabilidad de victoria según el estado medido). No están «sobrevalorados»: están subiendo, y su Elo todavía no ha alcanzado a su juego.
Veredicto: la diferencia entre tu juego y tu Elo es bien real y bien tuya, pero no es un poder misterioso para darles la vuelta a las partidas. Lo más probable es que sea una mezcla de lo que aún no medimos (la calidad de los combates decisivos, por ejemplo) y de un Elo que va por detrás o por delante del nivel.
8. Tu huella de juego
Último experimento, casi inquietante: le mostramos al modelo 6 partidas, una de las cuales no es del jugador. Encuentra la intrusa el 99 % del tiempo (el azar daría un 17 %). Lo que más delata a un jugador son sus hábitos de interfaz: sus atajos de teclado, su forma de seleccionar, de llamar a sus grupos. Sin ellos, el modelo sigue reconociendo a la intrusa el 78 % del tiempo.
Tu estilo de juego es una firma. Para detectar un smurf o una cuenta compartida, es una muy buena noticia.
9. Lo que nos quedamos
- Tu replay dice tu nivel con unos 100 de Elo de margen en 5 partidas, sin saber nada de tu rival ni del resultado. En equipo también: 100 de Elo a partir de 3 partidas.
- Lo que marca el nivel es la velocidad útil y la multitarea, mucho más que el timing de las edades o el número de aldeanos a los 15 minutos.
- La élite sigue siendo un misterio para las cifras: por encima de 2 400, lo que marca la diferencia todavía no se lee en los comandos.
- El «talento invisible» no pasó la prueba: la diferencia entre tu juego y tu Elo es estable, pero no te hace ganar las partidas perdidas.
¿Y ahora qué? El siguiente paso: entender qué pasa en la cima, donde nuestros 335 indicadores ya no bastan.
Método, para los curiosos
- Correlaciones: Spearman entre cada indicador y el Elo del jugador antes de la partida, una fila por jugador y por partida de 1v1 clasificatorio, partidas de menos de 8 minutos excluidas, sobre el conjunto completo (21 081 jugadores-partida, 12 670 partidas, 8 589 jugadores). Controles: mismo cálculo con una sola fila por jugador, y con muestreos en los que cada tramo de 200 Elo pesa lo mismo; la clasificación cambia poco (la mayor diferencia afecta a los cambios de formación: +0,67, y +0,48 con una sola fila por jugador). Los indicadores de cámara solo cubren al jugador que grabó el replay (11 735 jugadores-partida).
- Medianas: por tramos de 200 Elo, de 600 a 2 800.
- Modelo: LightGBM, jugador aislado, validación por jugador (GroupKFold), test con 439 jugadores nunca vistos. Errores por tramo:
runs/v4b-eval.log; media ponderada como la escala real:runs/calib-multi.log(mismo modelo, juego v4, mitad de los jugadores seguidos no usada para el ajuste). - Scripts:
article/stats.py(correlaciones),article/export_page_data.py(datos de los gráficos).