Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.
2. ● Para que un agente pueda moverse bien,
debe abrirse al mundo y percibir la realidad
Percepción 2
Motivación
“Poca observación y mucho razonamiento llevan al error.
Mucha observación y poco razonamiento llevan a la verdad” - Alexis Carrel
3. ● Según Millington, la percepción (conexión
entre el agente y el mundo
de juego) es lo que más
esfuerzo cuesta desarrollar y
depurar en IA para videojuegos
○ Sobre todo si construimos un sistema
de simulación de sentidos físicos
Percepción 3
Motivación
4. ● En los videojuegos más primitivos
apenas había “percepción” como tal
○ Ej. En los clones de Pong con oponentes
controlados por ordenador, la raqueta “sabe”
donde está la pelota y se mueve en consecuencia
● En los 90 aparecen los primeros sistemas de
simulación de sentidos físicos
○ En Goldeneye 007, los enemigos
podían “ver” a sus compañeros
muertos y se alarmaban por ello
Percepción 4
Hitos históricos “Antes de simular… intenta falsear”
5. ● Muchos personajes de videojuego en
realidad son omniscientes
○ Ej. Siempre “saben” donde está el jugador
○ El comportamiento, eso sí, se diseña para simular
la ilusión de que no saben nada y necesitan ver
○ Aunque el personaje pueda verte, sólo te
perseguirá si te acercas lo suficiente… fingiendo
que realmente no “te ha visto” hasta entonces
○ Esto está entre el Diseño y la IA, porque los
personajes no tienen sentidos, pero fingen tenerlos
Percepción 5
Hitos históricos
6. ● En títulos como Splinter Cell, Thief: The
Dark Project, y Metal Gear Solid, todo se
basa en el sigilo
○ Que los agentes inteligentes vean únicamente
objetos bien iluminados es la base de estos juegos
● Cada vez está más presente en los juegos…
○ Pronto veremos percepción
sensorial integrada también
en géneros como estrategia,
rol y plataformas (acción)
Percepción 6
Hitos históricos
7. ● Para simular los sentidos de un NPC
extendemos el
clásico mecanismo
de paso de mensajes
○ Ej. Un gestor de eventos simple puede notificar que
hay ruido a los NPCs que estén en una habitación
○ Para escalar y centralizar esto, surge la necesidad
de desarrollar un gestor sensorial
● Revisaremos técnicas para cada sentido
○ Vista
○ Oído
○ Tacto, olfato y otros Percepción 7
Gestión sensorial
SENSE MANAGEMENT
8. ● La solución obvia es la proyección de rayos
de toda la ida: ver si hay línea de visión
○ La vista no dobla esquinas, funciona recibiendo
fotones en línea recta y eso es muy característico
○ Habitualmente se ignora el hecho de que la luz
puede rebotar, que existen los espejos, etc.
● El problema de los rayos es que no escalan
muy bien y se vuelven casi intratables
● Además, si nos preocupa la precisión,
conviene implementar nosotros mismos los
detalles de nuestro gestor sensorial
Percepción 8
Vista
RAY CASTING
9. ● Debe ser sofisticado: el jugador se dará
cuenta si la vista del NPC sólo es “fingida”
○ Se utilizan conos de visión (220º en horizontal, 60º
para simular la atención; y 120º en vertical), así
como líneas de visión y distancias máximas de
visión (en relación al tamaño del objeto a detectar)
○ Es instantánea, pero no llega al infinito para que no
parezca tenga “demasiada
buena vista”; al igual que
ciertos juegos nos permiten
camuflarnos o escondernos
en zonas oscuras del entorno
■ Ej. Ghost Recon Percepción 9
Vista
10. ● No hace falta simular cómo rebotan las
ondas sonoras, se atenúan, se desplazan a
distinta velocidad según el medio, y llegan
a nuestros oídos...
○ Ej. Barrito de elefante vs. Chillido de murciélago
● A menudo simplemente
se avisa a todos los
personajes que
comparten localización
con aquello que produce el ruido
Percepción 10
Oído
11. ● Partimos de que un videojuego normal no
requiere estos sentidos ni en el jugador
● El tacto podría verse como ¿una colisión?
○ Un sistema de colisiones que “avise” al agente
● El olfato ‘virtual’ se ha
explorado
poco (Ej. Caza)
● Se podría probar a diseñar
para el gusto ‘virtual’ o sentidos ficticios
○ Ej. “Sentido arácnido” de Spider-Man Percepción 11
Tacto, olfato y otros
12. ● Ejemplo
Percepción 12
Modelo de gestión sensorial regional
* Un gestor sensorial basado en
regiones esféricas de influencia La modalidad hace referencia
a cada sentido (vista, oído, etc.)
13. Percepción 13
Ejemplo
* La
intensidad es
la fuerza
original de la
señal por la
atenuación
(valor < 1.0)
elevada a la
distancia que
hay entre esta
y el sensor
14. Percepción 14
Ejemplo
* sendSignals se
ejecuta en todos los
ticks, para
asegurarse de enviar
todas las
notificaciones que
debían recibirse en
este instante (o en
instantes
ligeramente
anteriores) * De instante anterior a
instante posterior
15. ● Interfaz y clases para modalidades concretas
○ Ej. La vista
Percepción 15
Ejemplo
* Recordad que es una interfaz, ¡ojo!
* Clase que implementará la interfaz Modality
16. ● Más interfaces para sensores y señales
○ Y estructura auxiliar para la cola de notificaciones
Percepción 16
Ejemplo
17. ● Es necesario trabajar con API de bajo nivel
● Raycast, que usa RaycastHit
○ Proyección de rayos de la simulación física
● Collider, que
usa Collision
○ Detección
de colisiones
entre
cuerpos
rígidos (o si
sólo es un
trigger, solapamiento entre objetos)
Percepción 17
Ejemplo en Unity
18. ● ¿Cómo funciona la vista en Splinter Cell?
A. Los agentes ven lo que esté en línea de visión
B. Los agentes sólo ven cosas que estén iluminadas
C. Los agentes ven gracias a un sistema de colisiones
D. Los agentes sólo ven los fotones simulados
● Desarrolla tu respuesta (en texto libre)
Percepción 18
Participación
19. * Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...