Actualmente estoy trabajando en un juego ambientado en Rusia en 1917, en plena guerra civil. El jugador encarna a los bolcheviques, pero necesito una inteligencia artificial que controle a los ejércitos blancos, las fuerzas opuestas a los bolcheviques que intentan recuperar el control del país.
¿El objetivo del juego? Desplazar las tropas, conquistar ciudades estratégicas y enfrentarse al enemigo. Para que esto resulte interesante, la IA de los ejércitos blancos debía ser capaz de tomar decisiones militares coherentes.
El problema: GDevelop, el motor que utilizo para producir el juego, no gestiona de forma natural inteligencias artificiales complejas. Por tanto, tuve que encontrar un método fiable para que la IA funcionara paso a paso sin provocar errores.
La IA de los ejércitos blancos: una estrategia militar por etapas
En mi juego, el ejército blanco debe actuar por etapas:
- detectar las ciudades libres que puede conquistar;
- evaluar la amenaza bolchevique cercana;
- decidir si atacar o reforzarse;
- desplazar sus tropas de forma inteligente.
Para que todo funcione correctamente, he establecido un método lógico y bien estructurado. Así es como la IA toma sus decisiones:
- comienza creando un círculo de detección invisible alrededor de cada una de sus ciudades y unidades;
- si un soldado enemigo entra en contacto con uno de estos círculos, significa que está cerca y representa una amenaza;
- la IA identifica entonces las tropas más próximas a ese enemigo y les da la orden de atacarlo;
- si no se detecta ningún enemigo, la IA envía sus unidades a conquistar una nueva ciudad para ampliar su territorio.
![]()
El icono del juego «Russia 1917» utilizado en el momento de publicación de este artículo.
La trampa clásica de GDevelop: todo se ejecuta al mismo tiempo
Al principio, había escrito mi IA de esta manera:
- crear círculos de detección alrededor de las ciudades y las tropas;
- pasar a la etapa siguiente para identificar a los enemigos;
- pasar a la etapa siguiente para elegir una acción;
- pasar a la etapa siguiente para desplazar las tropas.
En teoría, parece limpio. ¿En la práctica? Un desastre.
¿Por qué? Porque decir «etapa = 2» no significa que la etapa 1 haya terminado realmente. Por tanto, la IA empezaba a hacerlo todo al mismo tiempo: crear círculos, analizar a los enemigos y desplazar las tropas durante un único fotograma del juego.
La verdadera solución: validar cada acción antes de avanzar
Este fue el gran descubrimiento que hice al trabajar en esta IA:
Nunca hay que limitarse a cambiar una variable para avanzar en un proceso. Siempre hay que crear una condición que compruebe que la acción anterior ha terminado correctamente.
En la práctica, en lugar de hacer esto:
❌ «Si etapa = 1, entonces haz esto y pasa a la etapa 2».
Hago esto:
✅ «Si la etapa 1 ha terminado —por ejemplo, si todos los círculos se han creado correctamente—, solo entonces pasamos a la etapa 2».

La IA en acción: creación de círculos de detección, análisis de la situación, toma de decisiones y ejecución de órdenes.
Por qué este método es esencial
Con este enfoque, la IA no se precipita y funciona de forma fluida. Cada acción termina por completo antes de pasar a la siguiente, lo que evita los errores en los que todo se ejecuta al mismo tiempo.
Y eso lo cambia todo:
- la IA parece más inteligente porque reacciona progresivamente a lo que ocurre;
- desaparecen los errores en los que todas las acciones se activan simultáneamente;
- el juego se vuelve más estratégico porque los ejércitos blancos responden realmente a las acciones del jugador.
Conclusión: una técnica que conviene recordar para GDevelop
Si quieres crear una IA eficaz en GDevelop, o incluso estructurar un algoritmo complejo, recuerda esto:
Nunca hagas simplemente «etapa = 2». Comprueba siempre que la etapa 1 haya terminado correctamente antes de continuar.
Esta es la clave para evitar que GDevelop lo ejecute todo al mismo tiempo y para crear una IA fluida, lógica y estratégica.
Ahora que he conseguido estructurar este sistema, podré añadir todavía más inteligencia a los ejércitos blancos. Quizá incluso dotarlos de estrategias más avanzadas, como ataques coordinados o retiradas tácticas…