¿Cómo Piensan los Enemigos de un Videojuego? [VIDEO]

Rogelio Valdés /
 
👾
Mira el Curso de Programación de Videojuegos en robinacademy.com/vg
 

Ultimamente he estado jugando mucho a Zelda Breath of the Wild y Hyrule Warriors Age of Calmity. Me gusta mucho pelear con los enemigos, tanto que ya me aprendí todos los patrones y entre más lo juego más me doy de lo sencillo que es su lógica. Es de hecho muy similar a los enemigos que programamos en el Curso de Programación de Videojuegos.

 

De niño me causaba mucha curiosidad saber como pensaban los enemigos de los videojuegos y hasta hace unos años se puso de moda el decirle Inteligencia Artificial, es realmente esto? Vamos a ver...

 

Vamos a tomar el ejemplo de este enemigo de Hyrule Warriors. Es un enemigo relativamente difícil de vencer y podría parecer muy "inteligente". Al pelear con Sooga, nos damos cuenta que normalmente intenta acercarse y luego inicia un ataque. Hay algunos ataques que lo dejan débil por unos segundos y nos permite destruir esta protección que tiene. Otros ataques son rápidos y no nos permiten atacar esta protección. Finalmente tiene ataques fuertes que podemos bloquear con alguno de los poderes de nuestra Sheika Slate.

notion image
 

¿Cómo decide el personaje que decisiones tomar? Podemos ver esto como un árbol de decisiones. La raíz de nuestro árbol es cuando inicia la batalla normalmente estos personajes reciben la instrucción de acercarse al jugador. Hasta que llegan a una distancia más cerca del jugador empiezan las ramas del árbol. Una rama del árbol le dice que haga el ataque con sus dos espadas que pone unos círculos morados. Y así cada rama del árbol representa un ataque diferente. Pero no puede hacer todos los movimientos al mismo tiempo, no puede tomar todas las ramas del árbol.

 
Arbol de Decisiones - Cada círculo es una acción diferente
Arbol de Decisiones - Cada círculo es una acción diferente
 

¿Cómo elegir que rama del árbol va a seguir?

 

Una manera muy sencilla es con el azar, tirando un dado, generando un número aleatorio, etc.

 

Te explico, imagínate que giramos una ruleta y dependiendo del lugar que caiga vamos a elegir una rama, o un ataque. Entonces puedo girarla 3 veces y las 3 veces coincidió que toca el mismo ataque, o bien puede tocar 3 ataques diferentes. Así es más difícil que podamos predecir al enemigo.

 
 

¿Es esta una inteligencia artificial? Pues parece que reacciona diferente cada vez pero realmente no aprende nada de nuestros errores o aciertos. No esta cambiando su estilo de batalla si lo pongo a pelear en un terreno diferente o con otro contrincante. Entonces esto no es una inteligencia artificial. Y la mayoría de los enemigos funcionan así, desde hace décadas hemos programado enemigos de esta forma. ¿Los podemos hacer más avanzados? Si, imagínate que yo modifico los espacios de esta ruleta para que sea más fácil que caiga un ataque u otro. Ahora cambiamos estos espacios dependiendo del terreno en el que se encuentre o de los ataques que esté lanzando el jugador. Ahí ya se hace más interesante, aunque sigue sin ser inteligencia artificial.

 

Hay juegos con enemigos más complejos con muchos árboles de decisiones y con movimientos muy específicos para cada situación pero como puedes ver aún los juegos más exitosos como Zelda utilizan este sistema sencillo. Esto nos dice mucho de como no necesitas que tu juego sea el más avanzado para que sea divertido.

notion image
 

Y ahora ¿qué si es una inteligencia artificial? Porque si existe y ya se está utilizando, una inteligencia artificial es un algoritmo que percibe su entorno, entiende lo que ocurre a su alrededor y puede adaptarse a reaccionar de la mejor manera para lograr su objetivo. El enemigo que acabamos de describir dijimos que no se adapta, por lo que no es realmente inteligente. Y este es un tema bien interesante, pero ese será un tema para otro video.

 

Si te interesó este tema sobre como funcionan los enemigos de un videojuego te invito al Curso de Programación de Videojuegos donde vemos exactamente como se traduce esto a código para que puedas programar tus propios enemigos.

 
👾
Mira el Curso de Programación de Videojuegos en robinacademy.com/vg

 

Continua con más contenido del blog

Ver más →