Matchmaking inteligente adaptado a necesidades competitivas y sociales Intelligent matchmaking adapted to competitive and social needs Trabajo de Fin de Grado Curso 2022–2023 Autores Manuel Adeliño Consuegra Pablo González Álvarez Javier Meitín Moreno Alejandro Ortega Ruiz David Rodríguez Gómez Director Carlos León Aznar Grado en Desarrollo de Videojuegos Facultad de Informática Universidad Complutense de Madrid Agradecimientos Nos gustaría expresar nuestro profundo agradecimiento a todas las personas que estuvieron involucradas en la realización de nuestro proyecto de final de grado. En primer lugar, deseamos agradecer a nuestro mentor Carlos León quien nos acompañó en esta apasionante aventura académica. Su dedicación, paciencia y conocimiento han sido invaluables durante todo el proceso, apoyándonos y motivándonos en cada etapa del proyecto. Valoramos su compromiso y dedicación a nuestro trabajo. También nos gustaría agradecer a nuestras familias y amigos, los cuales han estado a nuestro lado apoyándonos incondicionalmente durante todo el proceso. Vuestras palabras de aliento, comprensión y motivación nos han ayudado a superar incluso los momentos más difíciles. Agradecemos su apoyo emocional que ha sido fundamental para nuestro éxito. También nos gustaría agradecer a todos los individuos que participaron en las prue- bas de usuario de nuestro proyecto. Su participación activa, comentarios y retroali- mentación nos han brindado información valiosa para mejorar y perfeccionar nuestro trabajo. Agradecemos su generosidad y disposición a colaborar ya que su aporte fue fundamental para el desarrollo de nuestro proyecto. Además, agradecemos la cooperación de otras partes interesadas clave en el pro- ceso, como nuestros compañeros de clase que nos ayudaron y apoyaron en cada paso del camino. Aunque es imposible nombrarlos a todos, su colaboración, compañeris- mo y solidaridad han sido fundamentales para resolver problemas y celebrar éxitos en este proceso de aprendizaje. En general, estamos muy agradecidos con todos los que nos han acompañado en este camino académico. Su apoyo incondicional, dedicación e inversión han sido fun- damentales para el éxito de nuestro trabajo. Somos afortunados de contar con su apoyo y gratitud, ya que no podríamos haberlo hecho sin su ayuda. ¡Gracias por ser parte de este increíble y gratificante viaje! iii Resumen Matchmaking inteligente adaptado a necesidades com- petitivas y sociales La mejor forma de crear y diseñar un sistema de matchmaking siempre ha sido una incógnita, es por ello que se ha planteado descubrir si este se puede mejorar y hacer más agradable la partida para el jugador teniendo en cuenta la personalidad de los jugadores. Para ello con este Trabajo de Fin de Grado se ha creado y evaluado un sistema de matchmaking para juegos en línea que tiene en cuenta tanto las necesidades com- petitivas como las sociales de los jugadores. El objetivo es diseñar un sistema que proporciona una experiencia de juego equilibrada y satisfactoria para los usuarios, valorando factores como la destreza, las preferencias de juego y la interacción social. El juego desarrollado combina elementos de estrategia, acción y multijugador en línea, lo que ha permitido llevar a cabo pruebas exhaustivas del sistema de match- making y recopilar datos significativos (de cara al objetivo principal) de manera iterativa. A través de las pruebas realizadas con el nuevo sistema de matchmaking, se han obtenido resultados en cuanto a la satisfacción de cada jugador y el equilibrio del juego, lo que ha permitido mejoras progresivas en cada iteración. Estas pruebas han demostrado el potencial del sistema de matchmaking para mejorar significati- vamente la experiencia de juego en los juegos multijugador en línea, al proporcionar partidas mas satisfactorias para los jugadores lo cual deja el camino abierto a un posterior desarrollo y estudio del sistema. Palabras clave Matchmaking, Experiencia de juego, Satisfacción del jugador, Aspectos sociales, Nivel de habilidad. v Abstract Intelligent matchmaking adapted to competitive and social needs The best way to create and design a matchmaking system has always been a big unknown, so we have been looking to find out if it can be improved and make the game more enjoyable for the player by taking into account the personality of the players. For this purpose, this Final Degree Project has created and evaluated a match- making system for online games that takes into account both the competitive and social needs of the players. The objective is to design a system that provides a balanced and satisfactory gaming experience for users, valuing factors such as skill, game preferences and social interaction. The developed game combines elements of strategy, action and online multiplayer, which has allowed for extensive testing of the matchmaking system and gather- ing meaningful data (towards the main goal) in an iterative manner. Through the tests conducted with the new matchmaking system, results have been obtained in terms of individual player satisfaction and game balance, allowing for progressive improvements in each iteration. These tests have demonstrated the potential of the matchmaking system to significantly improve the gaming experience in online mul- tiplayer games by providing more satisfying matches for players, which leaves the way open for further development and study of the system. Keywords Matchmaking, Game Experience, Player Satisfaction, Social Aspects, Skill level. vii Índice 1. Introducción 1 1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5. Plan de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Estado de la Cuestión 9 2.1. Proceso de emparejamiento . . . . . . . . . . . . . . . . . . . . . . . 9 2.2. Sistemas de emparejamiento de jugadores (matchmaking) . . . . . . . 10 2.3. Sistemas de matchmaking más influyentes . . . . . . . . . . . . . . . 11 2.3.1. Elo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.2. Glicko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.3. Glicko 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.4. MMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.5. TrueSkill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4. Tipos de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.1. Tipos de jugadores de Bartle (1996) . . . . . . . . . . . . . . . 29 2.4.2. Demographic Game Design Model (2005) . . . . . . . . . . . . 30 2.4.3. Player Types (2013) . . . . . . . . . . . . . . . . . . . . . . . 31 2.4.4. Teoría de la personalidad de Myers-Briggs . . . . . . . . . . . 33 2.5. Big Five . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3. Diseño del sistema de matchmaking para el estudio con la perso- nalidad 37 3.1. Matchmaking basado en orden de llegada . . . . . . . . . . . . . . . . 38 3.2. Matchmaking Elo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.3. Matchmaking Elo Bayesiano - Roles . . . . . . . . . . . . . . . . . . . 38 3.3.1. ¿Por qué utilizar Big Five? . . . . . . . . . . . . . . . . . . . . 39 3.3.2. Roles en la partida . . . . . . . . . . . . . . . . . . . . . . . . 40 3.3.3. Emparejamiento por roles . . . . . . . . . . . . . . . . . . . . 41 ix 3.3.4. Modificaciones al Elo . . . . . . . . . . . . . . . . . . . . . . . 42 4. Arquitectura del sistema del matchmaking 49 4.1. Servidor de matchmaking . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2. Servidor de juego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3. Funcionamiento del jugador . . . . . . . . . . . . . . . . . . . . . . . 50 4.4. Flujo de servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.5. Firebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.5.1. Inicio de sesión . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.5.2. Almacenamiento de datos . . . . . . . . . . . . . . . . . . . . 52 4.6. Photon PUN2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7. Photon BOLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5. Caso de estudio 55 5.1. Mighty Heroes Arena . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2. Mecánicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.2.1. Combate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.2.2. Movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2.3. Partidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.3. Dinámicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.4. Estética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.5. Interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.6. Controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.7. Menús y flujo de juego . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.7.1. Inicio de sesión . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.7.2. Menú principal . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.7.3. Lobby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.7.4. Pantalla de fin de partida . . . . . . . . . . . . . . . . . . . . 64 5.8. Personajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.9. Mapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.10. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.11. Herramientas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6. Pruebas de usuario 69 6.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.2. Metodología y proceso . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.3. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.3.1. Primera sesión de pruebas . . . . . . . . . . . . . . . . . . . . 71 6.3.2. Segunda sesión de pruebas . . . . . . . . . . . . . . . . . . . . 76 6.3.3. Tercera sesión de pruebas . . . . . . . . . . . . . . . . . . . . 78 6.3.4. Generador de partidas . . . . . . . . . . . . . . . . . . . . . . 79 6.4. Análisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7. Discusión y análisis de resultados 83 8. Conclusiones y Trabajo Futuro 87 8.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 8.2. Hypothesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 8.3. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.4. Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.5. Work Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 8.6. Document Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Conclusions and Future Work 97 Contribuciones Personales 99 Índice de figuras 1.1. Organización TFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1. Modelo de Richard Bartle . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2. Modelo inicial de Andrzej Marczewski . . . . . . . . . . . . . . . . . . 31 2.3. Modelo final de Andrzej Marczewski . . . . . . . . . . . . . . . . . . 32 4.1. Diagrama de ciclo del juego . . . . . . . . . . . . . . . . . . . . . . . 51 4.2. Ejemplo de nuestra base de datos . . . . . . . . . . . . . . . . . . . . 52 5.1. Logotipo del juego . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2. Barra de vida y de munición del jugador . . . . . . . . . . . . . . . . 59 5.3. Marcador de la partida . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.4. Salud de los enemigos . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.5. Esquema controles móvil . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.6. Esquemas controles teclado . . . . . . . . . . . . . . . . . . . . . . . 61 5.7. Resultados de satisfacción con los controles . . . . . . . . . . . . . . . 62 5.8. Diagrama del flujo de menús . . . . . . . . . . . . . . . . . . . . . . . 62 5.9. Diagrama del flujo de juego . . . . . . . . . . . . . . . . . . . . . . . 63 5.10. Pantalla inicio de sesión . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.11. Pantalla Menú Principal . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.12. Pantalla Lobby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.13. Pantalla de fin de partida . . . . . . . . . . . . . . . . . . . . . . . . 65 5.14. Mapa de juego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.15. Gameplay de Brawl Stars . . . . . . . . . . . . . . . . . . . . . . . . 66 5.16. Gameplay de Heroes Strike . . . . . . . . . . . . . . . . . . . . . . . . 67 6.1. Matriz de correlación del día 29/03 . . . . . . . . . . . . . . . . . . . 72 6.2. Matriz de correlación del día 02/04 . . . . . . . . . . . . . . . . . . . 73 6.3. Matriz de correlación del día 02/04 definitiva . . . . . . . . . . . . . . 74 6.4. Matriz de correlación del día 02/04 con satisfacciones . . . . . . . . . 75 6.5. Matriz de correlación del día 02/04 de gamestats y satisfacción . . . . 75 6.6. Matriz de correlación del día 02/04 de personalidad y satisfacción . . 76 6.7. Matriz de correlación del día 14/04 . . . . . . . . . . . . . . . . . . . 77 xiii 6.8. Matriz de correlación del día 15/04 . . . . . . . . . . . . . . . . . . . 78 6.9. Matriz de correlación del día 24/05 . . . . . . . . . . . . . . . . . . . 79 6.10. Distribución de jugadores con Elo sin modificar . . . . . . . . . . . . 80 6.11. Distribución de jugadores con Elo modificado . . . . . . . . . . . . . 81 8.1. TFG Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Índice de tablas 2.1. Tabla USCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2. Tabla FIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1. Tabla de aportaciones según rol y compañero . . . . . . . . . . . . . . 44 3.2. Tabla de la suma según la contribución . . . . . . . . . . . . . . . . . 47 xv Capı́tulo 1 Introducción En los últimos años, la popularidad de los videojuegos multijugador en línea se ha disparado. Esto ha dado lugar a que muchos juegos se adapten para brindar a los jugadores la oportunidad de competir con otros jugadores y competir entre sí con aquellos que tienen un nivel de habilidades similar. Para mantener los juegos interesantes y atractivos se han desarrollado varios sistemas de emparejamiento y clasificación tanto para juegos tradicionales como el ajedrez como para videojuegos multijugador en línea como League of Legends1, Valorant2 o Counter Strike3. La evolución de los juegos multijugador ha sido un fenómeno destacado en la indus- tria del entretenimiento digital en los últimos años. Con el avance de la tecnología y la creciente disponibilidad de conexiones a Internet rápidas y estables, se ha pro- ducido un cambio significativo en la forma en que los jugadores interactúan entre sí. La transición de los juegos multijugador local a online ha sido uno de los ma- yores impulsores de este cambio. Antes de la era digital, los jugadores se reunían físicamente en un mismo lugar para disfrutar de sesiones de juego compartidas. Sin embargo, con el auge de las plataformas de juego en línea, los jugadores ahora pue- den conectarse y competir con personas de todo el mundo sin importar su ubicación geográfica. Esta transición se ha visto acelerada aún más por la pandemia global, ya que las medidas de distanciamiento social impuestas han limitado las interacciones físicas y han llevado a un aumento significativo en la popularidad de los juegos en línea. Los juegos multijugador online se han convertido en una herramienta clave para mantener la conexión social y el entretenimiento durante estos tiempos difíci- les, permitiendo a los jugadores interactuar y compartir experiencias en un entorno virtual, a la vez que fomentan la competencia y la cooperación entre ellos. Esta transición de los juegos multijugador local a online ha transformado la manera en que las personas experimentan y disfrutan del juego, abriendo nuevas posibilidades para la interacción social y la creación de comunidades virtuales. Uno de los principales objetivos es crear sistemas de calificación y clasificación que 1https://www.leagueoflegends.com/es-es/ 2https://playvalorant.com/es-es/ 3https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/ 1 2 Capítulo 1. Introducción permitan a los jugadores competir contra oponentes de habilidades similares, asig- nándoles así tareas que fueran apropiadas para su nivel. Esto mantiene a los ju- gadores motivados y comprometidos con la competencia en línea y disfrutando del juego. 1.1. Motivación Este proyecto surge como respuesta a la creciente necesidad de mejorar la expe- riencia de juego en los juegos multijugador en línea. A medida que estos juegos se vuelven cada vez más populares, se ha vuelto evidente que los sistemas de matchma- king actuales pueden ser insuficientes para garantizar una experiencia equilibrada y satisfactoria para todos los jugadores. Los sistemas de matchmaking existentes a menudo se centran únicamente en los aspectos competitivos del juego, como el nivel de habilidad o la clasificación, lo que puede generar partidas desequilibradas y frustrantes para aquellos jugadores que buscan una experiencia más inclusiva y divertida. Además, estos sistemas no tienen en cuenta la dinámica general de la par- tida, como los roles de personalidad y estilo de juego de los jugadores, que pueden influir significativamente en la interacción y la diversión en el juego. Los roles de personalidad, que se explicarán con mayor detalle más adelante en este proyecto, desempeñan un papel crucial en la forma en que los jugadores interactúan y se re- lacionan entre sí durante una partida, y su consideración puede contribuir a una experiencia de juego más enriquecedora y gratificante. Por lo tanto, en este proyecto se busca crear un sistema de matchmaking que tenga en cuenta tanto los aspectos sociales como los competitivos del juego. Se espera que al hacerlo, se pueda mejorar la experiencia de juego de los jugadores al proporcionar partidas equilibradas y satisfactorias no teniendo en cuenta solo el resultado, sino en elementos como inmersión, desafío, progresión y interacción social para brindar satisfacción al jugador. Además, este enfoque más amplio puede fomentar una mayor interacción social en los juegos multijugador haciendo que esta sea mejor y pueda evolucionar la forma de comunicarse en los equipos, lo que podría tener un impacto positivo en la industria de los juegos en línea. 1.2. Hipótesis Hay relación entre los distintos tipos de personalidades y roles que un jugador puede adoptar en un videojuego con la diversión del usuario en la partida, de ma- nera que en caso positivo se le empareje de acuerdo a dicho sistema. Esto haría que el jugador sea emparejado con lo que de acuerdo a la hipótesis le generaría mayor satisfacción en la partida de manera que se divierta. Para comprobar dicha hipótesis se preguntan las siguientes preguntas de inves- tigación: 1.3. Objetivos 3 ¿El sistema de matchmaking empareja correctamente según el Elo de los ju- gadores que se encuentren en la sala de espera? ¿Hay correlación entre el rendimiento de los jugadores en la partida con las puntuaciones de Elo obtenidas en la partida? ¿Existe relación entre los roles de los jugadores con sus rasgos de personalidad de Big Five? ¿Según la relación de equipos que se han formado en la partida, los jugadores se han sentido más satisfechos y se han divertido más que sin tener en cuenta los roles previos? ¿La satisfacción de jugadores afecta al rendimiento de juego? 1.3. Objetivos El objetivo principal de este proyecto es diseñar y desarrollar un sistema de matchmaking que tenga en cuenta tanto los aspectos competitivos como los sociales del juego. Se espera que este enfoque más amplio permita proporcionar partidas equilibradas y satisfactorias para los jugadores, mejorando así su experiencia de jue- go. y así mejorar la experiencia de juego de los usuarios de juegos multijugador en línea. A partir de este objetivo principal, se pretende evaluar la efectividad del sistema de matchmaking desarrollado. Se realizarán pruebas y análisis para evaluar la sa- tisfacción del jugador y el equilibrio de las partidas. Con base en estos resultados, se determinará si el sistema de matchmaking desarrollado es efectivo para mejorar la experiencia de juego en los juegos multijugador en línea. En última instancia, se espera que este proyecto tenga un impacto positivo en la industria de los juegos en línea al fomentar una mayor interacción social y mejorar la satisfacción del jugador en los juegos multijugador. Para completar el objetivo principal, primero se deben alcanzar los siguientes obje- tivos secundarios: Investigación: Investigación de herramientas para crear juegos en red, así como el estudio de la mejor elección de cara a la idea planteada de juego a probar. Y por otra parte, una investigación de cuáles son los sistemas de matchmaking que funcionan en la actualidad, sus debilidades y potencialidades, además de cómo podrían ayudar a mejorar nuestro matchmaking. Prototipo base: Comprender en detalle el funcionamiento complejo y dinámico de las infraestructuras de red, incluyendo tanto su arquitectura física como su configuración lógica. Juego Online: Diseñar y crear un videojuego online que nos permita probar y modificar de una forma sencilla el sistema de matchmaking del mismo. 4 Capítulo 1. Introducción Pruebas de Usuario: Testear, verificar y estudiar la efectividad y la respuesta de la gente al sistema de matchmaking creado para buscar puntos de mejora. 1.4. Metodología El proyecto se ha desarrollado utilizando la metodología ágil de Scrum, una estrategia de gestión de proyectos que ha demostrado ser altamente efectiva para lograr resultados exitosos y adaptarse a los cambios constantes que surgen durante el proceso de desarrollo. En el enfoque de trabajo, se han establecido reuniones semanales regulares para revisar el progreso del proyecto, identificar posibles obstáculos y tomar decisiones basadas en la retroalimentación obtenida. Estas reuniones de sprint, han permitido mantener una comunicación fluida y constante entre todos los miembros del equipo. Durante cada reunión de sprint, se han definido los objetivos a alcanzar en el pe- ríodo siguiente, generalmente de una o dos semanas de duración. Estos objetivos se establecen en colaboración con el equipo, teniendo en cuenta las prioridades y el alcance del proyecto. Una vez establecidos los objetivos, las tareas se dividen entre los diferentes miembros del equipo, asignando responsabilidades individuales. La separación de tareas ha sido fundamental para garantizar un flujo de trabajo eficiente y una distribución equitativa de la carga de trabajo. Cada integrante ha asumido la responsabilidad de las tareas asignadas y ha trabajado de manera au- tónoma para completarlas dentro del marco de tiempo establecido. Además, hemos fomentado la colaboración y la comunicación continua, de manera que cualquier im- pedimento o duda pueda ser abordado de manera oportuna y eficaz. Las herramientas que hemos utilizado para este trabajo son: Unity : Unity es un motor de juego multiplataforma que permite el desarrollo de videojuegos y aplicaciones interactivas. Proporciona herramientas intuitivas para crear entornos 2D y 3D, soporta múltiples plataformas y tiene una gran comunidad de desarrolladores. Es ampliamente utilizado en la industria de los videojuegos y la realidad virtual. https://unity.com/es/download Arte realizado en Blender : Blender es un software de modelado, animación y renderizado 3D de código abierto. Ofrece herramientas avanzadas para la creación de gráficos, efectos visuales y animaciones, y es ampliamente utiliza- do en la industria del cine, los videojuegos y la producción de contenido digital. https://www.blender.org/download/ Photon PUN2 y Bolt : Photon Bolt es un complemento de red de alto ren- dimiento para el motor de juego Unity. Proporciona una solución para la https://unity.com/es/download https://www.blender.org/download/ 1.5. Plan de trabajo 5 sincronización en tiempo real de objetos y acciones en juegos multijugador, facilitando la creación de experiencias de juego en línea fluidas y estables. Photon PUN2 es un complemento de red para Unity que facilita la creación de juegos multijugador en tiempo real. https://www.photonengine.com/bolt https://www.photonengine.com/pun Repositorio del juego en GitHub: GitHub es una plataforma de alojamiento de código fuente y colaboración para desarrolladores. Permite a los equipos y desarrolladores individuales almacenar, compartir y controlar versiones de su código, facilitando la colaboración, el seguimiento de cambios y la gestión de proyectos de software. https://github.com/madelino22/TFG_2022-23_MM Base de datos en Firebase: Firebase es una plataforma de desarrollo de aplica- ciones móviles y web de Google que incluye una base de datos en tiempo real. Permite almacenar y sincronizar datos en la nube, proporcionando una solu- ción escalable y fácil de usar para el almacenamiento y gestión de información. https://console.firebase.google.com/u/0/project/tfgmm-23e0e/database/tfgmm- 23e0e-default-rtdb/data?hl=es Google Drive colaborativo: Google Drive es un servicio de almacenamiento en la nube ofrecido por Google. Permite a los usuarios almacenar, sincronizar y compartir archivos y carpetas en línea. Además, ofrece herramientas de colabo- ración en tiempo real y la posibilidad de acceder a los archivos desde diferentes dispositivos. https://drive.google.com/drive/u/0/folders/1RaX1–wto89gtf2gek8-ErrhfglQJeUb 1.5. Plan de trabajo Dado que el principal objetivo de este proyecto es el diseño y desarrollo de un sistema de matchmaking capaz de amoldarse a las necesidades sociales y competi- tivas de los usuarios, lo primero es investigar el estado de la cuestión y desarrollar herramientas para poder hacer pruebas controladas y extraer conclusiones. Es por eso que, de forma paralela, se va a investigar los principales sistemas de matchmaking actuales y desarrollar un simple videojuego para la realización de pruebas y recolección de datos. Una vez hecha la investigación es importante importar los modelos matemáticos de estos sistemas y hacer pruebas con datos ficticios generados con los valores que sean considerados y analizar el crecimiento o, en su defecto, disminución de los pa- rámetros importantes referentes a los usuarios. De esta forma, los investigadores se https://www.photonengine.com/bolt https://www.photonengine.com/pun https://github.com/madelino22/TFG_2022-23_MM https://console.firebase.google.com/u/0/project/tfgmm-23e0e/database/tfgmm-23e0e-default-rtdb/data?hl=es https://console.firebase.google.com/u/0/project/tfgmm-23e0e/database/tfgmm-23e0e-default-rtdb/data?hl=es https://drive.google.com/drive/u/0/folders/1RaX1--wto89gtf2gek8-ErrhfglQJeUb 6 Capítulo 1. Introducción familiarizan con estos sistemas. El siguiente paso es el diseño de un matchmaking propio con los valores que se consideren necesarios y que pueda ser una variante de un sistema ya cerrado, la mezcla de varios o incluso la creación de uno nuevo desde cero. Una vez el juego esté desarrollado se pueden comenzar las pruebas, mediante las cuales, con numerosas iteraciones, se logrará obtener valiosos datos y feedback ne- cesarios para perfeccionar el sistema. Llegado el punto de tener resultados satisfactorios y un sistema que cumpla con los objetivos preestablecidos, lo último es documentar de forma detallada una me- moria en el que se exponga todo el trabajo realizado en este estudio. De cara a la organización de trabajo, se han puesto deathlines sobre algunos as- pectos relevantes del proyecto: Proceso de investigación: Lo primero de todo del proyecto es la investigación de los matchmakings y personalidad que se realizan en los primeros 2 meses (julio y agosto). De forma paralela, se realiza el prototipado del juego, que tiene previsto durar 3 meses. Una vez hecho el propotipado, se realiza el prototipo de manera online durante 4 meses. Tras esto, se estarán haciendo pruebas de usuario constantemente durante 3 meses. Finalmente, una vez recogidos los datos, se realizará un análisis de éstos mien- tras se realiza la redacción de este documento. En la figura 1.1 se muestra de forma gráfica lo explicado anteriormente. 1.6. Estructura de la memoria En el capítulo 2 Estado de la Cuestión se tratan aspectos relacionados con la investigación previa de matchmaking, tipos de jugadores y la teoría del Big Five. En el siguiente capítulo, Diseño del sistema de matchmaking para el estudio con la personalidad, se tratan todos los matchmakings que se han utilizado a lo largo de este Trabajo de Fin de Grado. Posteriormente en el capítulo 4 Arquitectura del sistema del matchmaking, se va a tratar el cómo se han implementado los sistemas de matchmaking y cómo se ha organizado cada una de las partes del proyecto. En el siguiente capítulo, se detallará el videojuego utilizado para implementar nuestros sistemas de matchmaking (Caso de estudio). 1.6. Estructura de la memoria 7 Figura 1.1: Organización TFG En el capítulo 6 (Pruebas de usuario), se tratará todo lo relacionado con las pruebas de usuario y el resultado de cada una de ellas. Finalmente, los capítulos 7 y 8 (Discusión y análisis de resultados y Conclusiones y Trabajo Futuro) se realiza una discusión sobre los datos obtenidos en el capítulo anterior y concluye con las conclusiones finales y trabajo de cara al futuro en nuestro proyecto. Capı́tulo 2 Estado de la Cuestión Con la expansión de los videojuegos multijugador online, se ha generado una necesidad de diseñar el mejor sistema de matchmaking para evitar diferencias sig- nificativas en la experiencia con los usuarios y puede no ser satisfactorio para los jugadores que se encuentren en la partida. Se han investigado los modelos existentes de matchmaking, reflejando sus características y su funcionamiento. En muchas ocasiones, en los videojuegos en línea, se ha observado que no se ex- perimenta comodidad con el equipo o no se establece una buena conexión suficiente para que la experiencia de juego sea óptima. Por lo tanto, se tomó la decisión de estudiar la teoría de los 5 grandes rasgos de la personalidad (Big Five Theory) con el fin de aplicarla a estos sistemas. En este capítulo se abordará todo lo que se ha investigado hasta el momento, inclu- yendo la definición de un sistema de matchmaking, los tipos de matchmakings que están actualmente reconocidos, así como el enfoque en los 5 rasgos principales del Big Five y los posibles beneficios que puede tener su aplicación en un sistema de matchmaking. 2.1. Proceso de emparejamiento Es el proceso al que entra un jugador que desea buscar una partida. En él, este jugador se introduce en una cola, y el emparejador buscará, en el menor tiempo posible (20), la mejor forma de juntar estos jugadores en diferentes equipos para que la experiencia sea la mejor posible. Ahora bien, existen diversas formas de ir seleccionando los jugadores, la más simple, sacar los jugadores de la cola y organizar las partidas con las primeros jugadores que vayan buscando partida, de esta forma la cola llegará a ser de un tamaño máximo de n - 1 jugadores, siendo n el número de jugadores por partida, y con un tiempo máximo de espera dependiendo de cuantos jugadores haya jugando, y con un tiempo de espera mínimo para el último jugador que se incorpore. Sin embargo, esta forma de emparejar jugadores está bastante lejos de lo que se 9 10 Capítulo 2. Estado de la Cuestión quiere conseguir, ya que no tiene en cuenta la habilidad de los jugadores, por lo que todo lo hablado en el punto anterior. Lo que se hace en la industria es tener más de una cola en función de los factores que se quieren tener en cuenta (4) ya sea el skill rating del jugador, los mapas que prefiera jugar, el modo que le gusta, rol más jugador, personaje favorito, composición del equipo preferida, etcétera. Y en función de lo que el matchmaking necesita saca jugadores de una cola u otra. Esto, obviamente, hace que el tiempo en espera sea mayor, y que el número de personas que están esperando aumente, pero a cambio se consigue un emparejamiento más personalizado a las necesidades de cada juego. Otro modo, un poco más complejo, es utilizar Machine Learning para crear un sistema que evalúe la calidad de los encuentros, está técnica es usada por Ghost Re- con Online (5). A la hora crear posibles partidas buscan de forma aleatoria distintos equipos con personas elegidas al azar dentro de un muestreo previo donde se valora la habilidad, la latencia o el tiempo en espera, entre otras cosas, y se deja al sistema, que ha ido aprendiendo partida tras partida, que evalúe cómo de buenos son esos emparejamientos hechos, para después elegir el mejor. También existen juegos como World of Tanks1 (9) que utilizan plantillas para or- ganizar los jugadores dentro de los equipos (en el modo de juego casual), es decir, en WoT lo importante es la plantilla y no tanto la habilidad de los jugadores. En este juego cada usuario controla un tanque de combate, que pueden ser de distintos niveles (cuando más alto el nivel, más fuerte es el tanque), y se enfrenta, junto con su equipo, a otros 15 jugadores. En este matchmaking, lo primero que se hace es introducir en cada equipo un número determinado de jugadores del mismo nivel, creando así las plantillas, en las que el equilibrado no se dicta tanto por la habilidad de los jugadores si no por el equilibrio dentro del juego de los tanques que usan los jugadores, dando así un sistema de matchmaking peculiar, en el que se confía más en el buen diseño y equilibrado del juego que en la habilidad de las personas. Hay que mencionar que no sólo confía en el equilibrado, una vez hecha la plantilla también se buscan jugadores que tengan una habilidad parecida. 2.2. Sistemas de emparejamiento de jugadores (match- making) Un sistema de matchmaking es una herramienta que se utiliza en varios contextos, como videojuegos (el que importa en este contexto), sitios web de citas y aplicaciones móviles entre otros, para emparejar usuarios según criterios específicos y mejorar su experiencia. 1https://worldoftanks.eu/es/ 2.3. Sistemas de matchmaking más influyentes 11 2.3. Sistemas de matchmaking más influyentes El funcionamiento depende de algoritmos que analizan varios factores relevan- tes para crear la mejor coincidencia posible. Estos factores pueden variar según el contexto en el que se utilice el sistema, pero normalmente incluyen información co- mo habilidades, experiencia, ubicación geográfica, preferencias de juego, preferencias personales, etc. En el ámbito de los videojuegos, el objetivo principal del emparejamiento es fo- mentar un mayor deseo de jugar y promover un mayor condicionamiento operante. Se utiliza principalmente para generar partidas en línea más equitativas y justas, emparejando a jugadores con habilidades similares, con el fin de ofrecer el desafío adecuado y evitar situaciones en las que un equipo tenga una ventaja excesiva sobre el otro. El reto se basa no solo en crear partidas más equilibradas en las que disfruten los jugadores competitivos, sino que también puedan disfrutar usuarios con un perfil más casual. Cabe señalar que, aunque los sistemas de emparejamiento son muy precisos y eficien- tes, no siempre garantizan la mejor coincidencia. A veces, los algoritmos utilizados pueden no ser suficientes o no tener en cuenta algunos factores importantes, lo que lleva a resultados insatisfactorios. Por este motivo, estos sistemas se actualizan y mejoran constantemente para mejorar su eficacia. 2.3.1. Elo El concepto fundamental del Elo radica en asignar a cada jugador una puntuación numérica, que se ajusta dinámicamente después de cada partida según el resultado y la calidad del oponente. A medida que los jugadores ganan o pierden partidas, sus puntuaciones se actualizan, lo que permite un emparejamiento más equilibrado y justo. En este trabajo, se exploran y se analizan los diferentes tipos de sistemas de Elo que han surgido en distintos contextos y disciplinas, y se examina cómo han impactado en el mundo del matchmaking. 2.3.1.1. Elo clásico Sistema de puntuación patentado por Árpád Élő en los 60 con el fin de poder medir la habilidad de los jugadores en el ajedrez. Actualmente, este modelo se sigue usando en la actualidad tanto en el ajedrez (7) como en otros juegos como el GO o variantes del sistema original como puede ser el caso del ranking FIFA. En el ajedrez, la puntuación de habilidad que un jugador puede tener está comprendida entre 0 y 3000. Siendo 1500 la puntuación de un jugador promedio y más de 2000 la puntuación de un experto. La base de este sistema es que cada jugador tiene una habilidad en concreto y en función de esa puntuación de habilidad y la del rival se estima el resultado de la partida, después con el resultado de la partida entre ambos se actualiza la puntua- 12 Capítulo 2. Estado de la Cuestión ción de los jugadores y se puede llegar a la habilidad precisa de los jugadores. En caso de empate, en función de la puntuación de los jugadores, el sistema lo toma como media victoria o media derrota. Método matemático La puntuación se obtiene a partir del resultado y de la puntuación que tengan los oponente. Esta puntuación que tienen ambos jugadores es lo que decide antes de que empiece la partida la probabilidad de victoria de cada jugador E y en función del resultado de la partida y esa probabilidad se aumenta o disminuye la puntuación de cada jugador. Para calcular la probabilidad de victoria de cada jugador primero hay que usar las siguientes ecuaciones que devuelven la probabilidad de que gane cada jugador según su E, o en ese momento: EA = 1 1 + 10(RB−RA)/400) (2.1) EB = 1 1 + 10(RA−RB)/400) (2.2) Donde: E (A) y E (B) = Probabilidad de victoria de jugador A y B. R (A) y R (B) = Puntuación de habilidad antes de la partida del jugador A y B. Una vez se tiene calculado la probabilidad de victoria de cada jugador y con el resultado S de la partida, cuyo valor es 1 si ha ganado, 0.5 en caso de empate y 0 en la derrota, y factor K, que es un valor para realizar un ajuste lineal proporcional a la diferencia entre la puntuación obtenida y la esperada por un jugador, se puede calcular su nueva puntuación a través de la siguiente fórmula: R′ A = RA +K ∗ (SA − EA) (2.3) El factor K no tiene un valor concreto, dependiendo de donde se mire el sistema Elo este abarca unos valores u otros dependiendo del Elo previo a la ronda que tenga el jugador. Siendo siempre un menor valor de K para los jugadores con mayor puntuación. Estos son algunos ejemplos con sus respectivas tablas: USCF (Federación de Ajedrez de EEUU) 2 Actualmente se tiene en cuenta esta tabla teniendo en cuenta también la ronda del torneo en la que se está bajando el valor de ésta a medida que se aumentan rondas. FIDE (Federación Internacional de Ajedrez) 3 2https://new.uschess.org/ 3https://www.fide.com/ 2.3. Sistemas de matchmaking más influyentes 13 Ranking Elo Menos de 2100 Entre 2100 y 400 Mayor que 2400 Valor de K 32 24 16 Tabla 2.1: Tabla USCF Nuevos jugadores has- ta llegar a 30 partidas Menos de 2400 Elo Mayor que 2400 y 30 partidas en los últimos torneos Valor de K 32 24 16 Tabla 2.2: Tabla FIDE 2.3.1.2. Elo - MOV (Margin Of Victory) Variante del sistema Elo clásico creado por Stephanie Kovalchik (2) se usa cuan- do se tiene información detallada del rendimiento de los jugadores que predice el resultado para partidas con varias con varias rondas donde se estudia el rendimiento de cada ronda y la respuesta y la respuesta total del jugador predice el resultado del partido. Muy conocido por ser usado en el tenis. Los principios de este sistema son: Dos pasos estimación y actualización, como en el Elo clásico. Los objetivos de la estimación deben ser funciones de calificaciones relativas. Las actualizaciones de las puntuaciones son funciones de residuales. El MOV (Margen de victoria) tiene que incluirse en la estimación, en la ac- tualización o en ambas. Este algoritmo se fundamenta en dos pasos estimate y update. El primer paso con- siste en estimar que resultado va a tener la partida, mientras que el segundo consiste en tener en cuenta ese valor tomador previamente sobre el resultado y el resultado final de la partida. Para llevar acabo esto, Stephanie plantea 4 modelos distintos: Modelo lineal E-STEP En este caso para predecir el resultado esperado se restan las puntuaciones de ambos y se divide entre una constante. 14 Capítulo 2. Estado de la Cuestión M ′ ijt = Rit −Rjt σ (2.4) U-STEP Para actualizar la puntuación se usa la misma fórmula que la de actualización en el Elo clásico. Ri(t+1) = Rit +K(Mijt −M ′ ijt) (2.5) Donde: M ′ ijt es el resultado esperado de la partida. Rijt es la puntuación antes del partido del jugador i o j. Rij(t+1) es la puntuación del jugador después de la partida. K es el valor de la constante explicado en el Elo clásico. σ = 400 . Modelo aditivo Este modelo combina el modelo lineal explicado previamente añadiendo el siste- ma de Elo clásico con una pequeña variación la negación del exponente del divisor, dando resultado en dos variables de predicción y una suma en el paso de actualiza- ción. E-STEP M ′ ijt = Rit −Rjt σ1 , W ′ ijt = 1 1 + 10−(Rit−Rjt)/σ2 (2.6) U-STEP Ri(t+1) = Rit +K1(Mijt −M ′ ijt) +K2(Wijt −W ′ ijt) (2.7) Donde: W ′ ijt es el resultado esperado de la ronda según el Elo clásico. Wijt es el resultado final de la partida en el Elo. K1 y K2 son los valores de una constante como la K explicada en el Elo clásico. 2.3. Sistemas de matchmaking más influyentes 15 Modelo multiplicativo Modelo que usa una parte del modelo aditivo y que con los ejemplos de datos vistos, tiene una mayor tasa de acierto en las predicciones de resultados. E-STEP En este caso, para predecir el resultado se usa solo la fórmula añadida en el modelo aditivo respecto al modelo lineal. W ′ ijt = 1 1 + 10−(Rit−Rjt)/σ2 (2.8) U-STEP Aquí se tiene en cuenta tanto el resultado como el margen de victoria haciendo que el resultado Ri(t+1) escale y no cambie a saltos. Ri(t+1) = Rit +K(1 + |Mijt/σ1|)σ(Wijt −W ′ ijt) (2.9) σ > 0. Modelo logístico Modelo más irregular y menos preciso de los 4. E-STEP Para predecir el resultado se utiliza la misma fórmula que en el modelo aditivo añadiendo la función L a modo de parámetro regulador. W ′ ijt = L( Rit −Rjt σ2 ) (2.10) U-STEP En este caso, para actualizar la puntuación se obtiene el resultado, se divide en- tre la constante y se aplica la función L para restarle lo calculado en la predicción. Ri(t+1) = Rit +K[L( Mijt σ1 )−W ′ ijt] (2.11) 16 Capítulo 2. Estado de la Cuestión Donde L(x) = 1/(1 + σ−x) 2.3.2. Glicko Aunque Elo es una buena aproximación a un sistema de emparejamiento fiable, todavía existen algunos factores a tener en cuenta que pueden hacer que algunas partidas no sean tan igualadas como se esperaría. Por esta razón, se continúa inves- tigando en diferentes métodos de emparejamiento, lo que ha llevado al surgimiento de varios modelos nuevos, como Glicko. 2.3.2.1. Glicko 1 Glicko (1) fue concebido por Mark Glickman (15), que, siendo ya una tradición en estos métodos, le dio su nombre. Al igual que en Elo hay una variable que es la que identifica la habilidad del jugador, pero el foco de su investigación se basó en conseguir que este número fuera más fiable y consistente a la hora de clasificar a una persona, y para ello necesitaba tener en cuenta, no solo las puntuación actual del jugador, si no también en qué estado se encuentra el jugador, es por eso que introduce la variable RD (Rating Desviation). RD, desviación de la clasificación en español, varía constantemente y sirve para establecer un intervalo en el que el jugador encontrará jugadores con una habilidad parecida. Es importante mencionar que el principal uso de esta variable es conocer la exactitud y fiabilidad de la clasificación actual y que cuanto menor sea más exacto será. Llegado este punto ya se conocen las dos variables principales de este modelo, la clasificación y el RD. Lo siguiente es conocer el proceso que hace cambiar estas va- riables, y que consta de tres fases: Determinar RD Se necesita calcular el RD actual antes de determinar el nuevo rating, y para ello se utiliza la siguiente fórmula: RD = min( √ RD2 0 + c2t, 350) (2.12) Donde se selecciona el mínimo entre la raíz cuadrada y 350 (el máximo) y: RD0 es el RD previo. c representa la incertidumbre de la habilidad de la persona en un periodo de tiempo. Se puede obtener mediante el análisis de datos o mediante una estimación de cuántos periodos de tiempo (t) deben pasar para que RD vuelva a ser el valor inicial: 2.3. Sistemas de matchmaking más influyentes 17 C = √ (3502 − 502)/10 (2.13) Suponiendo que un jugador tarda 10 periodos de tiempo en volver a la in- certidumbre inicial de 350 y que la desviación media es de 50. t representa la cantidad de períodos de tiempo que han pasado desde la última vez que el usuario compitió. Dependiendo del juego un período de tiempo puede variar desde pocos minutos a incluso meses. Determinar nueva clasificación r = r0 + q 1 RD2 + 1 d2 m∑ i=1 g(RDi)(si − E(s|r0, ri, RDi)) (2.14) Donde: g(RDi) = 1√ 1 + 3q2(RD2 i ) π2 (2.15) E(s|r0, ri, RDi) = 1 1 + 10 g(RDi)(r0−ri) −400 (2.16) q = ln(10) 400 = 0,00575646273 (2.17) d2 = 1 q2 ∑m i=1 g(RDi)2(si − E(s|r0, ri, RDi))(1− E(s|r0, ri, RDi)) (2.18) ri representa las clasificaciones de cada uno de los oponentes. RDi representa la desviación de clasificación de cada uno de los oponentes. si representa el resultado de cada una de las partidas, siendo 1 victoria, 0.5 empate y 0 derrota. Básicamente, lo que hace esta fórmula es sumar a la la clasificación actual (r0); un cálculo que tiene en cuenta los resultados de distintas partidas además de la pro- pia clasificación de los oponentes. De este cálculo se puede obtener tanto un valor positivo como negativo, por lo que al final la nueva clasificación puede ser mayor o menor que la anterior, en función del desempeño del usuario. 18 Capítulo 2. Estado de la Cuestión Determinar nuevo RD El primer cálculo de RD sirve para determinarlo durante el periodo de no obser- vación. Sin embargo, este nuevo cálculo sirve para actualizar RD tras las partidas jugadas. RD′ = √ ( 1 RD2 + 1 d2 )2 (2.19) Con este cálculo el RD es actualizado, cuantas más partidas se juegan, y más activo el jugador está más baja este valor, o lo que es lo mismo, más preciso es intervalo del rating, que para recordar, se calculaba añadiendo y sustrayendo el RD al ranking total. Para resumir, y analizar el método: Glicko 1 se basa en un sistema de puntua- ción en el que cada jugador posee un número que mide su habilidad, pero como eso no es suficiente para determinar las facultades del jugador, se añade otra variable que convierte el nuevo rating del jugador en un intervalo cuyo eje de simetría es la puntuación a la que se le añade o quita la Desviación de clasificación (RD). Al inicio de cada periodo de tiempo se hace un primer cálculo del RD que se va a añadir a la calificación. Esto es para tener en cuenta si el jugador ha estado mucho inactivo, ya que no va a jugar al mismo nivel que cuando jugaba con mayor frecuen- cia. Conociendo esto ya se puede emparejar al jugador con otros, y se van registran- do los resultados de cada partida. Ahora, cuando se quiera actualizar el rating del jugador se tendrá en cuenta tanto los ratings como las desviaciones del jugador y los oponentes, además de si el jugador ha salido victorioso o no. Finalmente, tras actualizar el rating del jugador hay que actualizar el RD, ya que al haber jugado más partidas el nuevo RD será más preciso, y de esta forma, la siguiente vez, al volver al paso 1 (cálculo el RD inicial) la desviación será menor. Además, el RD puede subir tanto por inactividad del jugador como por un pequeño ajuste que se hace al principio de cada periodo de tiempo. 2.3.3. Glicko 2 Glickman (16), no conforme con el resultado de su primer acercamiento, siguió investigando y añadió una nueva variable, la volatilidad (σ) que mide el grado de fluctuación esperado en la clasificación del jugador, es decir, es una estimación de cuánto va a cambiar el rating del jugador, para así poder analizar cómo de con- sistente es el rendimiento del jugador. Esto es porque existen muchos más factores externos que sólo el tiempo sin jugar, un usuario puede haber estado jugando du- rante una gran temporada pero aún así tener un desempeño menor de lo esperado por cansancio, estado de ánimo, etc. 2.3. Sistemas de matchmaking más influyentes 19 En proceso de Glicko 2 es muy parecido a su predecesor, con tres fases diferen- ciadas, pero dejando cabida a la nueva variable, y con las variables con una capa de pintura, µ es el nuevo rating, y Φ la nueva desviación de clasificación, que se calculan con variables de Glicko. µ = (r − 1500)/173,7178 (2.20) ϕ = RD/173,7178 (2.21) Este cálculo previo se hace ya que la escala de este modelo es mucho menor y hace falta traducir los valores iniciales a esa escala. Cálculo variables auxiliares Durante un periodo de tiempo un usuario habrá participado en distintas partidas, por lo que para el cálculo de ν y ∆ (las variables auxiliares), se necesita saber el i del propio jugador y el i de cada oponente: ν es la varianza del ranking estimada en esas partidas, es decir, lo que se espera que cambie el ranking. ∆ es el cambio en el ranking real. ν = [ m∑ j=1 g(ϕj) 2E(µ, µj, ϕj) {1− E(µ, µj, ϕj)}]−1 (2.22) ∆ = ν m∑ j=1 g(ϕj) {sj − E(µ, µj, ϕj)} (2.23) Donde: g(ϕ) = 1√ 1 + 3ϕ2/π2 (2.24) E(µ, µj, ϕj) = 1 1 + exp {−g(ϕj(µ− µj))} (2.25) Para el cálculo de ν se utilizan las puntuaciones de los jugadores antes de la parti- da, mientras que para ∆ se utilizan los resultados reales de la partida. Es importante tener ambas variables, para al final compararlas y actualizar la nueva puntuación del usuario con mayor o menor medida. En este punto aún no se ha calculado la volatilidad, que se comenta a continuación. Cálculo de la volatilidad Mediante una compleja fórmula que depende tanto de los valores calculados anteriormente, como de la desviación y el rating, se obtiene la nueva volatilidad. 20 Capítulo 2. Estado de la Cuestión f(x) = 1 2 ex(∆2 − ϕ2 − ν − e2) (ϕ2 + ν + ex)2 − x− ln(σ2) τ 2 (2.26) Siendo τ una constante que se establece a 0.2 para prevenir cambios muy grandes en la puntuación El segundo paso para calcular la volatilidad es buscar A tal que f (A) = 0, pa- ra ello se puede emplear el algoritmo Illinois. Lo último es ya calcular la volatilidad tal que σ′ = exp{A/2}. Determinar el nuevo rating y la nueva desviación de clasificación (RD) ϕ′ = 1/ √ 1 ϕ2 + σ′2 + 1 ν , µ′ = µ+ ϕ′2 m∑ j=1 g(ϕj) {sj − E(µ, µj, ϕj)} (2.27) Primero se calcula la nueva clasificación, que depende de la volatilidad (µ′) y luego la nueva desviación(ϕ′), que al depender de la nueva clasificación, depende también, aunque indirectamente, de la volatilidad. Se puede observar que a mayor volatilidad menor es el cambio de clasificación, por lo que en este modelo, para poder ascender rápido a niveles superiores de habilidad hay que tener partidas consistentes, lo que se suma a las propiedades básicas de Glicko, que es la constancia y mantenerse activo en el videojuego. Fallo con Glicko 2 Recientemente se ha encontrado un fallo en el el sistema de Glicko 2 utilizado en los rankings de Pokémon GO por Niantic (3): Al introducir estas dos nuevas variables (RD y volatilidad), se han de tener en cuenta más cosas que en el sistema de Elo, ya que el rating no va a crecer de la misma forma, ya que hora este va a depender del RD, que actúa también como un multiplicador, y el RD también depende de la volatilidad, que hace que crezca con mayor o menor velocidad. Esto hace que los jugadores se puedan aprovechar del sistema de la siguiente manera: Primero el jugador tiene que bajar a un rango en el que se empareje con juga- dores muy inferiores a él. En este punto tiene que conseguir elevar su volatilidad y para ello tiene dos opciones, perder muchas partidas seguidas, o ganarlas, ya que al ser un jugador muy superior a los demás puede inclinar la balanza como quiera. De esta forma se “farmea” la volatilidad y con ella RD. Llegado un punto, el jugador volverá a su rango, pero esta vez tendrá sus variables de volatilidad y RD muy ele- vadas, ya que al volver a subir, cambia mucho más rápido el rating que la volatilidad y el RD, por lo que al alcanzar su rango de nuevo tendrá bastante elevadas estas variables, por lo que cualquier victoria o derrota afectará en gran medida al rating. 2.3. Sistemas de matchmaking más influyentes 21 Si bien no debería ser un problema esto, ya que, el jugador, al volver a su pro- pio rango, jugará partidas igualadas y su rango subirá y bajará de forma parecida, aunque no en tan gran medida. El problema de esto es si el jugador es ayudado por un jugador de mayor rango, ya que llegará de forma fácil a un rango muy superior al suyo, y además este proceso arruina la experiencia tanto a los enemigos y aliados que estén en la partida del jugador cuando esté “farmeando”. Es por este motivo que mucha gente prefiere Glicko 1 ante Glicko 2, ya que un jugador no puede aprovecharse del sistema de esta manera. Aunque si es verdad que en un entorno controlado, como el que podría ser de e-sports, Glicko 2 ofrece mucha más potencia en cuanto a la obtención de datos estadísticos sobre los jugadores. Vale la pena mencionar también los problemas que se encontró el equipo de dise- ño de matchmaking del famoso juego multijugador Counter-Strike: Global Offensive (8), que comenzaron adoptando un sistema de Glicko 2 que derivó hace un sistema de Elo clásico. Pese a no ser un sistema perfecto sigue siendo ampliamente utilizado, como es el caso de la variante competitiva multijugador online del reconocido juego Tetris. Tetris ha sido uno de los primeros juegos competitivos del mundo, y ya en 1990 Nintendo organizaba torneos mundiales de éste, pero estos torneos, que se siguen celebrando, no hacen uso de un sistema de emparejamiento ya que usan las reglas clásicas de los torneos en los que sólo el jugador que gane pasa a la siguiente ronda, hasta que sólo quede un jugador. Pero Tetris competitivo no se queda ahí, ya que se puede jugar de forma gratuita a Tetr.io (10), que utiliza una versión de Glicko 2 para emparejar a los jugadores de su vasta comunidad y organizarlos en distintos rangos para poder así medir su habilidad. 2.3.4. MMR El MMR (Massive, Monotonic, Robust) es un tipo de sistema de matchmaking Elo que es masivo porque está diseñado para soportar cualquier cantidad de usuarios y que consiga escalar de forma lineal en tiempo de ejecución, es decir monotónico. Además, también es robusto ya que tiene que conseguir que los cambios en la pun- tuación estén acotados con menor acotación para los jugadores consistentes (FIFA x2 de puntos cuando ganas 2 partidas) y mayor acotación para los jugadores más irregulares. Es interesante también mencionar que sus creadores definen este sistema como una generalización del sistema Glicko para dos jugadores (17) y fundamentan su existencia como una alternativa que aporta “fórmulas fácilmente interpretable por humanos que actualizan las puntuaciones de los jugadores”. 2.3.4.1. Bayesiano Principios para tener un buen sistema de matchmaking: 22 Capítulo 2. Estado de la Cuestión Puntuación de cada jugador precisa. Computacionalmente eficiente. Tiene que ser incentivo jugar, nunca subir si ha perdido y nunca bajar si ha ganado. Interpretable por los usuarios. Método matemático El modelo matemático de este sistema se basa en 3 valoraciones distintas: la skill S que es el nivel al que está el jugador en general, la performance P que es el nivel que ha dado en una partida y varía según las evidencias E que tenga de cómo se ha jugado la partida. Esta fórmula representa la distribución conjunta del modelo. Pr(S:,:, P:,:, E:) = ∏ i Pr(Si, 0) ∏ i,t Pr(Si,t|Si,t−1) ∏ i,t Pr(Pi,t|Si,t ∏ t Pr(Et|P:,t) (2.28) Donde: Pr(Si, 0) es la habilidad inicial previa. Pr(Si,t|Si,t−1) es e modelo de evolución de habilidad. Pr(Pi,t|Si,t) es el modelo de rendimiento. Pr(Et|P:,t) es el modelo de evidencia. Estimación de la performance P Primero, hay que calcular la performance estimada en función al contexto previo P a la nueva partida, su función de densidad es: fi(p) := Pr(Pi = p) = ∫ πi(s)Pr(Pi = p | Si = s)ds, πi,t(s) := Pr(Si,t = s | Pi, i, j < i, j ∼ i como abreviatura de j ∈ EL i , j ∈ EW i , j ∈ P\ ( EL i ∪ EW i ) (es decir, Pj > Pi, Pj < Pi, Pj = Pi ), respectivamente. El siguiente teorema propor- ciona una estimación MAP: Teorema 3.2. Se supone que para todo j, fj es continuamente diferenciable y lo- garítmicamente cóncava. Entonces el maximizador único de Pr (Pi = p | EL i , E W i ) viene dado por el cero único de: Qi(p) := ∑ i>i lj(p) + ∑ i∼i dj(p) + ∑ i