6. Añadiendo enemigos con inteligencia artificial.

Sin valoraciones

6. Añadiendo enemigos con inteligencia artificial.

Unity3d incorpora desde versiones anteriores un sistema de pathfinding formado por mallas de navegación denominado “navmesh”, sin embargo, este sistema está enfocado a juegos más complejos donde hay una gran cantidad de objetos moviéndose de forma dinámica. En nuestro caso al tratarse de un juego de tipo puzle con pocos objetos en movimiento y un movimiento muy básico sobre una matriz, resulta ineficiente utilizar este sistema de pathfinding. Por ello, utilizaremos algoritmo A* [Bourg y otros, 2004] implementado por nosotros para dotar de inteligencia a los enemigos. La implementación de este algoritmo está descrita en el Anexo 6.1.

Partiendo del algoritmo A* implementado, los enemigos se moverán por estados (up, down, left, right) al igual que el personaje y demás elementos dinámicos del escenario. La lógica para moverse será comprobar si existe un camino hasta el personaje y en caso afirmativo lo seguirá, y en otro caso se moverá de forma aleatoria. En el esquema de la figura 6.1 se detalla la lógica del enemigo.

6. Añadiendo enemigos con inteligencia artificial.

Figura 6.1. Diagrama de la lógica del enemigo.

A continuación explicaremos el código perteneciente al método “Update” que se encargará de aplicar el diagrama anterior. Los métodos auxiliares están desarrollados en el Anexo 6.2.

6. Añadiendo enemigos con inteligencia artificial.

Figura 6.2. lógica del enemigo no inteligente.

En la figura 6.2 se describe el código que se encarga de la lógica cuando el enemigo no es inteligente (será su estado inicial). Comprobamos si existe un camino independientemente de si ha cambiado la posición del jugador porque puede darse el caso que una piedra u otro objeto que obstaculizase el camino ya no lo obstaculice. Para darle más realismo y evitar que un enemigo pueda perseguir al jugador desde una punta a otra del mapa, sólo lo perseguirá si está a un número máximo de movimientos del jugador.

videojuegos

6. Añadiendo enemigos con inteligencia artificial.

Figura 6.3. Lógica del enemigo inteligente.

En la Figura 6.3 se muestra el código de la lógica cuando el enemigo es inteligente. En este caso solo generamos un nuevo camino A* si el jugador ha cambiado de posición para que los objetos dinámicos como piedras afecten al enemigo y puedan matarlo si caen sobre él. Si sigue existiendo un camino, extraemos el siguiente nodo y calculamos el estado al que se tiene que mover.

Compártelo en tus redes

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Valore este curso

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumimos que estás de acuerdo. VER