Este documento presenta varios ejemplos de investigación en videojuegos realizada por el Grupo @geneura de la Universidad de Granada, incluyendo el uso de algoritmos evolutivos para optimizar comportamientos en juegos como Super Mario y Unreal Tournament, así como para crear bots para juegos de estrategia en tiempo real como Planet Wars y StarCraft. También se describe el uso de programación genética para generar contenido narrativo dinámico en entornos virtuales masivamente distribuidos.
4. ¿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
5. 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...
12. 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"
13. 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
15. 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
16. 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
17. 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
18. 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
19. 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
25. 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 realizar
Bot
26. AresBot
• Seleccionar base
• Seleccionar planeta objetivo
• Por cada colonia
• Reforzar al ataque
• Ayudar al ataque
(este es Antares)
28. 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!)
29. 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
31. 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
33. Resultados (validación)
3G 7G UG 3E 7E UE
100200300400500
Configuration
Turnstobedefeated
3G 7G UG 3E 7E UE
10203040506070
Configuration
Percentageofvictories
34. ¿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
36. ¿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
38. ¿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
39. 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...
42. 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
43. 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
57. 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
58. 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
59. 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
60. 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)