ejemplos de investigación en videojuegos

61
Ejemplos de investigación en videojuegos Pablo García Sánchez y Antonio Mora García Grupo @geneura Universidad de Granada

Upload: pablo-garcia

Post on 18-Jul-2015

677 views

Category:

Technology


2 download

TRANSCRIPT

Ejemplos de investigación en videojuegos

Pablo García Sánchez y Antonio Mora García Grupo @geneura

Universidad de Granada

Índice

• Algoritmos Evolutivos

• FPS

• RTS

• Generación de Contenidos

commons.wikipedia.org

Algoritmos Evolutivos

hideyourarms.com

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

Etapas de un EA

Ejemplo: Super Mario Bot

• FSM en la que se evolucionan los estados actuales y las acciones (salto, correr y dirección)

FPS

commons.wikipedia.org

Unreal Tournament 2004 • Editor con UnrealScript

• Motor Java para acceder al juego: POGAMUT

Unreal Bot• Optimización de parámetros de una FSM para Unreal

Tournament 2004

• Cada cromosoma es un vector de parámetros

UnrealBot Team

• Igual, pero se optimizan los parámetros de un equipo

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

RTS

commons.wikipedia.org

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

Planet Wars

gaskin1982.deviantart.com

Planet Wars

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)

FSM

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

Exp-Genebot• Detección de tipo de mapa para escoger un conjunto

de parámetros ya optimizado

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

¿Cuándo paramos?

¿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

StarCraft

Propiedad de Blizzard

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

ChaosLauncher

Tournament Manager

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

Ejemplo de bot

Resultados

Generación de Contenidos

Generación de historias en entornos masivamente distribuidos: MADE

Propiedad de Bethesda

El problema

MADE

• Massive Artificial Drama Engine

• Sistema multiagente optimizado por un GA

• Basado en la generación de arquetipos

Arquetipos

Laffent en deviantart.org

Metodología

Agente

Librerías

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)

Muchas gracias!

• @fergunet

• @amoragar

• @geneura