Generación Automática De Mapas 2D Mediante La Adaptación De La Dificultad a La Habilidad Del Usuario Procedural 2D Map Generation with Dynamic Difficulty Adjustment
Total Page:16
File Type:pdf, Size:1020Kb
Generación automática de mapas 2D mediante la adaptación de la dificultad a la habilidad del usuario Procedural 2D map generation with dynamic difficulty adjustment Trabajo de Fin de Grado Curso 2019-2020 Autor Mario Jiménez Contreras Director Prof. Dr. D. Carlos León Aznar Grado en Desarrollo de Videojuegos Facultad de Informática Universidad Complutense de Madrid 1 2 Generación automática de mapas 2D mediante la adaptación de la dificultad a la habilidad del usuario Procedural 2D map generation with dynamic difficulty adjustment Trabajo de Fin de Grado en Desarrollo de Videojuegos Departamento de Ingeniería del Software e Inteligencia Artificial Autor Mario Jiménez Contreras Director Prof. Dr. D. Carlos León Aznar Convocatoria: junio 2020 Grado en Desarrollo de Videojuegos Facultad de Informática Universidad Complutense de Madrid 3 4 Resumen Hallar el perfecto equilibrio de dificultad para un videojuego es una tarea tediosa y requiere de un grupo de diseñadores, encargados de las mecánicas y el diseño de niveles. Esta tarea puede ser más sencilla mediante técnicas de inteligencia artificial, utilizando aprendizaje automático. Por ello, este proyecto tiene como objetivo generar mapas con una dificultad adaptada a la habilidad del jugador. Se ha creado un videojuego con vista cenital, de género Roguelike (de mazmorras), cuyos niveles son generados procedimentalmente. Cuenta con una mecánica básica de movimiento en ocho direcciones y con disparo en 360 grados. La meta es obtener un número concreto de coleccionables en cada ronda para avanzar a la siguiente, evitando además ser eliminado por los enemigos, que se desplazan hacia el avatar del jugador, restándole vida por contacto. Durante las sesiones de juego se recogen los valores de las variables que modelan el entorno del juego, como el tamaño de la mazmorra o el número de habitaciones, además de las encargadas de configurar el comportamiento de los enemigos. Esta información se almacena en forma de trazas y se envían a un servidor cada vez que finaliza una ronda, para posteriormente recoger y procesar los datos y con ellos, obtener una fórmula que modela la dificultad de los mapas a generar. El objetivo de la fórmula es dar con un valor que equilibre la experiencia de usuario entre divertida y desafiante, evitando el aburrimiento y consiguiendo una evolución del dominio del jugador sobre el juego. El resultado obtenido muestra una mejora positiva sin intervención humana del 16% en cuanto a la calidad de la experiencia vivida por los usuarios cuando se adapta la dificultad a la habilidad del jugador. Palabras clave Generación procedimental, inteligencia artificial, aprendizaje automático, videojuego, roguelike, diseño de videojuegos. 5 6 Abstract Finding the difficulty balance in video games is a tedious task. It requires a group of video game designers working on the mechanics, gameplay and level design. Designing can be eased with artificial intelligence algorithms, in this case, using machine learning. Hence the creation of a project whose main objective is to generate maps with dynamic difficulty adapted to the ability of each player. The project consists on a video game with top-down view, Roguelike’s genre, with levels generated procedurally. Player movement is simple, with eight possible directions and 360 shooting. The goal is to get all the collectibles in the level in order to get to the next level. Levels also have enemies that run to the player to damage him. During game sessions, information about the variables that determine level generation is recorded. These variables are dungeon size, number of rooms, collectibles, enemies’ behavior, speed, action zone or the amount of damage received. This information will be processed to create a formula that models map’s difficulty. The purpose of the formula is to balance user experience between fun and challenging to avoid boredom and improve the player’s ability. The result is a 16% improvement when difficulty adjustment is active. Keywords Procedural generation, artificial intelligence, machine learning, video game, roguelike, video game design. 7 Agradecimientos A mi director, Carlos León Aznar, por su ayuda desde el primer minuto, por la idea, su guía, por tantas reuniones y por ponerme los pies sobre la Tierra. A mis padres, a mi hermana, a compañeros y amigos que me han apoyado, animado, aconsejado, y, si ha hecho falta, ayudado a desconectar. A David y a Owen, mis amigos más cercanos, por insistirme, cerveza en mano, en terminar de una vez este proyecto y esta etapa. Y agradecer muchísimo al conjunto de profesionales de los sectores del videojuego y de la educación que hay en España, por su ayuda en la difusión de este proyecto y por sus buenas palabras. 8 9 Índice Resumen ................................................................................................................................ 5 Abstract ................................................................................................................................. 7 Agradecimientos ..................................................................................................................... 8 Índice ................................................................................................................................... 10 Índice de figuras .................................................................................................................... 13 1. Introducción .................................................................................................................. 15 1.1 Dificultad en videojuegos .............................................................................................. 17 1.2 Motivación ............................................................................................................. 17 1.3 Objetivos ................................................................................................................ 19 1.4 Metodología ........................................................................................................... 20 1.5 Planificación/estimación .......................................................................................... 23 1.6 Estructura del documento ......................................................................................... 24 1. Introduction ................................................................................................................... 26 1.1 Difficulty in video games ......................................................................................... 27 1.2 Motivation .............................................................................................................. 27 1.3 Objectives .............................................................................................................. 28 1.4 Methodology .......................................................................................................... 29 1.5 Planning/estimation ................................................................................................. 31 1.6 Document structure ................................................................................................. 32 2. Estudio del trabajo previo ................................................................................................ 34 2.1 Generación procedimental ........................................................................................ 34 2.1.1 Métodos para la generación procedimental de mapas 2D ....................................... 35 2.1.2 Videojuegos y casos de estudio que hacen uso de la generación procedimental ........ 39 2.1.3 Documentos sobre la generación de contenido adaptado a la habilidad del usuario ... 46 2.2 Aprendizaje automático y sus aplicaciones ................................................................. 49 2.3 Dificultad, curva de aprendizaje y videojuegos comerciales con dificultad adaptativa ...... 50 2.4 Tecnologías relevantes utilizadas............................................................................... 54 2.4.1 Unity 2018 ...................................................................................................... 54 2.4.2 Dungeon Tools ................................................................................................ 55 2.4.3 Material-UI ..................................................................................................... 55 2.4.4 Json-server ...................................................................................................... 56 2.4.5 Rstudio y LibSVM ........................................................................................... 56 10 3. Generación de niveles con ajuste de dificultad ................................................................... 58 3.1 Diseño del primer prototipo jugable ........................................................................... 59 3.1.1 Elección de perspectiva: 2D vs. 3D..................................................................... 59 3.1.2 Selección del estilo visual. Estética. .................................................................... 60 3.1.3 Control del avatar. Tipo de movimiento y teclas asignadas. ................................... 60 3.1.4 Desglose de elementos del videojuego ................................................................ 61 3.1.5 Generación de mapas ........................................................................................ 62 3.1.6 Mecánicas ......................................................................................................