La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Inteligencia Artificial en Videojuegos Seminario de Videojuegos y Tecnologías Interactivas INCO, Facultad de Ingeniería (UDELAR) Noviembre 2008."— Transcripción de la presentación:

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

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

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

4 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

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

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

7 campos de IA razonamiento aprendizaje movimiento y manipulación procesamiento de leng. natural percepción planeamiento inteligencia social inteligencia general creatividad

8 aplicaciones

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

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

11 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

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

13 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).

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

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

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

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

18 conceptos básicos de IA autómatas finitos pathfinding aprendizaje coordinación de NPCs movimiento lógica fuzzy

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

20 autómatas finitos

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

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

23 lógica fuzzy Para el ejemplo del jugador:

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

25 Algoritmo A* (star) Definir el área de trabajo NODOS DESTINO ORIGEN ZONA INTRANSITABLE

26 Algoritmo A* (star) Referencia de colores PUNTERO AL PADRE LISTA CERRADA LISTA ABIERTA

27 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)

28 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

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

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

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

32 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

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

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

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

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

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

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

39 Á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

40 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

41 FPS Uso extensivo de maniobrabilidad – Llegar a destino – Evitar obstáculos – Persecuciones – Huir – Etc…

42 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

43 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)

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

45 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

46 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

47 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

48 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

49 Ejemplos

50 Los 10 juegos más influyentes (Lista de controversias) Mejores IA Mejores diseños Más innovadores Más vendidos

51 #10 Half Life (1998) Cut – Scenes interactivas IA NPC que acompaña al jugador Squad AI

52 #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)

53 #8 Warcraft (1994) Cientos de personajes manejados por IA Uso de pathfinding en grandes cantidades de personajes simultaneamente

54 #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

55 #6 Sims (2000) Uso de objetos inteligentes para decirle al personaje como actuar Modelado de emociones y deseos

56 #5 Creatures (1996) Aprendizaje automático Uso de redes neuronales Gran avance en ALife

57 #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

58 #3 Façade (2005) Uso de lenguaje natural Historia dinámica

59 #2 FEAR (2005) Uso de planificador en motor de IA Uso del entorno (puertas, mesas, etc…) Muy buenas tácticas grupales

60 #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)

61 Preguntas ?

62 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

63 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 www.aigamedev.com www.gameai.com www.gamasutra.com


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

Presentaciones similares


Anuncios Google