Cuando creas un simulador de duelos con IA para un juego de cartas, lo primero que quieres hacer es “correr muchas partidas”. Mejor 1.000 que 100. Mejor 10.000 que 1.000. Cuando el número crece, de pronto todo parece investigación. Aunque no lleves bata, con un CSV ya puedes poner cara de científico.
Pero ahí está la trampa más grande. Si la IA toma malas decisiones, muchas pruebas solo calculan con alta precisión el “promedio de una IA equivocada”.
En un caso real, corrimos 12.480 partidas con un motor de reglas fijo. La revisión de reglas salió bien, pero los resultados fueron extremos: Royal cerca de 79,8% y Witch cerca de 25,6%. Eso no significa que “Royal también tenga 80% de winrate en la vida real”. Más bien era una alarma: “el simulador tiene una forma rara de jugar”.
Así que el primer principio es este.
Antes de aumentar el número de partidas, comprueba si la CPU está jugando bien al juego de cartas.
1. Un simulador no es una sola IA. Separa “reglas”, “decisiones” y “puntuación”
Un simulador de juego de cartas con IA no es un bloque llamado “IA inteligente”. Como mínimo, conviene separarlo en tres capas.
- Motor de reglas: decide si una acción es legal, cuánto daño hace, si se puede evolucionar y si se puede elegir un objetivo.
- Política de juego: elige una acción entre las acciones legales.
- Evaluador: puntúa si ese mazo o esa política realmente fue buena.
Si mezclas todo, ya no sabes si el problema está en “un bug al procesar cartas”, “la IA juega mal” o “el método de evaluación es malo”.
Aunque las reglas sean 100% correctas, la IA perderá si gasta todas las piezas de combo en cuanto puede. Aunque la IA juegue bien, el winrate se torcerá si un lado roba mucho más cuando empieza primero. Si la evaluación es floja, podrías declarar como mejor mazo a uno que tiene buen winrate medio, pero muere al instante contra ciertos rivales.
Por eso, en el diseño hay que probar por separado legalidad, toma de decisiones y evaluación.
2. Primero crea el motor de reglas. Antes de la “inteligencia”, van las “leyes físicas del mundo”
Antes de la IA de duelo necesitas el propio mundo del juego.
Como mínimo, la máquina debe manejar de forma consistente el tamaño del mazo, el límite de copias con el mismo nombre, las restricciones de clase, PP, robo, mulligan, límite del tablero, ataques, Ward, Storm y Rush, evolución y super evolución, elección de objetivos, cartas generadas, tokens, habilidades especiales y condiciones de victoria.
Lo importante aquí no es que “más o menos funcione”. Cada carta debe tener un estado de implementación.
- Full: soporte completo
- Partial: soporte parcial
- Unsupported: sin soporte
- Runtime gap: ocurre una excepción durante la partida
Si un mazo incluye cartas sin soporte, es 100 veces mejor parar el cálculo y devolver “esta carta no tiene soporte” que forzar el simulador y decir “¡57,3% de winrate!”.
Un simulador no necesita confianza. Necesita valor para detenerse.
3. Para la IA de juego no basta con “la acción fuerte ahora”
La dificultad de un juego de cartas está en que no basta con mirar el tablero actual.
La IA debería evaluar cosas como estas.
- Valor del tablero actual
- Valor de la mano
- Desarrollo de los próximos 1 a 3 turnos
- Probabilidad de letal
- Valor de conservar cartas clave
- Valor de conservar puntos de evolución y super evolución
- Respuestas fuertes que el rival podría tener el próximo turno
- Riesgo de quemar cartas por límite de mano
- Riesgo de llenar demasiado el tablero
- Rutas alternativas de victoria
Si la IA solo hace “jugar las cartas disponibles”, “bajar la carta con más ataque” y “pegar a la cara si puede”, puede rendir más o menos bien con mazos rápidos. Pero se rompe enseguida con mazos de combo, control o gestión de recursos.
Esto conecta con el “caso de la IA Royal bruta” del que hablaré después.
4. Usa el conocimiento humano como “pistas”, no como código fijo
Aunque quieras fortalecer la IA, si conviertes una guía completa en una cadena de if, empieza otro infierno.
Si fijas reglas como “en turno 3 siempre juega esta carta” o “en este emparejamiento siempre conserva esta carta”, la IA se convierte en un bot de guía que no se adapta cuando cambia un poco el meta o el tablero.
Por eso, el conocimiento humano debe entrar como prioridad, suma de puntos o resta de puntos.
Ejemplos:
- En este emparejamiento, valorar un poco más los limpiadores de mesa
- Restar puntos por gastar pronto esta pieza de combo
- Sumar valor por guardar la evolución hasta cierto turno
- Reducir un poco el desarrollo del tablero justo antes del turno fuerte de respuesta del rival
- Si hay letal en 2 o 3 turnos, subir el valor futuro por encima del valor del tablero actual
Además, la información de guías debe llevar pack, formato, líder, arquetipo, emparejamiento, si empieza primero o segundo, rango de turnos, fecha de la fuente y nivel de confianza. Si hay opiniones distintas, no las aplastes en una sola. Déjalas como varias políticas candidatas.
El objetivo de meter sabiduría humana en la IA no es “obedecer siempre lo que dicen los humanos”. Es hacer que busque en una dirección un poco más lista.
5. Una prueba A/B justa hace resolver “el mismo problema”
Si comparas una IA vieja con una nueva, no puedes cambiar los robos de cartas.
Si la IA vieja recibe una mano horrible y la nueva roba perfecto, es normal que la nueva parezca fuerte. Para eso se usan semillas aleatorias.
Con la misma seed, en principio puedes reproducir las mismas condiciones aleatorias. Además, también cambias quién empieza primero y quién segundo.
seed 001: IA vieja primero / IA nueva segundo
seed 001: IA nueva primero / IA vieja segundo
seed 002: IA vieja primero / IA nueva segundo
seed 002: IA nueva primero / IA vieja segundo
...
Así puedes acercar la razón de “la IA nueva ganó” a una diferencia de decisiones, no a la suerte.
Al mismo tiempo, registra más cosas además del winrate.
- Letales no vistos
- Cartas quemadas de la mano
- Tablero bloqueado
- Mal uso de puntos de evolución
- Uso temprano de cartas clave
- Diferencias en mulligan
- Respuestas fuertes del rival que la IA no vio
Sirve para detectar casos de ganó, pero jugó como tonta.
6. 2.016 partidas no es un número sagrado. Es solo una multiplicación
No hay ningún misterio en “¿por qué 2.016 partidas?”.
En este plan A/B, por ejemplo, salió de este presupuesto de pruebas.
56 condiciones de emparejamiento
× 18 seeds
× 2 pares con primero/segundo invertidos
= 2.016 partidas
Lo importante no es el número 2.016. Lo importante es decidir primero qué quieres cubrir y cuánto, y que de ahí salga el número de partidas.
Por eso, en uso real conviene separar niveles.
- quick: decenas o cientos de partidas. Comprueba que no esté roto
- standard: unas 2.000 partidas. Compara políticas A/B y emparejamientos principales
- full: más de 10.000 partidas. Evalúa todo el entorno con más estabilidad
Si corres full desde el principio y luego descubres que la IA juega fatal, la GPU, la CPU y la factura de luz solo pueden decir “gracias por participar”.
7. Buscar el mejor mazo no es probar todas las combinaciones de 40 cartas, sino aumentar buenos candidatos
Probar por fuerza bruta todas las combinaciones de un mazo de 40 cartas no es realista. Por eso, primero usa como semillas mazos fuertes reales o mazos de torneos.
Desde ahí, genera cambios como estos.
- Cambiar 1 carta
- Cambiar 2 cartas
- Cambiar 3 cartas
- Cambiar cantidades de cartas
- Sustituir por cartas con el mismo papel
- Añadir cartas técnicas contra un mazo concreto
- Cambiar paquetes completos
La evaluación tampoco puede quedarse solo en el winrate medio.
Puntuación total = winrate medio + resistencia a malas rachas + estabilidad al empezar primero/segundo + mejora de emparejamientos malos
Por ejemplo, aunque el promedio total sea 62%, si solo gana 20% contra un rival popular, puede morir según el entorno. Y aunque el promedio sea 58%, si el peor emparejamiento está en 45%, puede ser más fácil de usar en partidas reales.
Por eso, el resultado no debe decir “las 40 cartas más fuertes del universo”. Debe decir “las 40 cartas que mejor funcionaron dentro de esta base de cartas, esta política de IA, esta proporción de meta y este conjunto de candidatos”.
La ciencia no necesita inflar resultados. Necesita escribir las condiciones.
8. Una función de diagnóstico debe devolver por qué actúa así, no solo “winrate X%”
Lo realmente útil no es solo una tabla de winrates.
Si el usuario mete sus 40 cartas, sería potente devolver esto por cada líder o arquetipo rival.
- Winrate estimado e incertidumbre
- Diferencia entre empezar primero y segundo
- Cartas que conservar en mulligan, cartas que devolver y keeps condicionales
- Objetivos de inicio, medio y final de partida
- Principales rutas de victoria
- Cartas que conviene guardar
- Prioridad de eliminación
- Cuándo usar evolución y super evolución
- Respuestas fuertes del rival en el próximo turno
- Candidatos a letal en 2 o 3 turnos
- Errores comunes
- Rutas alternativas
- Cartas candidatas para cambiar
Es decir, no basta con acabar en “este mazo es débil”. Hay que diagnosticar dónde está perdiendo.
Ahí aparece el valor de un entrenador con IA.
9. El caso Royal 79,8%: quizá “bajar y pegar” también era fácil para la IA
Este fue el fallo más interesante.
Cuando corrimos muchas partidas con una IA fija, Royal salió anormalmente fuerte y Witch anormalmente débil.
Una hipótesis posible es que cuanto más simple es un mazo, más fácil lo maneja una IA inmadura.
Si Royal podía funcionar más o menos así:
¡Bajo seguidor!
¡Tomo el tablero!
¡La cara está libre!
¡Pego!
¡Gané!
mientras Witch hacía algo como esto:
¿Pieza de combo? ¡Se puede jugar ahora! ¡La juego!
¿Evolución? ¡Ahora se vuelve más fuerte! ¡La uso!
¿Límite de mano? ¡Ni idea!
¿Dentro de 3 turnos? ¡Que se encargue mi yo del futuro!
entonces claro, Royal termina con corona.
Este fenómeno no prueba que “Royal sea de verdad el mazo más fuerte del meta”. Muestra que la carga mental para la IA cambia según el mazo.
Por eso, cuando los resultados del simulador se alejan mucho de la realidad, antes de dudar del mazo conviene mirar esto.
- Si solo se debilitan los mazos que necesitan plan a largo plazo
- Si entiende el valor de guardar piezas de combo
- Si puede conservar evolución para el futuro
- Si sabe gestionar mano y espacios del tablero
- Si puede prever respuestas del rival
Aunque el mejor resultado de muchas partidas sea descubrir “¿esta IA solo sabe jugar Royal en modo bruto?”, no es un fracaso. Cuando encuentras dónde está roto algo, la investigación avanza.
10. Deja todo listo para correrlo cuando cambie el entorno: la forma final es un “laboratorio”
El objetivo final no es una broma de un solo pack.
Guarda la rotación actual como un Environment.
Environment 8
- card snapshot
- legal card pool
- engine version
- policy version
- meta decks
- human knowledge
- simulation results
Cuando llegue un pack nuevo, crea Environment 9 y calcula las diferencias.
- Cartas nuevas
- Cartas que salen de rotación
- Cambios de habilidades
- Cartas prohibidas o limitadas
- Nuevos arquetipos
- Cambios necesarios en el motor
- Cambios en la proporción del meta
Después recalcula solo las partes afectadas.
Si solo cambió la proporción del meta, vuelve a sumar los resultados existentes. Si un mazo incluye cartas nuevas, vuelve a simularlo. Si hay cartas sin soporte en las reglas, detén su ascenso. Justo después de una expansión, usa listas teóricas. Cuando se junte información de partidas reales, actualiza al meta observado.
El flujo completo queda así.
Base oficial de cartas
↓
Fijar el conjunto de cartas legales
↓
Convertir torneos y mazos públicos en candidatos
↓
Convertir conocimiento humano en pistas de política
↓
Duelos masivos y justos entre CPUs
↓
Mejorar poco a poco las 40 cartas
↓
Reevaluar todos los emparejamientos
↓
Winrate + malas rachas + diagnóstico de errores
↓
Guardar en GitHub como snapshot del entorno
↓
Actualizar solo diferencias cuando llegue una expansión
Lo más importante al crear un simulador de juegos de cartas con IA no es sacar números que parezcan fuertes.
Es poder seguir todo: con qué reglas, qué IA, qué base de cartas, qué seed y qué entorno salió ese número.
Más que correr 10.000 partidas, importa poder reproducir 1 partida. Más que gritar “es el más fuerte”, importa escribir las condiciones. Más que fingir que la IA es lista, importa que se note cuando la IA hace tonterías.
Y si Royal gana cerca del 80%, duda al menos una vez.
“¿Esta cosa cree que el juego va solo de bajar cartas y pegar?”
