Inteligencia Artificial en Videojuegos Seminario de Videojuegos y Tecnologías Interactivas INCO, Facultad de Ingeniería (UDELAR) Noviembre 2008.

Slides:



Advertisements
Presentaciones similares
OTROS CAMPOS DE LA IA.
Advertisements

Inteligencia artificial y sus aplicaciones
INTELIGENCIA ARTIFICIAL
ESTRATEGIA PRINCIPIOS PARA LOGRAR UNA BUENA ESTRATEGIA. EXPOSITOR: DAVID GONZÁLEZ FLORES ENERO-2009.
INTELIGENCIA ARTIFICIAL
Introducción a las Redes neuronales
COLEGIO UNIVERSITARIO DE ADMINISTRACION Y MERCADEO
Gestión de los recursos informáticos Unidad Nº 1: Introducción y proceso de la administración estratégica.
INTELIGENCIA ARTIFICIAL
COMPETENCIAS Y METODOLOGÍA
Introducción IA en Video Juegos Modelado y Comportamiento de Personajes Luis Peña
Definición de IA Ana Lila Laureano-Cruces Universidad Autónoma Metropolitana - Azacapotzalco.
CARACTERÍSTICAS QUE HA TENER UN DISEÑO EFICAZ
Inteligencia Artificial Búsqueda informada y exploración
Arquitectura Orientada a Servicios (SOA)
Ingeniería del Conocimiento
IA e IA Distribuida Para Juegos SIN Jaime Barrachina Verdía.
Iván ventura presenta.
Introducción IA en Juegos Modelado y Comportamiento de Personajes MIGJRV Luis Peña.
INGENIERIA EN SISTEMAS COMPUTASIONALES. Habitualmente, el investigador ensambla su modelo "sobre una mesa vacía" usando elementos que ofrece el lenguaje.
Es el arte de instruir a un computador sobre los pasos necesarios para resolver los problemas que influyen en la creación de un videojuego. Es el.
Inteligencia Artificial (BAIA)  Se propone lograr que las computadoras se comporten de manera que podamos reconocerlas como inteligentes.  Tiene por.
REDES NEURONALES ARTIFICIALES
Inteligencia artificial
Tecnologías de Información y Comunicación II
Elemento Lógico (Software)
FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL
Fundamentos e Historia de la Inteligencia Artificial Introducción: Capítulo 1.
INTELIGENCIA ARTIFICIAL
CAMBIO ORGANIZACIONAL
Diseño y análisis de algoritmos
Estimulación Temprana
PROGRAMACIÓN LINEAL.
(Organización y Manejo de Archivos)
PLANEACIÓN ESTRATÉGICA.
Desarrollo de aplicaciones para ambientes distribuidos
Sistemas Inteligentes Distribuidos Sistemas Inteligentes Distribuidos Sesión 13 L. Enrique Sucar / Marco López Sesión 13 L. Enrique Sucar / Marco López.
Hugo del Moral Guerrero
Sistemas Inteligentes Distribuidos Sistemas Inteligentes Distribuidos Sesión 8 Eduardo Morales / L. Enrique Sucar Sesión 8 Eduardo Morales / L. Enrique.
Practica 4 supercomputadoras.
Sistemas de Información IS95872 Clase 7 de Mayo. Éxito y Fracaso de los sistemas.
Robótica Inteligente L. Enrique Sucar Leonardo Romero Marco López ITESM Cuernavaca.
Robótica Inteligente L. Enrique Sucar Leonardo Romero Marco López ITESM Cuernavaca.
Una introducción a la computación evolutiva
Inteligencia Artificial
8.- Inteligencia artificial
INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
 En el siguiente trabajo se explicará cuales son los fundamentos de la planeación, la toma de decisiones.  La toma de decisiones es un paso fundamental.
Tema 6: Programación L. Enrique Sucar Marco López ITESM Cuernavaca
Tecnologías para el Aprendizaje
HABILIDADES PARA LA VIDA
Videojuegos Educativos María Elena Noriega Rivas Nelson Ricardo Grimaldos Baptista.
SISTEMAS EXPERTOS (SE) Coronel Jaramillo Ricardo
Robótica Inteligente L. Enrique Sucar Marco López ITESM Cuernavaca.
Introducción a los Sistemas Inteligentes
Leidy Constanza Bermeo Roa. La encuesta está conformada por un grupo de preguntas que se dirigen a personas específicas que nos permitirán.
Salir Continuar. Modelo mentales La “versión” de la realidad construida a partir de elementos seleccionados del entorno. Siempre planificamos desde lo.
Innovando el proceso de la estrategia operacional
INTELIGENCIA ARTIFICIAL APLICADA A LA ROBOTICA
Heurística. Los procesos que se llevan a cabo en el cerebro pueden ser analizados, a un nivel de abstacción dado, como procesos computacionales de algún.
Resolución de problemas
SISTEMAS INTELIGENTES ¿De qué estamos hablando? Carlos Lameda Enero, 2006.
La palabra "nanotecnología" es usada extensivamente para definir las ciencias y técnicas que se aplican al un nivel de nano escala, esto es unas medidas.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
NOMBRE: Paula Andrea Bedoya Rojas. GRADO: 7.3. Institución Educativa Debora Arango P.
C.P CLAUDIA RIVERA PEÑA. No hay lugar a dudas, a los niños les gusta jugar. Tampoco es novedad que se puede aprender jugando.
Competencias y Capacidades del área de Matemática
Transcripción de la presentación:

Inteligencia Artificial en Videojuegos Seminario de Videojuegos y Tecnologías Interactivas INCO, Facultad de Ingeniería (UDELAR) Noviembre 2008

IA académica IA en videojuegos conceptos básicos de IA motor de IA

IA académica definiciones de IA agentes test de Turing campos de IA aplicaciones

definiciones de IA "The exciting new effort to make computers think... machines with minds, in the full and literal sense" (Haugeland, 1985) "[The automation of] activities that we associate with human thinking, activities such as decision-making, problem solving, learning...“ (Bellman, 1978) "The study of mental faculties through the use of computational models" (Charniak and McDermott, 1985) "The study of the computations that make it possible to perceive, reason, and act" (Winston, 1992) "The art of creating machines that perform functions that require intelligence when performed by people" (Kurzweil, 1990) "The study of how to make computers do things at which, at the moment, people are better" (Rich and Knight, 1991 ) "A field of study that seeks to explain and emulate intelligent behavior in terms of computational processes" (Schalkoff, 1990) "The branch of computer science that is Concerned with the automation of intelligent behavior" (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 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.

agentes 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 IA razonamiento aprendizaje movimiento y manipulación procesamiento de leng. natural percepción planeamiento inteligencia social inteligencia general creatividad

aplicaciones

IA en videojuegos particularidades metas IA en los distintos géneros

particularidades 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.

metas 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

metas Básicamente, si el jugador cree que el juego es inteligente, el trabajo está hecho.

IA 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: 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: 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ó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: 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 IA autómatas finitos pathfinding aprendizaje coordinación de NPCs movimiento lógica fuzzy

autó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 finitos

lógica fuzzy No siempre la pertenencia a un estado es un valor booleano.

ló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 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 donde G = 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’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… 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 Artificiales… 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 Artificiales… 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’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… 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 individuales Búsqueda (Seek) Huir (Flee) Llegar (Arrive) Persecución (Pursuit) Evadir (Evade) Vagar(Wander) Evitar obstáculos (Obstacle avoidance) Evitar muros(Wall avoidance Interponerse(Interpose) Esconderse(Hide) Seguimiento de ruta (Path following) Persecusión a distancia (Offset pursuit)

Comportamientos básicos grupales Separación (Separation) Alineamiento (Alignment) Coehsión (Cohesion) Bandada (Flocking)

Motor 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

Ejemplos

Los 10 juegos más influyentes (Lista de controversias) Mejores IA Mejores diseños Más innovadores Má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 de personajes simultaneamente

#7 Thief (1998) Modelo sensorial que permite responder con Realismo a luces y sombras Voces pregrabadas para dar a entender al Jugador 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 inteligentemente uso 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 que aprende a base de premios y castigos Integración de vida artificial con estrategia Arquitectura IA basada en la ciencia cognitiva Belief Desire Intention (BDI)

Preguntas ?

Referencias 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

Referencias 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