Breve introducción divulgativa a
la IA en Videojuegos
los agentes interactivos
Disclaimer
Yo
Yo
Yo
The Game Kitchen
The Game Kitchen
Algunos de nuestros juegos…
• Rotor’Scope
https://www.youtube.com/watch?v=_EuxqcJgY6s
• El códex del peregrino
https://www.youtube.com/watch?v=zeIvEIjaXSs
• The Last Door
https://www.youtube.com/watch?v=7gP4ZqUuww0
https://www.youtube.com/watch?v=jefmPVemUJI
IA en videojuegos
IA en Videojuegos
• De GOFAI, a robótica, y juegos
Simbólico
GOFAI Robótica
«Fuzzy»
Videojuegos
IA en Videojuegos
• Concepto muy amplio
– Animación
– Lógica de juego
– Movimiento
– No necesariamente GOFAI
• Difícil de acotar
• Video descriptivo en 3, 2 ,1…
Ejemplos
• Oponente en juego
de mesa
• Animales
• Soldados
• Director de juego
• Tutor
• Comandante
• Compañero
• Extra
• Conductor
• Matchmaker
Agentes Interactivos
(AI)
Ahora IA es AI y AI es IA
Agentes Interactivos
• El concepto de IA en videojuegos se desvirtúa
• Todo depende del dominio de aplicación
Comportamiento
de un soldado
IA
Diseño
Arte
Testing
Agentes Interactivos
• No usar IA cuando queremos hablar de dominio
de aplicación
• La IA de videojuegos no está muy relacionada con
la IA real
– La implementación de soldados enemigos no están
muy relacionado con IA real.
• Se trata de que IA en videojuegos sea divertida
– Se trata de que los oponentes de un juego de tablero
sean divertidos
Agentes Interactivos
Agente
Inputs Outputs
datos
hechos
info
acciones
ordenes
contenido
Oponente en juego de mesa
Oponente en juego de mesa
Entrada
• Estado del tablero
• Indicador del turno
• Tiempo restante
Salida
• Movimiento
Animales
Animales
Entrada
• Geometría/estrutura
del terreno
• Puntos de interes
• Entidades cercanas
Salida
• Animación
• Movimiento
Enemigo
Enemigo
Entrada
• Geometría del nivel
• Posición del jugador
• Estado del
grupo/escuadra
Salida
• Movimiento
• Animación
• Voz
Director de juego
Director de juego
Entrada
• Estado de los
jugadores
• Progresión en el nivel
Salida
• Ajuste de dificultad
• Peticiones de
Spawning
Generador de terreno
Generador de terreno
Entrada
• Semilla
• Posición del jugador
Salida
• Trozos de terreno
• Entidades a spawnear
Tutor Interactivo
Tutor Interactivo
Entrada
• Progresión
• Estado del puzzle
• Capacidades
adquiridas
Salida
• Pistas en forma de
texto
• Pistas visuales
Compañero
Compañero
Entrada
• Posición del jugador y
su estado
• Entidades cercanas
• Estrutura del terreno
Salida
• Movimiento y
animación
• Acciones de apoyo
• Lineas de diálogo
Comandante
Comandante
Entrada
• Estado de tu base
• Posición de las
escuadras
• Unidades y edificios
enemigos
Salida
• Ordenes de
construcción
• Asignación de
unidades
• Ordenes a las
escuadras
Siendo algunos agentes tan dispares…
¿Existe alguna manera de reutilizar
algo?
Arquitectura de los AI
Arquitectura
• Fases de computación. Conceptuales (GOFAI)
Sense Think Act
Arquitectura
Arquitectura
• No siempre están explicitas en el código
• En la practica sería más así
Arquitectura
• Funcional. En capas.
Animaciones
Físicas y colisiones
Navegación
Comportamientos
Arquitectura
• Una capa es responsable de gestionar todos
los cálculos e información para una
funcionalidad específica en el motor
– Ejemplo: Físicas
• Concuerda más con la estructura del código
• Más fáciles de ver las interdependencias
Arquitectura
• Más fáciles de mantener
• Se pueden añadir y quitar más fácilmente
• Mas «multithreadable»
– Y más «corrutinizable»
Arquitectura
Compañero
Arquitectura
Arquitectura
Sense
Think
Act
Arquitectura
FSMBT
HTN
Arquitectura
• O incluso..
Animaciones
Físicas y colisiones
Navegación
Comportamientos
Behavior Trees
¿Cómo encaja todo esto en un juego?
¿O en un motor moderno?
Arquitectura basada en componentes
Arquitectura basada en componentes
• Los agentes son entidades «vacías» a rellenar
con componentes
– ¿Qué es un componente?
• Interfaces del agente para acceder a una
funcionalidad del motor
– «Llévame al punto [0.0, -5.0, 7.2]»
• Contienen información local del propio agente
– Ej: su posición actual
Arquitectura basada en componentes
Animaciones
Físicas y colisiones
Navegación
Comportamientos
Componentes Sistemas
Arquitectura basada en componentes
• El sistema contiene la información común a
todos los agentes
– «Este es el grafo de navegación global»
• Centraliza todos los calculos para todos los
agentes
– «Cálcula todas las peticiones de caminos que has
recibido»
Arquitectura basada en componentes
• Más caché friendly 
• Más fácil de gestionar los cálculos 
• Más difícil de implementar 
– Puedes ahorrarte el sistema, y hacer componentes
más «gordos»
– En móviles y consolas es conveniente tener el
sistema centralizado
Ejemplo de real…
Recapitulando
Recapitulando
• La IA en videojuegos no es IA al uso.
– El test de Turing es la diversión
• Agentes Interactivos
– Tareas muy dispares, no sólo es un oponente
– El flujo de información y control va y viene,
muchas interdependencias
• STA no es la manera más adecuada de
conceptualizarlos
• Arquitectura basada en componentes
Q&A
¡Muchas gracias!

Iaai

Notas del editor

  • #44 Animación: 1- Posture 2- Blending/Transitions 3- Mover los huesos. Físicas: 1- El personajese representa por una cápsula. Paredes a su alrededor 2- Que fuerzas tiene que aplicar Navegación: 1- Grafo del escenario (conectividad) 2- Camino 3- Siguiente paso OJO: puede no tener output explicita, puede enviársela a otras Comportamiento: Las X son distintos destinos Elige el siguiente destino al que moverse
  • #45 Sensing y acting el los niveles inferiores El thinking va más en los comportamientos
  • #50 Componente: funcionalidad modular
  • #51 Componente: funcionalidad modular Sistema:
  • #52 Componente: funcionalidad modular
  • #53 Componente: funcionalidad modular