Inteligencia Artificial Para Videojuegos Diego Fernando Loaiza Buitrago Pontificia Universidad Javeriana Cali Inteligencia Artificial ● "Capacidad de un computador/máquina de realizar actividades que requieren inteligencia" ó ● "Comportamiento inteligente que exhibe una máquina" Qué es inteligencia? IA Fuerte: ● Conciencia y emociones están vinculadas al intelecto. ● Más que capacidad de resolver problemas que requieren inteligencia "humana". ● Capacidad de aprendizaje y adaptación. IA Débil: ● Técnicas concretas para dotar a máquinas de capacidades específicas de inteligencia. ○ IA para videojuegos cae en esta categoría. IA para video juegos: Conceptos Determinista: ● No existe incertidumbre. ● Especificado y predecible. ○ ej: algoritmo de persecución. No Determinista: ● Cierto grado de incertidumbre, impredecible hasta cierto punto. ● Depende de la técnica usada. ○ ej: NPC que se adapta a tácticas de combate de jugador. Aprendizaje a través de red neuronal, red Bayesiana o algoritmos genéticos. IA para video juegos: Conceptos ● Agentes: NPC (Non-player character), Virtual player. Sen tir, Percibir Pensar Actuar IA para video juegos: Conceptos Concepto de Agente: ● Sentir, Percibir: ○ Recolectar cambios en sensores de entrada. ○ Actualizar estado con nuevos valores. ● Pensar ○ Usar actividad humana básica. ● Actuar ○ Ejecutar cambios en acciones. ○ Interactuar con entorno. IA para video juegos: Conceptos Concepto de Agente: ● Comportamiento: secuencia de acciones. ○ Ej: patrullaje: Moverse,observar,moverse,observar, apuntar,acercarse,disparar (x3),recargar,disparar( x3), regresar por munición. ○ Condiciones: capacidad del arma de disparar,el enemigo es destruido a los 6 disparos, la munición se terminó. ○ Condiciones cambian el comportamiento: con un enemigo distinto? con un arma distinta? IA para video juegos: Conceptos Agentes ● Reactivos ● Resolución de problemas (pathfinding) ● variedad de reaciones, reacción depende del estímulo. ● Más de 1 comportamiento, interacción con otros agentes. Emotividad? ● Anticipación. ● Nivel apropiado de dificultad: exigir habilidad suficiente del jugador. IA para video juegos: Conceptos IA para video juegos: Conceptos Máquina replica comportamiento humano: Aprendizaje y adaptación. ● Incrementar dificultad (agresividad) si el jugador juega mejor (adquiere habilidad). ● Los niveles son versiones "preprogramadas" de la adaptación. ● Debe poder afinarse. IA para video juegos: Conceptos Adaptación y calidad del "game play". ● Queremos que los enemigos se vuelvan mejores a medida que nosotros mejoremos. ● Forzar al jugador a enfrentar las consecuencias de sus acciones. IA para video juegos: Conceptos Qué es un juego inteligente? ● Jugador lo percibe como retador. ● El "game play" siempre ofrece sorpresas. ● Sensación de que entorno puede ofrecer respuestas. ○ Capacidad de progresar a través de la resolución de problemas. IA para video juegos: Objetivos Papel de la IA en un juego ● control de cada NPC. ○ Otros carros, en un juego de carreras. ○ Oponentes en un FPS. ○ Mis unidades, Unidades del enemigo y el enemigo en un juego de estrategia. ● No es el control de entes pasivos, reactivos. ○ Física, o lógica del juego. IA para video juegos: Modelos Metas ● Guiado por metas: AI decide qué hacer, después descubre cómo. ● Intensivo en conocimiento: AI posee vasto conocimiento del mundo y su comportamiento, incorpora este conocimiento en el suyo propio. ● Receptivo, sensible: AI responde a cambios en el mundo. ● Modelamiento realista: encarnar personaje convincente, consistente. ● Metas prácticas: ○ Desarrollo fácil y rápido. ○ Bajo uso de CPU y memoria. IA para video juegos: Modelos Dos Complejidades ● Complejidad de ejecución ○ Qué tan rápido se ejecuta al agregar conocimiento? ○ Memoria necesaria para agregar conocimiento? ○ Determina costo en ejecución de la AI ● Complejidad de especificación ○ Qué tan dificil es escribir el código? ○ Qué tanto código se necesita agregar para incrementar conocimiento? ○ Determina costo de desarrollo y riesgos. IA para video juegos: Modelos Especificación de comportamiento, herramientas lógicas. ● Qué comportamientos pueden ser definidos fácilmente? ● Lógica proposicional ● ○ afirmaciones específicas. ■ B.J. Blazkowicz está en el castillo Wolfenstein. Está desarmado. ■ Si encuentra Luger, mata al médico de la S.S. y escapa. Lógica de predicados ○ Afirmaciones generales, con variables. ■ Algunos soldados de la S.S. poseen MP40s. ■ hay al menos un camino seguro desde la mazmorra hasta la estación de teleféricos. IA para video juegos: Modelos Algunos conceptos. ● Heurística: regla general que puede solucionar ● problema. Ej: persecución basada en obtención de coordenadas del objetivo. Obstaculos? : ○ Trabajo en conjunto con algoritmo (p. ej. pathfinding) Data-driven design: ○ necesidad de pulir, afinar y balancear comportamientos. ○ técnica de programación: datos externos que parametrizan AI y el comportamiento en general del programa. ○ Archivos de texto plano, DB relacionales, etc. IA para video juegos: Modelos Algunos conceptos. ● OOD: ● ○ Objetos, herencia ○ Agregación ■ Objeto base, agregación de características especializadas. ■ Uso de interfaces Métodos de control ○ N agentes + jugador actuando simultáneamente: código se ejecuta secuencialmente, procesando 1 agente a la vez. IA para video juegos: Modelos ● Métodos de control ○ Control basado en tiempo: ■ basado en los ticks del game loop. ■ Condición para ejecutar acciones, depende del estado del agente en determinado tiempo. ○ Control basado en eventos: ■ llamado a funciones dependiendo de eventos. ■ triggers. IA para video juegos: Modelos Resumen Espectro de soluciones ● Mayoría de juegos comerciales ○ FSAs, Lógica difusa, árboles de decisión, Sistemas basados en reglas, redes neuronales, sistemas basados en reglas. ● Rango más amplio de soluciones en entorno académico. ○ programación lógica, sistemas de planeación complejos, algoritmos genéticos, redes bayesianas. ○ usualmente poco eficientes para videojuegos.