Cómo implementar una IA enemiga en Unity3D que aprende

En Unity3D, no creará una verdadera IA de nivel universitario que aprenda. No porque sea imposible, sino porque es innecesario y funciona muy mal (los casos extremos de IA pueden tomar días para tomar decisiones mientras filtran / clasifican la información). Una IA demasiado poderosa también aumentará dramáticamente los requisitos de hardware en tu juego.

Cuando se trata de videojuegos, lo único que es importante es la ilusión de inteligencia (en términos de IA). Un agente de IA débil puede arruinar el juego, simplemente al parecer poco realista. Un agente de IA fuerte también puede arruinar el juego (¿alguna vez le dispararon a través de paredes en algunos juegos?)

El truco consiste en diseñar cuidadosamente todo lo necesario para que su IA funcione bien. ¿Atraviesan el nivel? Deberá comenzar a aprender su lógica gráfica para poder implementar algoritmos de búsqueda de ruta (Dijkstra’s / A * por ejemplo). Una IA que maniobra apropiadamente es un gran primer paso para crear ese “realismo”.

Después de eso, podrías considerar las interacciones de la IA con el jugador. Un diagrama de árbol es fantástico para ramificar las rutas de diálogo. El realismo aquí proviene de qué tan bien se desempeñan tus escritores (o qué tan bien escribes). A través de respuestas apropiadas, puede brindarle a los agentes la ilusión de inteligencia. Recomiendo utilizar XML o JSON para lograr esto.

Por último, pero probablemente lo más importante, creo que todos los que intenten implementar una inteligencia artificial en un videojuego se beneficiarán al aprender y cómo implementar máquinas de estados finitos .

Cada vez que necesita agregar una nueva capa de realismo a sus agentes, simplemente diseña un nuevo estado para que se encuentren. ¿Los soldados de la IA se topan sin pensar en los disparos? Solución fácil, cree un estado para ellos en el que, en determinadas circunstancias, flanquearán en lugar de acercarse (es decir, encontrar un camino más realista).

Espero sinceramente que esto ayude a dirigir su curso en desarrollo hacia una meta realista, obtenible y rentable.

Bueno, la IA enemiga es un tema muy complicado. Incluso con una experiencia extrema en codificación, hacer una IA que “aprenda” es casi imposible. Sin embargo, puede situarse por acciones del jugador.

Por ejemplo, si el enemigo tiene un árbol de comportamiento que dicta qué acciones puede y no puede preformar (buscando en un casillero, por ejemplo), ciertas acciones podrían “desbloquearse” cuando el jugador realiza una acción en el juego. Digamos que el jugador activa un botón, el comportamiento en el enemigo será “desbloqueado” y el enemigo ahora tendrá la capacidad de buscar casilleros.

Esto se hizo en Alien: Isolation y se explica mucho mejor que mi explicación en este video