Int nteligencia eligencia Art Artificial ificial en Videojuegos
DiegoC.Martínez LaboratoriodeInvestigaciónyDesarrolloenInteligenciaArtificial DepartamentodeCienciaseIngenieríadelaComputación UniversidadNacionaldelSur
Introducción Diego C. Martínez
[email protected]
http://cs.uns.edu.ar/~dcm Departament Departam ento o de Ciencias e Ingen Ingeniería iería de la Com omput putación. ación. Universidad Nacional del Sur. (0291)-4595135 interno 2614
Laboratorio de Investigación y Desarrollo en Inteligencia Artificial LIDIA - http://lidia.cs.uns.edu.ar Mis principales actividades de investigación Argumentación rebatible Int nteligencia eligencia Artificial en juegos int interact eractivos ivos digit digitales ales
Introducción Diego C. Martínez
[email protected]
http://cs.uns.edu.ar/~dcm Departament Departam ento o de Ciencias e Ingen Ingeniería iería de la Com omput putación. ación. Universidad Nacional del Sur. (0291)-4595135 interno 2614
Laboratorio de Investigación y Desarrollo en Inteligencia Artificial LIDIA - http://lidia.cs.uns.edu.ar Mis principales actividades de investigación Argumentación rebatible Int nteligencia eligencia Artificial en juegos int interact eractivos ivos digit digitales ales
InteligenciaArtificial No es fácil definir qué es “inteligencia artificial” ¿ qu qué é es la inteligen inteligencia? cia? ¿ qu qué é cosas son inteligen inteligenttes y qué cosas no? ¿ cuándo est estam amos os frent frente e a una manifestación manifestación de inteligencia?
J ohn Mc McCar Cartthy
una ciencia
IA
una disciplina ingenieril
objetivo científico: comprender los principios del comportamiento inteligente.
objetivo :especificar métodos para el diseño de artefactos inteligentes.
InteligenciaArtificial Crear comportamiento inteligente automatizado es complicado. La inteligencia tiene muchos aspectos.
Algunas areas de investigación típicas de Inteligencia Artificial: aprendizaje – representación de conocimiento y razonamiento – sistemas multiagente – procesamiento de lenguaje natural – gestación de planes y agendas – robótica – búsqueda – incertidumbre – optimización – reconocimiento de imágenes – razonamiento espacial...
Básicamente, cualquier aspecto que requiera inteligencia ha sido analizado por los investigadores de Inteligencia Artificial. Aunque no lo parezca, la IA tiene una relación antigua con los juegos...
InteligenciaArtificialyJuegos Los primeros intentos en crear comportamiento inteligente se basaron en juegos como el ajedrez. De hecho, la inteligencia artificial en juegos fue considerada por varios “próceres” de la ciencia de la computación:
• Claude Shannon (1950) Programming a Computer for Playing Chess - Philosophical Magazine, 7th series, 41, no. 314 (March 1950): 256-75.
• Alan Turing (~1948) Creó un programa para jugar ajedrez… para una computadora que todavía no existía.
• Arthur Samuel (~1958) Creó un programa para jugar damas, con la posibilidad de aprendizaje de movidas.
InteligenciaArtificialyJuegos
Durante muchos años más la IA fué desarrollada pensando en la capacidad de jugar como ejemplo de habilidad inteligente. La inteligencia consistía en poder jugar el juego.
Con el tiempo, sin embargo, se fué diluyendo un poco esa relación: Los juegos de tablero y cartas pierden atractivo lentamente
Con los años dejó de ser un escenario motivador
Otros desarrollos científicos demandaban mayor atención Las computadoras se multiplicabn en la sociedad Las redes comenzaban a cobrar protagonismo.
InteligenciaArtificialyJuegos Mientras la IA olvidaba un poco los juegos, surgieron los juegos de entretenimiento digital, que crecían año a año
en calidad visual en satisfacción de entretenimiento en rubro comercial
Recién a principios de este siglo la comunidad científica de Inteligencia Artificial vuelve a prestar atención a los juegos, esta vez a los de entretenimiento interactivo digital. Este reencuentro surge justo cuando • la comunidad de IA ve a los videojuegos como campo de exploración, y • la comunidad de videojuegos demanda mayor innovación en IA
IAAcadémicavsIAenvideojuegos
IA Académica
IA videojuegos
No se busca un efecto particular, sino comportamiento general
Usualmente se buscan efectos puntuales
A veces el efecto justifica el costo
A veces el costo no justifica el efecto
Algunas áreas de investigación buscan superar al humano
Superar siempre al humano no es negocio
Sin limitaciones de ideas y desarrollo
Ideas y desarrollo acotado por el mercado
GénerosdeJuegos(gamegenre ) Actualmente existe una gran variedad de juegos... Action Adventure Board First-person Shooters Shooters Tactical Shooters Role-playing Simulations
Sports
Strategy Rhythm Games
Combat Simulations Management Simulations Life Simulations Soccer, Golf, Baseball Basketball, Football, Hockey Wrestling, Racing Real-time strategy Turn-based strategy
InteresesdelaIAacadémicaenlosvideojuegos J Laird, M. van Lent. Human-level AI's Killer Application: Interactive Computer Games
Géneros de juegos
Problemas de IA
Areas d e IA Ac adém ica
Acción
Interactuar con el entorno
Percepción de entorno
RPG
Adaptarse al entorno
Razonamiento de sentido común
Adaptarse al jugador humano
Planning & counter-planning
Interactuar con otras IAs
Modelado de conocimiento
Coordinar comportamiento
Modelado del oponente
Deportes en equipo
Navegación
Respuesta en tiempo real
Deportes individuales
Uso de táctica y estrategia
Aventuras J uegos Estratégicos
Teamwork
Respuestas “humanas”
Pathfinding
Comportamiento emocional
Razonamiento temporal Aprendizaje automatizado Deliberación Adquisición de conocimiento ...
InteresesdelaIAacadémicaenlosvideojuegos La comunidad de IA ve con buenos ojos el campo de los videojuegos. La comunidad de videojuegos muestra interés en la IA. Algunas señales en esta dirección: • Artificial Intelligence and Interactive Digital Entertainment Conference AIIDE (2005-2012). Antecedentes desde el 99. • AI Summit – Game Developers Conference. • IGDA – Artificial Intelligence Interface Standard Committee (AISC) • Artificial Intelligence and Games Research Network (empresas+investigadores) United Kingdom. • IEEE Symposium on Computational Intelligence and Games. • Libros: AI Game Programming Wisdom I-IV, Steve Rabin (Nintendo of America) Artificial Intelligence for Computer Games: an Introduction. J ohn Funge. Artificial Intelligence for Games. Ian Millington
• Varios grupos de investigación en diferentes universidades...
InteresesdelaIAacadémicaenlosvideojuegos Algunos Laboratorios o Grupos de Investigación en Inteligencia Artificial que trabajan en juegos GAMES Group, Universidad de Alberta. Canadá. IRCL Group, Universidad de Alberta. Canadá. Games and AI Group. Universiteit Maastritch, Holanda Center for Games Research Group. University of Copenhagen, Dinamarca Entertainment Technology Center, Carnegie Mellon, EEUU. NUS Game Development Group, National University of Singapore. Artificial Intelligence Lab, University of Michigan, EEUU
¿DondeusarAIenjuegos? En los enemigos: Saben navegar por el mapa y/o terreno Saben ocultarse y percibir nuestra cercanía. Saben cuando y cómo perseguirnos. Adoptan estrategias dinámicas. En los amigos: Pueden seguirnos adecuadamente por el terreno. Saben dar apoyo de manera inteligente.
En nuestras unidades: Se mueven en formaciones inteligentes. Reaccionan adecuadamente ante ataques inesperados. Son proactivos y reactivos.
¿DondeusarAIenjuegos? Otros posibilidades: En la generación de diálogos en RPGs. En la generación de enemigos más inteligentes (algo pueden aprender luego de un tiempo). En la simulación completa de un jugador virtual (bot). En la generación de mapas y terrenos. En el comportamiento emocional de los NPC.
en crear mejores oponentes, en ayudar al jugador, en extender el tiempo de vida del juego, en ser un produ cto diferente a los demás.
Ejecutandoeljuego...
Durante el transcurso del juego, varias computaciones son necesarias
procesar input del usuario procesar lógica del juego mantener representaciones del mundo virtual mostrar la representación gráfica del juego
En muchos casos, todo esto casi simultáneamente con el agravante de que algunas de estas tareas son costosas en tiempo y recursos algunas no pueden posponerse! tiempo
frame
frame
frame
Ejecutandoeljuego... Como en cualquier aplicación, la performance depende mucho de las capacidades del hardware... La reducción de carga de procesamiento favorece la fluidez del juego En algunos casos es necesario regular el nivel de detalle (level of detail)
Graphics Level of Detail Diferentes niveles de complejidad geométrica Diferentes detalles de texturas On-off de otros efectos visuales (antialiasing, filtros visuales, etc) Occlussion culling
Ejecutandoeljuego... Como en cualquier aplicación, la performance depende mucho de las capacidades del hardware... La reducción de carga de procesamiento favorece la fluidez del juego En algunos casos es necesario regular el nivel de detalle (level of detail)
AI Level of Detail Diferentes niveles de profundidad de búsqueda Diferentes parámetros para la toma de decisiones Diferentes tipos de realismo de comportamiento (eg, puntería) Diferentes niveles de detalle de co mportamiento grupal
TiposdeAIenjuegos Hacks Efectos puntuales, usualmente plasmados directamente en el código como recurso de programación. No representan realmente una técnica de Inteligencia Artificial. Ejemplo: fantasmas del PacMan.
Heurísticas Técnicas o reglas que aplicadas pueden servir para resolver un problema puntual. La búsqueda es terreno habitual de heurísticas Ejemplo: atacar la unidad enemiga más débil.
Algoritmos Algoritmos que sustentan comportamiento inteligente, basados en técnicas generales aplicables a varios escenarios. Ejemplo: pathfinding, planificación, análisis de terrenos, movimientos coordinados en grupos, etc..
AIModel(Millington-Funge) AI gets processor time
Execution Management Group AI
Strategy World Interface
Content Creation Scripting
Character AI
Decision Making
AI has implications for related technologies
Movement
AI gets information
Animation
Physics
AI turns into on-screen action
AIModel(Millington-Funge) Execution Management Group AI
Decision Strategy Algoritmos y técnicas enfocados en el comportamiento grupal (actitud agresiva, defensiva, toma de control del terreno, etc)
Strategy Character AI
Decision Making
Decision Making Algoritmos y técnicas para la toma de decisiones de los caracteres sintéticos (atacar, defender, construir, destruir, selección de acciones encadenadas, planificación, etc)
Movement Movement Algoritmos y técnicas para el movimiento de los caracteres sintéticos (moverse, buscar, perseguir, esquivar, escapar, pasear, etc)
IAenvideojuegos
¿Cuáles son los aspectos de Inteligencia Artificial que un desarrollador de videojuegos debe conocer?
IAenvideojuegos:Movimiento
El movimiento de caracteres sintéticos es probablemente el aspecto más elemental de inteligencia artificial en un juego. Una buena parte de la actividad científica en videojuegos se centra en aspectos de movimiento:
Técnicas de búsqueda de caminos Técnicas de generación de waypoints de navegación Movimientos coordinados de grupos de unidades Movimientos de multitudes (crowd) Movimientos creíbles Planificación de movimientos
Este área de IA en J uegos tiene estrecha relación con el área de animación
Estructuradeunalgoritmodemovimiento
Character
posición velocidad
Movement request AL GORITMO de Movimiento
Game
otros caracteres geometria del nivel paths estado del juego
nueva posición nueva velocidad
Steeringbehaviors Crayg Reynolds presentó en 1999 el concepto de steering behaviors para caracteres autónomos Autonomous characters are a type of autonomous agent intended for use in
computer animation and interactive media such as games and virtual reality. These agents represent a character in a story or game and have some ability to improvise their actions Steering Behaviors for Autonomous Characters
Crayg Reynods. Game Developer Conference 99.
situated, embodied, reactive, virtual agents
situado en un mundo virtual junto con otras entidades
con una manifestación física concreta
sus acciones son inducidas por eventos del entorno
agentes reales en un mundo virtual
Steeringbehaviors Sugiere que el comportamiento de un agente autónomo puede descomponerse en tres capas:
Action Selection
Steering
Locomotion
Decide las acciones de acuerdo a las metas seleccionadas. Calcula las trajectorias deseadas para cumplir lo decidido en la capa anterior
Aspectos mecánicos del movimiento del agente
Steeringbehaviors Decision Layer
Eliminar el enemigo X
Steering Layer
Acercarse mientras éste se mueve
Locomotion Layer
thrust
g n i r e e t s g n i r e e t s
braking
EjemplosdeSteeringBehaviors:Seek trayectoria
velocidad deseada (max velocidad directa)
velocidad actual
velocidad determinada por seek
EjemplosdeSteeringBehaviors:Wander Wander es un movimiento cinemático frecuente. Representa un andar aleatorio con una orientación general de poca variación.
La orientación está dada por un ángulo de rotación aleatorio, tendiente a 0 Puede implementarse también en base a Seek generando puntos al azar:
radio de wandering
EjemplosdeSteeringBehaviors:Flocking Los steering behaviors pueden combinarse y ponderarse para construir comportamientos complejos y variados. Un ejemplo muy popular es flocking.
Flocking es un comportamiento emergente que se logra fácilmente combinando tres steering behaviors:
separación cohesión alineación
Flocking- separation El behavior Separation crea una fuerza que procura mantener una distancia entre el agente y sus vecinos
vecinos
radio de cercanía o vecindad
Flocking- separation El behavior Separation funciona mejor cuando hay cierto grado de alineación entre los caracteres sintéticos vecinos.
Flocking- alineación El behavior Alignment le permite al caracter sintético alinearse con los agentes vecinos. Se calcula una orientación promedio de todos sus vecinos
Flocking- cohesión El behavior Cohesión le permite al caracter sintético manterse próximo a sus vecinos. Se calcula un “centro de masa” como el promedio de las posiciones de los vecinos.
Movimientoscoordinados En muchos juegos los agentes sintéticos deben moverse de manera coordinada. Por ejemplo: pelotón de soldados, escuadra de aviones.
Esto se suele denominar movimiento de formaciones.
Age of Empires
Homeworld
A veces las formaciones son fijas (como las anteriores) y otras veces más dinámicas (como en Company of Heroes)
Formaciones:fijas,escalables,emergentes Las formaciones adoptan una distribución geométrica específica distribuyendo posiciones para cada participante.
arrive arrive arrive arrive
Rolesenlasformaciones La estructura de las formaciones puede enriquecerse con mayor información. Pueden definirse slots ocupables sólo por ciertas unidades. Age of Empires
catapultas artilleria de mayor rango de ataque estructura frágil arqueros combate a distancia dèbiles en protección
caballería combate de contacto fuertes en choque
infanteria combate de contacto agiles en movimiento
Rolesenlasformaciones Lo adecuado es definir estructuras de formaciones donde los slots admiten diferentes tipos de unidades.
melee – rango medio – rango alto
Una aprox aproxim imación ación es flexibilizar flexibilizar la ocupación de slots slots asignand asignando o costos. Estos se denominan soft slots. slots. melee
rango medio
rango alto
caballería
0
300
500
infantería
100
500
500
arquero
1000
0
100
catapulta
4000
100
0
La asignación de slots se realiza procurando minimizar los costos.
Formacionesdinámicas Las formaciones no necesariamente deben tener posiciones fijas. En algunas simulaciones es necesario dar algunos grados de libertad a la posición de los slots
Ejemplo:CompanyofHeroes Ejemplo: CompanyofHeroes -- fo form rmac acio ione nes s Company of Heroes es un juego de estrategia en tiempo real basado en WWII.
Una de las innovaciones fué el realismo de la dinámica de las formaciones.
escuadrón de infantería
targets de posición
El jugador da órdenes únicamente a los escuadrones completos. La IA del escuadrón procura exhibir un comportamiento inteligente al ejecutar las ordenes recibidas.
Ejemplo:CompanyofHeroes - formaciones
squad
core
Cada uno tiene un lider
left flank right flank
El lider es asignado dinámicamente y cambia cuando alguna unidad es eliminada o el escuadrón reforzado.
squad leader flank leader
flank leader
follower
follower
follower
Varias reglas definen la asignación de posiciones, entre ellas: los lideres van en el core los Aliados ubican las armas pesadas en los flancos, el Eje en el core.
Ejemplo:CompanyofHeroes - formaciones target determinado por el usuario (click)
offset follower futura posición (2 seg)
Ejemplo:CompanyofHeroes - formaciones Conservar la formación a pesar de la diferencia de velocidades
target determinado por el usuario (click)
offset follower futura posición (2 seg)
speed modifier adelante = acelera atrás = frena
Ejemplo:CompanyofHeroes - formaciones Flexibilizar la formación de acuerdo al espacio en el terreno
obstáculo búsqueda A* de otra posición
offset follower
target determinado por el usuario (click)
futura posición (2 seg)
Ejemplo:CompanyofHeroes - formaciones target determinado por el usuario (click)
“leapfrogging”
punto de interés (cover) futura posición (2 seg) offset follower radio de búsqueda
Caminos En la mayoría de los juegos modernos, existen caracteres sintéticos que en tiempo de ejecución deben decidir por dónde moverse. La tarea de encontrar un camino desde una posición a otra en el escenario del juego se denomina pathfinding o path planning. Se trabaja con una abstracción del escenario (navigation graph / mesh). Los algoritmos de búsqueda de caminos analizan este grafo de navegación para determinar las rutas que guiarán al agente. El agente NO necesariamente debe moverse por los arcos. La búsqueda debe:
ser rápida
contemplar el modelo del agente
hacerse reiteradamente
Grafodenavegación Los algoritmos más utilizados para la búsqueda de caminos son Dijsktra y A* Existen además muchas variaciones y optimizaciones.
Todos estos algoritmos presuponen un espacio de búsqueda discreto (grafo) El grafo de navegación puede generarse en forma automática, a partir del escenario modelado en forma manual, por el diseñador del escenario.
Existen varias técnicas para generar esta estructura y existen varios tipos de grafos.
Navmeshes Muchos juegos utilizan navmesh para pathfinding. red de polígonos convexos que define áreas transitables
usualmente definido por el artista / diseñador
NavmeshesEl SDK de Valve incluye un sistema de generación automática del navmesh. En el primer intento de jugar un mapa, se computa: • Comenzando en el spawn-point, se detecta el espacio caminable, por flood-filling • Se crean áreas rectangulares caminables en este espacio detectado • Se computan hiding spots - sniper spots. etc
Incluye también la posibilidad de generar el navmesh en forma manual. Permite crear areas caminables, unirlas, ubicar sectores especiales..
Navmeshes jump area
ladder area
crouch area
Decisionesinteligentes La toma de decisiones es una habilidad natural del comportamiento inteligente.
Es central a la implementación de inteligentes en juegos Aún así, en muchos casos la implementación es simple y eso es suficiente.
Conocimiento interno Acción Decisor
Conocimiento externo
Vida promedio de un NPC en los FPS : 12 segundos Cantidad de NPC que mueren en los FPS por día: 20.000.000
Existen varias técnicas clásicas para implementar decisores en juegos.
Arbolesdedecisión Los árboles de decisión son estructuras de conocimiento que permiten asociar acciones con grupos de piezas de conocimiento externo e interno
¿hay enemigos cerca? si
no ¿he llegado a destino? no
¿tengo armas disponibles? si
no
¿tengo energia suficiente? no caminar
si
esquivar
cubrirse
atacar
Máquinasdeestados Las máquinas de estados o autómatas finitos (FSM) son utilizados para modelar comportamiento basado en estados de actividad. perseguir, ocultarse, disparar, huir, esperar buscar, recolectar, descargar, huir
enemigo_detectado
atacar
patrullar
enemigo_eliminado energia_recargada
poca_energia
regresar a base
FuzzyLogic La lógica difusa permite modelar propiedades difusas. No es muy popular en la IA académica, pero es usada en varios juegos
Lógica difusa
Un elemento tiene grados de pertenencia a un conjunto
1
herido
sano
fuzzy sets 0
grado numérico de pertenencia hambre: 0,5 cansancio: 0,2
0%
salud
100%
Seleccionandoarmas Variables difusas (fuzzy linguistic variables):
distanceToTarget: close, medium, far ammoStatus: low, okay, loads
Evaluación de cada arma:
1
close
medium
desirability: indeseable, deseable, muyDeseable far
0 0 mt
1
low okay loads
0 100 mt 1
0
0b
indes. deseablemuyDeseable
50 b
Seleccionandoarmas IF target_Far AND ammo_Loads THEN muyDeseable 55mt
35
1
close
0 0 mt
medium
far
1
low
okay
loads
0 100 mt
0b
muyDeseable = 0,8
50 b
BehaviorTrees Los árboles de comportamiento fueron usados con éxito en varios juegos. El Halo 2 y el Spore utilizan árboles de comportamiento.
Halo 2
Son intuitivamente fáciles de construir Existen editores gráficos de árboles de comportamiento!
Spore
BehaviorTrees Son estructuras jerárquicas de tareas. Cada tarea realiza las computaciones pertinentes. Devuelve un valor de status: exito o falla. Las tareas pueden ser simples o compuestos. Las tareas compuestas adoptan diferentes esquemas de ejecución de sus partes subordinadas
Condiciones: testean propiedades del juego y del agente. Similar a Decision Trees.
tareas
Acciones: alteran el estado del juego. Pueden ser animaciones, tareas de AI, o acciones en general.
xyz? doX
Similar a Decision Trees.
Composiciones: agrupan acciones, condiciones o mas composiciones. Usualmente nodos internos del árbol.
?
BehaviorTrees Existen varios tipos de tareas compuestas. Varían en el tratamiento de sus subordinados. Ejemplos selectores: ejecutan las tareas subordinadas en orden, hasta que una retorne status de éxito. Caso contrario retorna status de falla.
secuencias: ejecutan las tareas subordinadas en orden, hasta que termina todas o una retorne status de falla.
?
atacar
cubrirse
selector
huir
buscar vehículo
avanzar
recolectar minerales
secuencia
(Millington & Funge, AI for Games)
BehaviorTrees- ejemplo
?
puerta abierta?
entrar
ir a la puerta
if is_open(puerta) then move_to(habitacion) else: move_to(puerta) open(puerta) move_to(habitacion)
abrir puerta
entrar
BehaviorTrees- ejemplo
?
entrar
puerta abierta?
ir a la puerta
abrir puerta
if not is_open(puerta) then move_to(puerta) open(puerta) move_to(habitacion)
Comportamientobasadoenmetas Es posible utilizar un modelado de agente basado en metas. Las acciones del agente se orientan al cumplimiento de ciertas metas
Esto se denomina Goal Oriented Behavior (GOB) NO son muy frecuentes en los juegos, excepto algunos recientes.
The Sims (2000 - )
The Ghost Master (2003)
Comportamientobasadoenmetas metas
objetivos a satisfacer por el agente ganar energia, vengarse, conseguir el item X pueden poseer un nivel de importancia o insistencia
Satisfacer una meta es disminuir su nivel de importancia
ganar energia es menos importante cuanto mayor energía tiene el agente. eliminar a X pierde toda importancia una vez que X es eliminado.
acciones
dependientes del agente y el entorno agente:“caminar hacia posicion P” , “disparar a X” puerta: “abrir”, “cerrar”, “trabar”, “destrabar” enemigo: “matar”
La selección de acciones se hace en función de la satisfacción de las metas
Comportamientobasadoenmetas Un esquema de selección simple:
1. Seleccionar la meta de mayor importancia o insistencia 2. Seleccionar la(s) accion(es) que provee mayor satisfacción de la meta Metas
Acciones
comer [ imp: 5 ]
comer snack : comer - 1
dormir [ imp: 2 ]
comer cena : comer - 5 dormir en sofá : dormir - 2 dormir en cama : dormir - 5
Este esquema no contempla efectos colaterales de las acciones. Por ejemplo, preparar la cena genera cansancio, e incrementa la meta de dormir.
Planificaciónbasadaenmetas Las acciones son dependientes de la situación La ejecución de algunas acciones puede inhabilitar o habilitar otras acciones
Goal: Heal = 4 Goal: Kill-Ogre = 3 Action: Fireball (Kill-Ogre − 2) 3 energy-slots Action: Lesser-Healing (Heal − 2) 2 energy -slots Action: Greater-Healing (Heal − 4) 3 energy-slots
Planning Buscar la secuencia de acciones que nos resulte más beneficiosa El proceso se denomina “Plan Formulation” GOAL ORIENTED ACTION PLANNING
Planificar implica conocer las condiciones necesarias para ejecutar las acciones los efectos de la ejecución de cada acción
GOAP- F.E.A.R.
F.E.A.R (First Encounter Assault Recon) First-Person Shooter (2005) Psychological horror Muy buen empleo de Inteligencia Artificial (Ver Three States and a Plan: The A.I. of F.E.A.R. Jeff Orkin)
GOAP- F.E.A.R. FEAR utiliza una variación del planificador STRIPS STRIPS = STanford Research Institute Problem Solver Formulado originalmente en 1970
Goals
descripción del estado del mundo que queremos alcanzar
Actions
definidas en términos de
STRIPS
precondiciones el estado del mundo necesario para ejecutar la acción
efectos el impacto de la acción en el estado del mundo
GOAP– F.E.A.R.- STRIPS ordenar
cocinar
Acciones: ordenar_pizza Precondición: telefono_pizzeria(true) Efectos: DELETE hambriento(true) ADD hambriento(false)
cocinar_pastel Precondición: receta(true) Efectos: DELETE hambriento(true) ADD hambriento(false)
GOAP– F.E.A.R. Para cada caracter del juego puede determinarse un conjunto de metas (goals) y un conjunto de acciones. soldier
assasin
rat
Testbedsparalaacademia En el mundo académico se utilizan algunas plataformas de videojuegos para el test de nuevas técnicas de inteligencia artificial. Muchos adoptan una arquitectura cliente-servidor para mejor flexibilidad.
Percepción del escenario
Cliente
Acciones sobre el escenario
Servidor
Escenario modelado
GamebotsparaUnreal Gamebots es un proyecto de la University of Southern California que procura
convertir el Unreal Tournament en un escenario para testear nuevas técnicas de inteligencia artificial (pathfinding, coordinacion de agentes, etc). Permite que un programa (en J ava, en C++, etc) se conecte como un jugador en un juego multiplayer.
PokerCompetition La Association for the Advancement of Artificial Intelligence (AAAI) organiza anualmente la Poker Competitio n , en diversas modalidades. La modalidad es cliente-servidor. Varios "jugadores" con mucha tradición y desarrollo.
Polaris (U of Alberta) juega al poker en la competencia del 2007
Existe una competencia anual !
ORTS- OpenRealTimeStrategy
Similar al Starcraft Creado por la Universidad de Alberta, Canadá, específicamente para la investigación académica en Inteligencia Artificial Algo discontinuado
Starcraft Utiliza un hack del Starcraft Broodwar que permite una inyección de dll. BWAPI
Brood War Application Programming Interface
Es un framework C++open source para crear módulos de AI para el Starcraft. • Simple de instalar • AP I fácil de usar (emula la interfaz del juego: rightClick() ) • Obtiene toda la información relevante del juego. • Permite anotaciones para debug Existe una competencia anual !
TORCS The Open Racing Car Simulator es un simulador de carreras open source. Modela con buen detalle los vehículos (aceleración, frenos, fricción, marchas, etc)
Un pequeño parche permite que un programa (J ava, C++, C#) se conecte al servidor en un juego multiplayer Un API desarrollada por la Universitat Tubingen (Alemania) ofrece: • 36 sensores para presencia de oponentes • 19 sensores de borde de pista • sensores de orientación • sensores del estado del auto Existe una competencia anual !
Unity3D Unity es un motor de juegos.
Permite la creación de juegos en escenarios 3D-2D, con programación en C#o J avaScript. Es gratuito!
Puede usarse para testear técnicas de IA en escenarios personalizados