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.

 

La adición de enemigos con inteligencia artificial (IA) en un juego puede hacer que la experiencia sea más desafiante e inmersiva para los jugadores:

1. Planificación:

  • Define claramente el comportamiento deseado de los enemigos. ¿Deben atacar al jugador, patrullar, esquivar obstáculos, etc.?

2. Sistema de Comportamiento:

  • Implementa un sistema de comportamiento basado en estados o máquinas de estados finitos para los enemigos. Define estados como «Buscar al Jugador», «Atacar», «Patrullar», etc.

3. Sensores y Percepción:

  • Dale a los enemigos la capacidad de percibir su entorno y al jugador. Utiliza sensores para detectar la presencia del jugador, obstáculos, u otros enemigos.

4. Algoritmos de Pathfinding:

  • Implementa algoritmos de pathfinding (por ejemplo, A* o navegación de Unity) para que los enemigos puedan planificar rutas eficientes hacia el jugador o a ubicaciones estratégicas.

5. Sistema de Toma de Decisiones:

  • Crea un sistema de toma de decisiones que permita a los enemigos elegir acciones en función de su estado actual y de la información percibida.
  • Utiliza técnicas como árboles de comportamiento, máquinas de estados o algoritmos de toma de decisiones.

6. Inteligencia Colectiva (Opcional):

  • Si tienes múltiples enemigos, considera la inteligencia colectiva. Permite que los enemigos colaboren, se comuniquen y tomen decisiones en grupo.

7. Aprendizaje de Máquina (Opcional):

  • Explora técnicas de aprendizaje de máquina para mejorar la adaptabilidad de la IA. Por ejemplo, podrías implementar un algoritmo de aprendizaje por refuerzo para ajustar el comportamiento de los enemigos a lo largo del tiempo.

8. Reacción a Eventos del Juego:

  • Haz que la IA reaccione a eventos del juego, como la muerte de otros enemigos, cambios en la situación o la aparición de nuevos obstáculos.

9. Optimización del Rendimiento:

  • Optimiza el rendimiento de la IA para que no afecte negativamente el rendimiento general del juego. Usa técnicas como el culling o la limitación de la frecuencia de actualización.

10. Colisiones y Ataques:

  • Implementa la lógica de colisiones y ataques. Define cómo los enemigos detectarán y responderán a las colisiones con el jugador.
  • Añade animaciones y sonidos para hacer los ataques más impactantes.

11. IA para Enemigos Específicos (Opcional):

  • Personaliza la IA para enemigos específicos. Puedes tener enemigos con habilidades únicas o comportamientos especiales.

12. Pruebas y Ajustes:

  • Ejecuta el juego y realiza pruebas en la IA de los enemigos. Ajusta parámetros y lógica según el feedback obtenido durante las pruebas.

13. Simulación y Debugging:

  • Implementa herramientas de simulación y debugging para comprender mejor el comportamiento de la IA y facilitar la identificación de problemas.

14. Escalabilidad:

  • Diseña la IA con la escalabilidad en mente. Debería ser fácil agregar nuevos comportamientos o ajustar parámetros sin afectar negativamente la estabilidad del sistema.

15. Documentación:

  • Documenta la lógica de la IA para futuras referencias y colaboración.

16. Iteración:

  • Realiza iteraciones en la IA a medida que evoluciona tu juego. La mejora continua es esencial para adaptarse a las necesidades cambiantes del diseño del juego.

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. Los campos obligatorios están marcados con *

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