Inteligencia Artificial en Videojuegos Seminario de Videojuegos y Tecnologías Interactivas INCO,...
-
Upload
susana-merida -
Category
Documents
-
view
224 -
download
0
Transcript of Inteligencia Artificial en Videojuegos Seminario de Videojuegos y Tecnologías Interactivas INCO,...
InteligenciaInteligencia Artificial en Artificial en VideojuegosVideojuegos
Seminario de Videojuegos y Tecnologías Interactivas
INCO, Facultad de Ingeniería (UDELAR)Noviembre 2008
IA académicaIA académica
IA en videojuegosIA en videojuegos
conceptos básicos de IAconceptos básicos de IA
motor de IAmotor de IA
IA académicaIA académica
definiciones de IAdefiniciones de IA
agentesagentes
test de Turingtest de Turing
campos de IAcampos de IA
aplicacionesaplicaciones
definiciones de IAdefiniciones de IA
"The exciting new effort to make computersthink . . . machines with minds, in the fulland literal sense" (Haugeland, 1985)
"[The automation of] activities that we associatewith human thinking, activities such asdecision-making, problem solving, learning...“ (Bellman, 1978)
"The study of mental faculties through theuse of computational models"(Charniak and McDermott, 1985)
"The study of the computations that makeit possible to perceive, reason, and act"(Winston, 1992)
"The art of creating machines that performfunctions that require intelligence when performed by people" (Kurzweil, 1990)
"The study of how to make computers dothings at which, at the moment, people arebetter" (Rich and Knight, 1991 )
"A field of study that seeks to explain andemulate intelligent behavior in terms ofcomputational processes" (Schalkoff, 1990)
"The branch of computer science that is Concerned with the automation of intelligentbehavior" (Luger and Stubblefield, 1993)
sistemas que piensan como humanos
sistemas que actúan como humanossistemas que actúan racionalmente
sistemas que piensan racionalmente
test de Turingtest de Turing
• Planteado en 1950 por Alan Turing en su paper “Computing Machinery and Intelligence”.
• Proponía cambiar la pregunta “¿pueden las máquinas pensar?” por “¿pueden las máquinas hacer lo que nosotros hacemos?
• Una máquina es inteligente si un interlocutor no puede distinguir sus respuestas de las de un humano.
agentesagentes
• Es uno de los enfoques más comunes de la IA.
• La define como el estudio y diseño de agentes inteligentes, considerados como sistemas que perciben su entorno y toman acciones para maximizar sus posibilidades de éxito.
• Los agentes más sencillos son los que resuelven un único problema específico.
• Esto permite a los investigadores centrarse en problemas aislados.
campos de IAcampos de IA
razonamientorazonamiento
aprendizajeaprendizaje
movimiento y manipulaciónmovimiento y manipulación
procesamiento de leng. naturalprocesamiento de leng. natural
percepciónpercepción
planeamientoplaneamiento
inteligencia socialinteligencia social
inteligencia generalinteligencia general
creatividadcreatividad
aplicacionesaplicaciones
IA en videojuegosIA en videojuegos
particularidadesparticularidades
metasmetas
IA en los distintos génerosIA en los distintos géneros
particularidadesparticularidades
• Si se usara el enfoque de Turing, se diría que un juego posee IA únicamente cuando el jugador no puede distinguir un adversario humano de uno controlado por el sistema.
• Sin embargo, en videojuegos, se habla de IA para referirse a la lógica que maneja el comportamiento de los NPCs.
• No se busca obtener la IA más potente, sino maximizar el entretenimiento brindado por el juego.
• La cantidad y calidad de IA necesarias dependen del tipo de juego.
• Debe tomarse en cuenta desde la etapa de diseño.
metasmetas
Independientemente del tipo de juego, se deben buscar algunas metas comunes:
• Presentar un reto para el jugador
• No hacer cosas estúpidas
• Ser impredecible
• Contribuir a la historia
• Construir un mundo creíble
metasmetas
Básicamente, si el jugador cree que el juego es inteligente, el trabajo está hecho.
IA en cada género: racingIA en cada género: racing
• IA básica, en muchos casos se limita al control de los oponentes para seguir un camino óptimo a lo largo de la pista.
• Los avances han sido mucho menores que en el área de gráficos.
• Algunos títulos presentan innovaciones que mejoran el gameplay (Total Immersion Racing, Forza Motorsport).
IA en cada género: RTSIA en cada género: RTS
• El ritmo más lento permite dedicar más procesador a la IA.
• Básicos: comportamiento predeterminado, tareas de alto nivel y planeamiento estratégico.
IA en cada género: aventuraIA en cada género: aventura
• Aunque pueden haber escenas de acción, el juego se centra básicamente en los puzzles y la acción es bastante lineal.
• Se pueden usar máquinas de estado finitas para definir el comportamiento de los NPCs, agregando habilidades básicas de pathfinding para encontrar y perseguir al PC.
IA en cada género: acciónIA en cada género: acción
• Los enfrentamientos son la clave del juego, por lo que muchas veces se requiere IA más sofisticada.
• Se utilizan los mismos mecanismos básicos que en el género de aventura, pero se busca innovar más.
• Se han utilizado técnicas como algoritmos genéticos y redes neuronales para “entrenar” a los oponentes.
IA en cada género: RPGIA en cada género: RPG
• Es probablemente el género que permite aplicar mayor variedad de técnicas de IA.
• FSM (tanto en PCs como en NPCs), pathfinding, scripts modificables por el jugador, etc.
conceptos básicos de IAconceptos básicos de IA
autómatas finitosautómatas finitos
pathfindingpathfinding
aprendizajeaprendizaje
coordinación de NPCscoordinación de NPCs
movimientomovimiento
lógica fuzzylógica fuzzy
autómatas finitosautómatas finitos
• Una de las herramientas más simples para implementar comportamiento de los NPCs.
• Se compone de un conjunto finito de estados y condiciones que llevan de un estado a otro.
• Sólo resuelve qué hacer en distintas situaciones, se deberán implementar otras técnicas para ejecutar cada acción.
autómatas finitosautómatas finitos
lógica fuzzylógica fuzzy
• No siempre la pertenencia a un estado es un valor booleano.
lógica fuzzylógica fuzzy
• Además, puede haber varios factores incidiendo en la conducta de un personaje.
• Por ejemplo, un jugador de fútbol decide qué hacer teniéndo en cuenta su posición relativa con respecto a otros jugadores, pero además debe actuar distinto dependiendo de qué equipo (o jugador) tenga la posesión de la pelota.
• En estos casos, se generan matrices de acción, y se calcula el nivel de pertenencia a cada estado.
lógica fuzzylógica fuzzy
• Para el ejemplo del jugador:
Pathfinding
• Se refiere a encontrar un camino entre dos puntos venciendo obstáculos como pueden ser paredes, agua, puertas, etc.
• Es utilizado en una amplia variedad de juegos.
Algoritmo A* (star)• Definir el área de trabajo
NODOS
DESTINO
ORIGEN
ZONA INTRANSITABLE
Algoritmo A* (star)• Referencia de colores
PUNTERO AL PADRE
LISTA CERRADA
LISTA ABIERTA
Algoritmo A* (star)• Puntuando el camino
A cada cuadro se le da un peso F que se calcula de la siguiente forma:
F = G + H
dondeG = el coste de movimiento para ir desde un cuadro seleccionado en un momento dado a un cierto cuadro de la rejilla. H = el coste de movimiento estimado para ir desde ese cuadro de la rejilla hasta el destino final (Heurística)
Algoritmo A* (star)• Búsqueda
1. Añade el cuadro inicial a la lista abierta.2. Repite lo siguiente:
a) Busca el cuadro con el coste F más bajo en la lista abierta. Nos referimos a este como el cuadro actual.
b) Cámbialo a la lista cerrada
Algoritmo A* (star)c) Para cada uno de los 8 cuadros adyacentes al cuadro actual
Si no es transitable o si está en la lista cerrada, ignóralo. Si no está en la lista abierta, añádelo a la lista abierta. Haz que
el cuadro actual sea el padre de este cuadro. Almacena los costes F, G y H del cuadro.
Si ya está en la lista abierta, comprueba si el camino para ese es mejor usando el coste G como baremo. Un coste G menor significa que este es un mejor camino. Si es así, cambia el padre del cuadrado al cuadro actual y recalcula G y F del cuadro.
Algoritmo A* (star)d) Para cuando:
añadas el cuadro objetivo a la lista abierta en cuyo caso el camino ha sido encontrado, o
falles en encontrar el cuadro objetivo y la lista abierta esté vacía. En este caso no hay camino.
Algoritmo A* (star)
3. Guarda el camino. Muévete hacia atrás desde el cuadro objetivo, ve desde cada cuadro a su padre hasta que alcances el cuadro inicial. El camino seguido es el que buscas.
Algoritmo A* (star)• Sobre la implementación
1. Mantenimiento de la lista abierta:
Listas Listas ordenadas Heap (+ de 10 veces más rápido en caminos largos)
2. Otras unidades:
3. Mejorar la velocidad:
No considerar otras unidades en el código del pathfinding Código separado para el manejo de colisiones
Utilizar un mapa más pequeño o unos pocos personajes No buscar el camino para varios personajes al mismo tiempo Pathfinding A* de dos niveles Caminos precalculados incluidos en el juego
Algoritmo A* (star)
5. Variable de costo de terreno:
Diferenciar el terreno en base al costo de la superficie Caminos de menor costo puede significar recorrer una
distancia más larga. Mapas de influencia
6. Manejo de áreas inexploradas:
Si los personajes siempre saben que camino tomar puede resultar un tanto irreal.
Manejar información sobre el área que cada jugador ha explorado y considerar el resto del mapa como transitable hasta que se demuestre lo contrario.
4. Caminos más suavizados:
El camino más corto y de menor costo no tiene porque ser el más suavizado.
Penalizar cuadros donde el cambio de dirección es abrupto.
Introducción NPC’sIntroducción NPC’s
• Originalmente los NPC’s eran implementados mediante máquinas de estado finitas o “scripts”.
• Número determinado de acciones y reacciones previamente conocidas y programadas por el desarrollador.
• Estrecha jugabilidad, deja de ser entretenido.
Algunas definiciones…Algunas definiciones…
• Un NPC es un personaje de en juego que es controlado automáticamente por inteligencia artificial u otra técnica.
• Un agente autónomo es un sistema situado en un entorno de donde percibe información y sobre el cual actúa a lo largo del tiempo persiguiendo su objetivo.
• Difieren de un programa normal Pro-activos: No solo actúan ante la acción de
un usuario Persistentes: Continúan funcionando aunque
el usuario no interactúe con ellos.
Redes Neuronales Redes Neuronales ArtificialesArtificiales……
• Las RNA son dispositivos o software programado de manera tal que funcionen como las neuronas biológicas de los seres vivos.
• El objetivo es conseguir que las máquinas den respuestas similares a las que es capaz de dar el cerebro
• Las RNA están compuestas de muchos elementos sencillos que operan en paralelo.
• El diseño de la red está determinado mayormente por las conexiones entre sus elementos. Al igual que las conexiones de las neuronas cerebrales.
Redes Neuronales Redes Neuronales ArtificialesArtificiales……
• Las RNA pueden ser entrenadas para la solución de problemas que son difíciles para sistemas computacionales comunes o para el ser humano.
• Tipo de pesos Fijos Variables
• Tipo de aprendizaje Supervisado No supervisado
• Fases de operación Entrenamiento de la red. Recuperación de lo aprendido.
Aplicación a los NPC’sAplicación a los NPC’s……
• Necesidad de crear juegos más divertidos y de mayor vida útil.
• Se pueden crear juegos más realistas con comportamientos inteligentes.
• Se pretende que los NPC’s puedan ir aprendiendo en cada sesión de juego e interactuar con los escenarios virtuales de forma inteligente con un mínimo conocimiento inicial.
Áreas de influenciaÁreas de influencia……
1. Conocimiento, entendimiento y explotación del terreno.
Escondites o refugios Atajos Lugares de ataque estratégicos
2. Uso eficiente del trabajo en equipo Interacción de NPC’s para lograr un mismo
objetivo
3. Habilidad para cazar Habilidad de NPC’s para perseguir al jugador
4. Instinto de supervivencia Planificar los ataques
STEERING
• Necesario para la creación de agentes autónomos• Sistema situado en y parte de un entorno que siente ese
entorno y actúa sobre él, a través del tiempo, persiguiendo sus propios objetivos de forma que afecte lo que siente en el futuro.
• Maniobrabilidad (Steering) es la habilidad de moverse según lo que se encuentra en su entorno intentando cumplir un objetivo dado
FPS
• Uso extensivo de maniobrabilidad– Llegar a destino– Evitar obstáculos– Persecuciones– Huir– Etc…
STEERING
• Individuales• Grupales• Uso de un vector fuerza (Steering Force), masa,
posición y orientación.•Se calcula la fuerza necesaria que se debe aplicar para alcanzar el objetivo. Se la disminuye según la velocidad máxima y se aplica como aceleración
Comportamientos básicos individualesComportamientos básicos individuales
Búsqueda (Seek)Búsqueda (Seek)
Huir (Flee)Huir (Flee)
Llegar (Arrive)Llegar (Arrive)
Persecución (Pursuit)Persecución (Pursuit)
Evadir (Evade)Evadir (Evade)
Vagar(Wander)Vagar(Wander)
Evitar obstáculos (Obstacle avoidance)Evitar obstáculos (Obstacle avoidance)
Evitar muros(Wall avoidanceEvitar muros(Wall avoidance
Interponerse(Interpose)Interponerse(Interpose)
Esconderse(Hide)Esconderse(Hide)
Seguimiento de ruta (Path following)Seguimiento de ruta (Path following)
Persecusión a distancia (Offset pursuit)Persecusión a distancia (Offset pursuit)
Comportamientos básicos grupalesComportamientos básicos grupales
Separación (Separation)Separación (Separation)
Alineamiento (Alignment)Alineamiento (Alignment)
Coehsión (Cohesion)Coehsión (Cohesion)
Bandada (Flocking)Bandada (Flocking)
Motor de IAMotor de IA
• Data driven
• Decision Making• Base del sistema
• Perception System• El entorno al que se debe
responder
• Navigation• Ir del punto A al B
Motor de IA – IA Distribuida
• Basado en capas– Capa de percepción (Perception layer)– Capa de comportamiento (Behavior layer)– Capa de animación (Animation layer)– Capa de movimiento (Motion layer)– Toma de decisiones a corto plazo (Short term decision
making)– Toma de decisiones a largo plazo (Long term decision
making)– Capa de información basada en la posición
Motor de IA – Brook’s Subsumption
• Basado en capas• Más básico que la IA Distribuida.• Intenta llegar a una inteligencia de insecto
robusta• Muchas veces todo lo que se necesita
– Mentalidad de colmena en RTS
Motor de IA
• Consideraciones de diseño– Data driven– One track mind (OTM)– Nivel de detalle– IA de soporte– Ideas de diseño– Ideas de implementación
EjemplosEjemplos
Los 10 juegos más influyentes (Lista de controversias)
Mejores IAMejores IA
Mejores diseñosMejores diseños
Más innovadoresMás innovadores
Más vendidosMás vendidos
#10 Half Life (1998)
Cut – Scenes interactivas
IA NPC que acompaña al jugador
Squad AI
#9 Total War (2000)
Miles de NPC’s controlados simultaneamente
Modela las emociones de grupos de soldados (según el Arte de la guerra de Tsun-Tzu)
#8 Warcraft (1994)
Cientos de personajes manejados por IA
Uso de pathfinding en grandes cantidades depersonajes simultaneamente
#7 Thief (1998)
Modelo sensorial que permite responder conRealismo a luces y sombras
Voces pregrabadas para dar a entender alJugador que es lo que está pasando
#6 Sims (2000)
Uso de objetos inteligentes para decirle al personaje como actuar
Modelado de emociones y deseos
#5 Creatures (1996)
Aprendizaje automático
Uso de redes neuronales
Gran avance en ALife
#4 Halo (2001)
Los enemigos se cubren inteligentementeuso de grandas y fuego al sorprender
La situación del grupo afecta a los individuos
Behavior Tree
#3 Façade (2005)
Uso de lenguaje natural
Historia dinámica
#2 FEAR (2005)
Uso de planificador en motor de IA
Uso del entorno (puertas, mesas, etc…)
Muy buenas tácticas grupales
#1 Black & White
Interacción con una criatura inteligente queaprende a base de premios y castigos
Integración de vida artificial con estrategia
Arquitectura IA basada en laciencia cognitivaBelief Desire Intention (BDI)
Preguntas ?Preguntas ?
ReferenciasReferencias
• Artificial Intelligence: A Modern Aproach, Stuart J. Russell and Peter Norvig (Prentice Hall © 1995)
• Game Design Foundations, by Roger E. Pedersen (Wordware Publishing © 2003)
• Game Design Theory and Practice, Second
Edition, Richard Rouse (Wordware Publishing © 2005)
• Game Programming All In One, Bruno Miguel de Texeira Sosa (Premier Press © 2002)
• Game Programming Gems 6
ReferenciasReferencias
• AI Game Engine Programming , by Bryan Schuab (Charles River Media © 2004)
• Programming Game AI By Example, by Matt Buckland (Wordware Publishing © 2005)
• AI Game Programming Wisdom 2, by Steve Ravin
• www.aigamedev.com• www.gameai.com• www.gamasutra.com