Introducci贸n
En este art铆culo vemos un prototipo de inteligencia artificial para enemigos en Unity.
Dichos enemigos estar谩n en distintos estados de acuerdo a lo que ocurra durante la partida. Los estados son 芦Guardia禄, 芦Buscando禄, 芦Atacando禄, 芦Cubri茅ndose禄.
La idea de este prototipo surgi贸 porque una persona me escribi贸 en los comentarios del canal preguntando c贸mo se podr铆a hacer que los enemigos te detecten, se pongan en alerta, avisen a los dem谩s y ataquen.
Para responder a su pregunta cree un proyecto en Unity proponiendo una aproximaci贸n al problema e hice un video explicando c贸mo funcionaba este prototipo de inteligencia artificial para enemigos. Lo puedes ver a continuaci贸n.
Descargar archivos del proyecto
Puedes descargar los archivos del proyecto para importar y ver en detalle los Scripts.
En la descarga tenemos un paquete de Unity que podemos importar haciendo clic derecho en la carpeta Assets y con la opci贸n Import Package > Custom Package.
Al importarlo tendremos todos los archivos del prototipo, en la carpeta Assets tenemos los Scripts, prefabricados y escenas que componen la soluci贸n. El enemigo inteligente es el Third Person Controller versi贸n inteligencia artificial de Standard Assets al cual se le aplica el Script enemigo que modela su comportamiento, esto hace que sea capaz de detectar al jugador, perseguirlo, dispararle y buscarlo en caso de que lo haya perdido de vista.
驴Qu茅 vamos a hacer con esto?
Por el momento se trata simplemente de un prototipo que hice en un fin de semana y que cumple con el problema que me plantearon. Sin embargo todo puede mejorarse, en base a este prototipo podemos crear un sistema m谩s complejo, mejorar el c贸digo, modularizar el c贸digo de manera mas coherente, crear un mejor modelo para el arma, separar el rango de visi贸n del Script Enemigo, mejorar en general los estados individuales.
驴Qu茅 es la Inteligencia Artificial?
Antes de empezar a explicar c贸mo funciona el prototipo me gustar铆a hablar un poco sobre el concepto de inteligencia artificial, vamos a acotar el alcance ya que hay varias definiciones.
En inform谩tica la inteligencia artificial hace referencia a un aut贸mata (o m谩quina) que es capaz de percibir su entorno y tomar decisiones apropiadas de acuerdo al comportamiento que se le haya programado.
En nuestro caso queremos crear enemigos inteligentes en Unity, as铆 que para hacerlo debemos pensar cu谩les son las caracter铆sticas fundamentales de un enemigo, su comportamiento y su manera de percibir el entorno.
Por supuesto debemos establecer l铆mites para el alcance de la inteligencia artificial para el enemigo, por ejemplo nuestro enemigo no ser谩 capaz de aprender de su entorno.