Publication:
Producción de un videojuego multijugador en Unity combinando los géneros MOBA y RTS : tecnología e implementación

Research Projects
Organizational Units
Journal Issue
Abstract
En los últimos años los videojuegos independientes han obtenido un crecimiento sin precedentes, tanto en número de desarrollos como en volumen de ventas dentro de la industria del ocio electrónico. Todos los análisis suelen coincidir en dos puntos clave: el crecimiento global de esta industria y el desarrollo de nuevas herramientas que simplifican en gran medida muchos de los factores que intervienen en el desarrollo de videojuegos. El ejemplo más claro de estas herramientas son los entornos de desarrollo comerciales de videojuegos, como son CRYENGINE, Unreal Engine, o Unity. De estas alternativas, para el presente proyecto, se optó por Unity usando el lenguaje de programación C# por varias razones, las principales han sido: ofrece una curva de aprendizaje que resulta satisfactoria desde el primer momento, hay un gran volumen de documentación oficial (tanto de Unity como de C#) y la existencia de una inmensa comunidad de usuarios de esta herramienta en Internet, ofreciendo un amplio abanico de posibilidades ante cualquier problema. De entre todas las alternativas que se estudiaron, se optó por desarrollar un videojuego que uniera los géneros RTS y MOBA haciendo uso de una jugabilidad asimétrica, esto es, uniendo las jugabilidades de ambos géneros en una misma partida pero sin mezclar mecánicas, de manera que el jugador pueda optar por jugar de una manera u otra, consiguiendo un concepto nunca visto en ningún videojuego lanzado al mercado anteriormente. El género RTS (siglas del inglés Real Time Strategy) o juego de estrategia en tiempo real, ha triunfado desdeprincipios de los noventa, y el género MOBA (siglas del inglés Multiplayer Online Battle Arena)o campo de batalla multijugador en línea, que nació como una variación del primero, pronto se posicionó como uno de los géneros más populares. Los aspectos pertenecientes al diseño del videojuego se encuentran documentados en la memoria del mismo título con subtítulo Ingeniería del Software y Diseño del Videojuego (Cuesta Boluda, Cuesta Boluda, & Rodríguez‐ Osorio Jiménez, 2014). Los dos modos de juego se caracterizan por poseer elementos claramente diferenciados, como el control de la cámara o de los personajes, etc. En el modo RTS se ha trabajado con el sistema de navegación y pathfinding de Unity y se han implementado, entre otras cosas, múltiples formas de selección de unidades, un algoritmo de elección de múltiples destinos, un complejo algoritmo de cálculo de distancias para evitar el costoso uso de físicas, y el comportamiento de las distintas unidades de cada raza y sus correspondientes edificios. Por otro lado, la implementación del MOBA se ha enfocado más en las habilidades y ataques básicos, ya que son más complejos que los de las unidades RTS. En otros aspectos más generales, se han trabajado con shaders Cg/HLSL, con herramientas que ofrece Unity como el sistema de partículas y el motor de físicas. También se han utilizado herramientas que extienden Unity como NGUI para crear menús mucho más eficientes, y sobre todo Photon, que ofrece un servicio de gestión de partidas online, para una de las partes más importantes y complejas como es la sincronización de ambos modos de juego a través de la red.
In recent years, independent games have gained unprecedented growth, both in number of developments and in sales volume within the electronic entertainment industry. All reviews usually agree in two key points: the global growth of this industry and the development of new tools that simplify many factors involved in the development of videogames. The clearest example of these tools are the videogame commercial development environments such as CryENGINE, UDK, o Unity. From all these alternatives for this proyect we chose Unity, using the programming language C#. We did this for many reasons, the main reasons are: it offers a learning curve that is satisfying from the beginning, there is a large volume of official documentation (both Unity and C#) and the existence of a large users community from this internet tool, offering a wide range of solutions for any problems. Of all alternatives, we chose to develop a videogame that joins the RTS and MOBA genre making use of the asymmetric gameplay, that is, joining the gameplay of both genres in one same game but without mixing the mechanics. This way the player can chose to play one way or the other creating a concept that never existed before. The RTS genre (Real Time Strategy)is successful since the early nineties and the MOBA genre (Multiplayer Online Battle Arena)was born as a variation of the first and quickly positioned itself as one of the most popular genres. The issues related to game design are documented in the report of the same title with subtitle Software Engineering and Game Design. The two game modes are characterized by distinct features including camera, character control, etc. In the RTS mode we worked with the navigation and pathfinding system from Unity and we have implemented, among other things, multiple forms of unit selection, an algorithm to select multiple destinations, a complex algorithm to calculate distances to prevent the costly use of fisics, and the behavior of different units depending on race and their corresponding buildings. On the other hand, the implementation of MOBA was focused more into the skills and basic atacks because it is more complex compared to the RTS units. In other general aspects, we have worked with Gg/HLSL shaders, with tools that Unity offers such as the particle system and the PhysX fisics system. We have also used some tools that extend Unity like NGUI to create more efficient menus, especially Photon, offering online management service to one of the most important and complex parts such as the synchronization of both game modes through the network.
Description
Proyecto de Sistemas Informáticos (Facultad de Informática, Curso 2013-2014)
Unesco subjects
Keywords
Citation