Generación procedural inteligente de niveles de plataforma 2D utilizando algoritmos genéticos

En este texto se detalla el razonamiento y los pasos detrás de la implementación de un algoritmo genético capaz de generar niveles de un juego de plataforma 2D. El trabajo utiliza generación procedural de contenido para obtener niveles que luego de completados por un jugador son analizados para ex...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Spinelli, Julián
Formato: Artículo revista
Lenguaje:Español
Publicado: Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exactas 2019
Materias:
Acceso en línea:https://www.ridaa.unicen.edu.ar/xmlui/handle/123456789/2063
Aporte de:
Descripción
Sumario:En este texto se detalla el razonamiento y los pasos detrás de la implementación de un algoritmo genético capaz de generar niveles de un juego de plataforma 2D. El trabajo utiliza generación procedural de contenido para obtener niveles que luego de completados por un jugador son analizados para extraer secuencias que serán reutilizadas en próximos niveles. Las secuencias extraídas son procesadas utilizando dos versiones de algoritmos genéticos una que utiliza crossover y otra que no. El objetivo detrás de la utilización de algoritmos genéticos es obtener nuevas secuencias que resulten más difíciles para el jugador y que sean derivadas de su perfomance en niveles anteriores. Se optó por utilizar algoritmos genéticos debido a la potencia que tienen para derivar soluciones de otras. Esta potencia es producto en gran parte de los mecanismos de mutación y crossover guiados por la función fitness para producir soluciones que se aproximen a una solución ideal. Esto combinado con la facilidad de recopilación de datos del jugador en un juego 2D permitió brindarle suficiente información al algoritmo genético como para que las soluciones sean adecuadas al problema a resolver. Para la validación del trabajo se realizaron dos experimentos con jugadores donde se midió su performance haciendo uso de las mismas métricas utilizadas para comparar secuencias, esto se cotejó con la percepción de cada jugador de los niveles completados. Cada jugador debió completar diversos niveles con cuatro generadores, uno aleatorio cuyo objetivo es funcionar como baseline, uno que utiliza una heurística (utilizado solo en el primer experimento) y las dos versiones de los algoritmos genéticos. A través del análisis de la información obtenida se comprobó que las métricas utilizadas para determinar la dificultad de las secuencias y niveles eran efectivas. Los niveles obtenidos de los generadores genéticos probaron tener una curva de dificultad menor que la del generador aleatorio, esto probó ser positivo debido a que los jugadores se vieron muy frustrados por los niveles del generador aleatorio. Por último la versión sin crossover produjo “niveles más coherentes” que la otra, esta diferencia se concluyó fué producto de la gran tasa de aleatoriedad que introduce el crossover, algunas soluciones no cuentan con ninguna de las secciones difíciles de los padres.