Publication:
Una herramienta para optimizar el comportamiento de los agentes inteligentes en videojuegos mediante Computación Evolutiva

Research Projects
Organizational Units
Journal Issue
Abstract
El equilibrado en el diseño de videojuegos es un problema complejo existente desde que aparecieron los primeros títulos. Un videojuego bien planteado, con mecánicas y dinámicas interesantes, pero mal equilibrado, donde, por ejemplo, la dificultad no es proporcional a la destreza del jugador, o donde los enemigos no saben aprovechar sus oportunidades para combatir al protagonista, acabará fracasando como experiencia de entretenimiento. Por eso este proyecto propone una herramienta automática, EvoUnity, que permite optimizar el comportamiento de los agentes inteligentes en videojuegos, principalmente orientada a equipos pequeños de desarrolladores independientes que no disponen de mucho presupuesto o tiempo para equilibrar o ajustar la inteligencia artificial de sus juegos con metodologías clásicas más costosas. Esta herramienta extiende el entorno de desarrollo de videojuegos Unity, muy popular entre este tipo de desarrolladores. Hoy día, alrededor del 50 % de los videojuegos para PC, móvil y consolas son desarrollados con esta tecnología. Unity es muy popular gracias a su versatilidad al permitir desplegar juegos en múltiples plataformas, a su integración con servicios de anuncios, compras y analíticas, y a su facilidad de uso, pues es una herramienta intuitiva con abundante documentación, lo que también facilita su aprendizaje. EvoUnity busca optimizar el comportamiento de los agentes inteligentes de cualquier videojuego, independientemente de su género o características, en base a unos resultados esperados de rendimiento medibles y bien definidos en cada partida, utilizando técnicas de computación evolutiva en el proceso de optimización. Para probar esta herramienta se utilizan dos proyectos de código abierto, concretamente el juego de defensa de torres Warrior Defense y el prototipo de juego de estrategia en tiempo real MicroRTS. El primero sirve como prueba de integración de la herramienta en un juego real, y el segundo ayuda a generalizar del software, al presentar mayor complejidad y variedad de elementos a tener en cuenta para el ajuste. En ambos se han conseguido resultados prometedores que permiten proponer la herramienta como un recurso útil ante la comunidad de desarrolladores.
Balance in videogames has been an issue since the first titles appeared. A well-designed videogame, with interesting mechanics and dynamics, but poorly balanced, where, for example, the difficulty is not proportional to the player’s skill, or where the enemies do not know how to take advantage of their opportunities to fight the protagonist, will end up failing as an entertainment experience. That is why this project proposes an automatic tool, EvoUnity, which allows to optimize the behavior of intelligent agents in video games, mainly oriented to small teams of independent developers who do not have much budget or time to balance or adjust the artificial intelligence of their games with more expensive classical methods. This tool extends the video game development environment Unity, which is very popular among this type of developers. Today, about 50 % of video games for PC, mobile and consoles are developed with this technology. Unity is very popular thanks to its versatility in allowing games to be deployed on multiple platforms, its integration with ad, shopping and analytics services, and how easy it is to use, as it is an intuitive tool with abundant documentation, which also makes it easy to learn. EvoUnity seeks to optimize the behavior of intelligent agents in any video game, regardless of its genre or characteristics, based on measurable and well-defined expected performance results in each game, using evolutionary computation techniques in the optimization process. Two open source projects are used to test this tool, concretely the tower defense game Warrior Defense and the real-time strategy game prototype MicroRTS. The first one serves as a test for the integration of the tool in a real game, and the second one helps to generalize the software, as it presents a greater complexity and variety of elements to be taken into account for the adjustment. In both cases, promising results have been achieved, allowing the tool to be proposed as a useful resource to the developer community.
Description
Trabajo de Fin de Grado en Desarrollo de Videojuegos y en Ingeniería de Sistemas, Facultad de Informática UCM, Departamento de Ingeniería del Software e Inteligencia, Artificial, Curso 2020/2021.
Unesco subjects
Keywords
Citation