PAC1 – IA wandering, patrolling y fleeing
Desarrollando IA para Videojuegos en Primera Persona con Unity: Proyecto PAC 1
En esta entrada, comparto la experiencia de desarrollo de la PAC 1 de IA para videojuegos en primera persona, donde trabajé en la creación de un escenario con agentes autónomos utilizando Unity y su sistema de Visual Scripting. Este proyecto fue mi primer contacto tanto con Visual Scripting como con la creación de IA para personajes en un entorno 3D. Si te interesa el desarrollo de inteligencia artificial para videojuegos, este artículo resume las principales etapas y desafíos del proyecto.
1. Creación del Escenario
Para comenzar, construí el escenario utilizando ProBuilder, una herramienta de Unity que permite realizar el greyboxing del nivel de forma rápida y sencilla. Esto me facilitó establecer la base del entorno y visualizar los movimientos de los agentes en el mapa. Opté por usar una cámara con perspectiva ortográfica que muestra todo el nivel, además de añadir un script que oculta ciertos objetos para resaltar los movimientos de los agentes.
¿Por qué no una vista en primera persona? Aunque el título de la práctica sugiere un juego en primera persona, no era necesario un personaje jugable en esta etapa, así que consideré que esta perspectiva sería más práctica para el ejercicio.
2. El Agente Fantasma
El agente fantasma fue el primer agente autónomo que implementé. Utilicé Visual Scripting (anteriormente conocido como Bolt) para programar un comportamiento aleatorio que le permitiera moverse de forma natural por el mapa. Algunas de sus funcionalidades incluyen:
- Desplazamiento Aleatorio (Wandering): El fantasma se mueve de forma aleatoria, realizando pausas con una probabilidad del 35% para darle un efecto más realista.
- Retorno al Centro: Para evitar que el fantasma quede bloqueado en las esquinas del mapa, añadí un código que detecta la distancia hasta los bordes. Si se acerca demasiado, redirige su movimiento hacia el centro.
3. El Agente de Seguridad
Para el agente de seguridad, implementé una máquina de estados que controla las transiciones entre patrullar y huir. Este agente patrulla constantemente el mapa y, si detecta al fantasma en un radio determinado, entra en modo de huida. Sus funcionalidades principales son:
- Patrullaje (Patrolling): El agente sigue una ruta fija y hace una pausa en cada punto de patrulla para simular cambios de animación.
- Huida (Fleeing): Si el fantasma entra en su radio, el agente crea un vector en dirección opuesta al fantasma para huir rápidamente.
- Transición entre estados: Si el agente logra escapar del fantasma, reanuda su patrullaje en el punto más cercano de su ruta, evitando así volver al área de peligro.
Reflexiones Finales
Este proyecto me ha permitido familiarizarme con herramientas como ProBuilder y Visual Scripting, además de explorar conceptos de IA para videojuegos. La ayuda de ChatGPT ha sido fundamental para resolver dudas y estructurar el flujo de trabajo con Visual Scripting, especialmente en la implementación de nodos y máquinas de estados. Esta experiencia ha sido una gran introducción al desarrollo de IA en videojuegos y me motiva a seguir desarrollando mis habilidades en este campo.
Webgrafía
- ProBuilder en Unity – Guía oficial
- Tutorial NavMesh en Unity por Brackeys
- Tutorial de Unity Visual Scripting