ejemplos de investigación en videojuegos
TRANSCRIPT
Ejemplos de investigación en videojuegos
Pablo García Sánchez y Antonio Mora García Grupo @geneura
Universidad de Granada
¿Qué son los Algoritmos Evolutivos?
• Metaheurísticas
• Resuelve problemas de optimización
• Función de adecuación: fitness
• Basados en población
• Basados el principio de selección natural
• Estocásticos
Ejemplos de EAs
• Algoritmo genético: los individuos son vectores de números
• Programación genética: los individuos son árboles que codifican un programa
• Programación evolutiva: los individuos son otra estructura (ej: una red neuronal)
• Otros: EDAs, Bayesianos, DE...
Ejemplo: Super Mario Bot
• FSM en la que se evolucionan los estados actuales y las acciones (salto, correr y dirección)
Unreal Bot• Optimización de parámetros de una FSM para Unreal
Tournament 2004
• Cada cromosoma es un vector de parámetros
Unreal ExpertBot• FSM de dos niveles basándose en un jugador experto (campeón de
Andalucía) en 1vs1. • Por ejemplo, modela qué armas hay que usar. • Gana a jugadores humanos "normales"
Unreal InteractiveBot• A partir de ExpertBot
• Intervención de expertos en la ejecución del algoritmo
• Jugador experto: responde preguntas para bloquear partes del cromosoma
• Investigador experto
• Segundo puesto en la competición 2KBotPrice 2014
Real Time Strategy (RTS)• Tráfico de carreteras, finanzas o predicciones del
tiempo:
• Son entornos dinámicos y complejos
• No hay información completa o perfecta
• RTS->simplificación
• Toma de decisiones con incertidumbre
• Planificación en tiempo real
Características de los RTS
• Movimiento simultáneo
• Acciones durativas (requieren tiempo)
• Tiempo real (decisiones rápidas)
• Parcialmente observables (niebla de guerra)
• No deterministas
• Complejidad
Retos de los RTS
• Planificación
• Aprendizaje
• Incertidumbre
• Razonamiento espacial y temporal
• Explotación del dominio del conocimiento
• Descomposición en tareas
andreita42 en deviantart
Retos: Planificación
• Distintos niveles de abstracción
• Estrategias a largo plazo (partida)
• Estrategias a corto plazo (batallas)
• Técnicas: muestreo o descomposición jerárquica
pixabay.com
Retos: Aprendizaje
• Aprendizaje existente (ej. BD de partidas)
• Aprendizaje in-game (ej. aprendizaje por refuerzo)
• Aprendizaje inter-juego (ej. aprender del juego anterior para ganar en el siguiente)
soft9000.com
Retos: Incertidumbre
• Incertidumbre espacial (Niebla de guerra)
• Acciones del enemigo
commons.wikipedia.org
Retos: Razonamiento
• Razonamiento espacial: dónde colocar la base
• Razonamiento temporal: cuándo crear tecnología
fc02.deviant.org
Retos: Descomposición de tareas
• Estrategia
• Tácticas
• Control reactivo
• Análisis del terreno
• Recolección de inteligencia
• Micro y macro tareas
insightly.com
Descripción del problema
• Restricciones: • 1 segundo para decidir • No se puede usar memoria para guardar el estado
del juego • Estado actual: planetas y flotas • Acciones: un archivo de texto con acciones leído
por el juego
Estado Actual
Acciones a realizarBot
AresBot
• Seleccionar base
• Seleccionar planeta objetivo
• Por cada colonia
• Reforzar al ataque
• Ayudar al ataque
(este es Antares)
Operación Genebot• Optimización de parámetros
de AresBot
• Gen: array de parámetros
• 2-Tournament
• BLX-alpha crossover
• Re-evaluación
• 40 segundos de evaluación por individuo
Propiedad de EA (no me demandéis!)
Fitness
• Número de victorias y número de "turnos"
• Fitness basado en pesos
• Fitness lexicográfico
• 3 victorias, 30 para perder
• 5 victorias, 10 para perder
GP-bot• Nueva aproximación: Programación Genética
• El genoma esta vez es un árbol de
• Decisiones: ej. si la distancia a la base es menor 0.25
• Acciones: ej. atacar a la base con el 20% de naves
• Código Java compilado en cada evaluación usando CAssist
Ejemplo de cromosoma (árbol)
actualMyShipsRatio>0.711
attackWeakestNeutralPlanet(0.3)
attackNearestEnemyPlanet(0.2)
attackEnemyBase(0.91)
myShipsLandedFlyingRatio>0.2
Resultados (validación)
3G 7G UG 3E 7E UE
100
200
300
400
500
Configuration
Turn
s to
be
defe
ate
d
3G 7G UG 3E 7E UE
10
20
30
40
50
60
70
Configuration
Perc
enta
ge o
f vi
ctori
es
¿Criterios de parada?
• Número de generaciones
• Edad de los atípicos
• Tasa de reemplazo
• Llegar al umbral de fitness
• Mejora del fitness respecto a la media
¿Qué hemos aprendido?• Comparar con la versión anterior y mejorarla
• Usar fitness jerárquicos
• Re-evaluación de individuos
• Validar siempre contra bots/mapas no usados para aprendizaje
• Criterios de parada basados en reemplazo
• Usar software libre
¿Por qué StarCraft?
• Competiciones: CIG, AIIDE, SCSC...
• Librerías y frameworks disponibles
• Bases de datos de replays (ej: http://bwreplays.com/)
• Test-bed unificado en investigación en RTS
BWAPI• Permite crear AIs para SC creando un .dll
• Información sobre:
• Juego: minerales, mapa, tipo de juego, latencia...
• Unidades: distancia, velocidad, detección, estado...
• Jugador: raza, estado, recursos, muertes...
StarCraftGP
• Framework para generar automáticamente bots que juegan a Starcraft usando programación genética
• Basado en uGP3 • Usamos GP Lineal para generar bots usando el
framework uGP3 (usando OpprimoBot como base) • En colaboración con el INRA y el Politécnico de Turín
Fitness• Usamos estrategias hechas a mano dentro de OpprimoBot • Fitness jerárquico (e iterativo) basado en victorias
• Tier 1: Fáciles • Tier 2: Medios • Tier 3: Difíciles • Score
• Fitness basado en informe (guardamos un .txt por partida) • Victorias militares • Victorias económicas • Unidades destruidas • Unidades muertas • Score
External Evaluator
Evolutionary Core
Constraints
.txt
.txt
TournamentManager
External Evaluator
Individual.DLL
results.txt Parser
Fitness values
VM Server
VM Client
VM Client
VM Client
…
VStudio Compiler
Individual.cpp
Generación de Contenidos
Generación de historias en entornos masivamente distribuidos: MADE
Propiedad de Bethesda
MADE
• Massive Artificial Drama Engine
• Sistema multiagente optimizado por un GA
• Basado en la generación de arquetipos
Referencias (Planet Wars)• A. Fernández-Ares, A. Miguel Mora, J. J. Merelo Guervós, P. García-Sánchez, C. M. Fernandes:
Optimizing player behavior in a real-time strategy game using evolutionary algorithms. IEEE Congress on Evolutionary Computation 2011: 2017-2024 (2012)
• A. Miguel Mora, A. Fernández-Ares, J. J. Merelo Guervós, P. García-Sánchez, C. M. Fernandes: Effect of Noisy Fitness in Real-Time Strategy Games Player Behaviour Optimisation Using Evolutionary Algorithms. J. Comput. Sci. Technol. 27(5): 1007-1023 (2012)
• Antonio Fernández-Ares, Pablo García-Sánchez, Antonio Miguel Mora, Juan J. Merelo Guervós: Adaptive bots for real-time strategy games via map characterization. CIG 2012: 417-721 (2012)
• Antonio Fernández-Ares, Pablo García-Sánchez, Antonio M. Mora, Pedro A. Castillo Valdivieso, Juan Julián Merelo Guervós, Maria I. García Arenas, Gustavo Romero: It's Time to Stop: A Comparison of Termination Conditions in the Evolution of Game Bots. EvoApplications 2015: 355-368
• Pablo García-Sánchez, Antonio Fernández-Ares, Antonio Miguel Mora, Pedro A. Castillo Valdivieso, Jesús González, Juan Julián Merelo Guervós: Tree Depth Influence in Genetic Programming for Generation of Competitive Agents for RTS Games. EvoApplications 2014: 411-421
Referencias (Unreal)• Antonio Miguel Mora, Ramón Montoya, Juan Julián Merelo Guervós,
Pablo García-Sánchez, Pedro A. Castillo, Juan Luís Jiménez Laredo, Ana Isabel Martínez García, Anna Esparcia-Alcázar: Evolving Bot AI in Unreal. EvoApplications (1) 2010: 171-180
• Antonio Miguel Mora, Francisco Aisa, Ricardo Caballero, Pablo García-Sánchez, Juan Julián Merelo Guervós, Pedro A. Castillo, Raúl Lara-Cabrera: Designing and Evolving an Unreal TournamentTM 2004 Expert Bot. IWANN (2) 2013: 312-323
• Antonio Miguel Mora, M. A. Moreno, Juan Julián Merelo Guervós, Pedro A. Castillo, Maribel García Arenas, Juan Luís Jiménez Laredo: Evolving the cooperative behaviour in Unreal™ bots. CIG 2010: 241-248
Referencias (MADE)• Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan Julián Merelo
Guervós, María Isabel García Arenas, Pedro A. Castillo Valdivieso, Antonio M. Mora: How the World Was MADE: Parametrization of Evolved Agent-Based Models for Backstory Generation. EvoApplications 2015: 443-454
• Garcia-Ortega, Ruben H., et al. My life as a sim: evolving unique and engaging life stories using virtual worlds. ALIFE 14: The Fourteenth Conference on the Synthesis and Simulation of Living Systems. Vol. 14. Pages 580-587, 2014
• http://made.velonuboso.com
• @made_project
• @rubenhek
Software Libre y Ciencia Abierta
• GitHub: fergunet, deantares, amorag, jjmerelo, geneura, geneura-papers
• http://geneura.ugr.es
• El texto de esta presentación es CC-SA-BY (imágenes usadas con licencia libre, no comercial, salvo imágenes de Blizzard, Bethesda y EA)