Desarrollo De Una Herramienta De Autoría En Unity Para La Creación De Juegos De Rol Con Combate Basado En Turnos
Total Page:16
File Type:pdf, Size:1020Kb
Desarrollo de una Herramienta de Autoría en Unity para la Creación de Juegos de Rol con Combate Basado en Turnos Marcelino Pérez Durán y Juan José Prieto Escolar FACULTAD DE INFORMÁTICA DEPARTAMENTO DE INGENIERÍA DEL SOFTWARE E INTELIGENCIA ARTIFICIAL UNIVERSIDAD COMPLUTENSE DE MADRID Trabajo Fin Grado en Ingeniería del Software Madrid, 8 de junio de 2018 Director: Prof. Dr. Federico Peinado Gil Codirector: Víctor Manuel Pérez Colado Autorización de difusión y utilización Los alumnos Marcelino Pérez Durán y Juan José Prieto Escolar, junto al director de este Trabajo de Fin de Grado (TFG), el Prof. Dr. Federico Peinado Gil, y al codirector Victor Manuel Pérez Colado autorizamos a la Universidad Complutense de Madrid (UCM) a difundir y utilizar con fines académicos, no comerciales y mencionando expresamente a sus autores tanto la propia memoria de este trabajo, como el código, los contenidos audiovisuales (incluyendo imágenes de los autores), la documentación y el prototipo desarrollado. Así mismo autorizamos a la UCM a que este trabajo sea depositado en acceso abierto en el repositorio institucional con el objeto de incrementar la difusión, uso e impacto del TFG en Internet y garantizar su preservación y acceso a largo plazo. Fdo. Marcelino Pérez Durán Fdo. Juan José Pietro Escolar Fdo. Prof. Dr. Federico Peinado Gil Fdo. Victor Manuel Pérez Colado Agradecimientos A nuestra familia, amigos y a toda la gente que nos ha apoyado durante todo el año. También agradecer a nuestro director del proyecto Federico Peinado Gil y codirector Victor Manuel Pérez Colado, por el apoyo y dedicación que nos han dado. Índice general Índice de figuras v Índice de cuadros vii Resumen viii Abstract xi 1. Introducción 1 1.1. Juegos de rol táctico . .2 1.2. Entornos de desarrollo y herramientas de autoría . .3 1.3. Propósito del trabajo . .4 1.4. Estructura del trabajo . .5 2. Estado de la cuestión 6 2.1. Videojuegos de referencia . .7 2.1.1. Final Fantasy Tactics . .7 2.1.2. Fire Emblem . 10 2.1.3. Otros referentes . 12 2.2. Herramientas para el desarrollo de videojuegos . 15 2.2.1. Unreal Engine . 15 2.2.2. Unity . 17 2.2.3. IsoUnity . 18 2.2.4. RPG Maker . 21 2.2.5. Prototipo TRPG Maker . 25 i 3. Objetivos y especificación 28 3.1. Objetivos . 28 3.2. Plan de trabajo . 29 3.3. Metodología y herramientas . 31 3.3.1. Metodología . 31 3.3.2. Herramientas utilizadas . 32 3.4. Especificación de requisitos software . 34 3.4.1. Elementos necesarios en un videojuego de rol táctico . 34 3.4.2. Defición, relación y almacenamiento de estos elementos . 37 3.4.3. Conexión con otras herramientas . 41 3.4.4. Gestión del tiempo y combate . 43 3.4.5. Demostración de la herramienta . 45 4. Análisis, diseño e implementación 46 4.1. Análisis y diseño . 46 4.1.1. Vista general del sistema . 46 4.1.2. Base de datos . 47 4.1.3. Editor de la base de datos . 48 4.1.4. Gestor del juego . 54 4.1.5. Conexión con otras herramientas . 55 4.2. Implementación . 56 4.2.1. Tecnologías . 57 4.2.2. Prototipos . 57 4.2.3. Base de datos . 61 4.2.4. Gestor de la base de datos . 64 4.2.5. Gestor del juego . 73 4.2.6. Conexión con otras herramientas . 77 ii 5. Pruebas, resultados y discusión 80 5.1. Pruebas . 80 5.1.1. Pruebas generales . 80 5.1.2. Sesión pública con usuarios reales . 81 5.2. Resultados . 82 5.2.1. Pruebas generales . 82 5.2.2. Sesión pública con usuarios reales . 82 5.2.3. Demostración de la herramienta . 83 5.3. Discusión . 85 6. Conclusiones 88 Aportaciones individuales de los autores 91 1. Marcelino Pérez Durán . 91 2. Juan José Prieto Escolar . 93 Bibliografía 96 Apéndice A. Title (in English) 99 Apéndice B. Introduction (in English) 100 1. Tactical role games . 101 2. Development environments and authoring tools . 102 3. Purpose of the work . 103 4. Work Structure . 104 Apéndice C. Conclusions (in English) 105 Apéndice D. Guía del usuario 107 1. Configuración inicial y puesta en marcha . 108 2. Añadir información a la base de datos . 109 iii 3. Opciones de batalla y de conexión . 111 Apéndice E. Pruebas guiadas con usuarios reales 113 Apéndice F. Resultados de las pruebas guiadas con usuarios reales 116 iv Índice de figuras 2.1. Opciones de batalla en Final Fantasy Tactics . .7 2.2. Casillas de movimiento en Final Fantasy Tactics . .9 2.3. Pantalla con información antes de confirmar un ataque. 11 2.4. Una conversación en Shadowrun Returns .................... 12 2.5. Información previa al ataque en Advance Wars ................. 13 2.6. Inventario del jugador en Diablo III ....................... 14 2.7. Caption for Infinity Blade . 16 2.8. Caption for Unity . 18 2.9. Caption for Cloister Secrets . 20 2.10. Pestaña de habilidades de la base de datos de RPG Maker .......... 23 2.11. Pestaña de armas de la base de datos de RPG Maker ............. 25 2.12. Ejemplo de combate en el prototipo de TRPG Maker ............. 26 3.1. Marco de trabajo Scrum utilizado . 32 4.1. Diagrama Entidad-Relación de la base de datos . 48 4.2. Maqueta de la ventana de atributos . 49 4.3. Mockup de la ventana de objetos . 50 4.4. Mockup de la ventana de personajes . 51 4.5. Ejemplo del prototipo de IsoTest para comprender IsoUnity ......... 58 4.6. Opciones de TRPG Maker original y su editor de personajes . 59 4.7. Ejemplo del prototipo de la herramienta . 60 4.8. Objeto que contiene la información de la base de datos . 61 4.9. Diagrama de clases de los objetos que forman parte de la base de datos . 63 v 4.10. Ejemplo de la edición de un objeto desde el Inspector . 64 4.11. Ventana principal del editor de la base de datos . 65 4.12. Botón de objeto seleccionado muestra un Reorderablelist ........... 66 4.13. Editor de Attributes en la base de datos . 67 4.14. Lista desplegable para seleccionar un Tag existente . 68 4.15. Mensaje de error al introducir un Attribute no existente en una fórmula . 68 4.16. Posibles combinaciones para un Item ...................... 69 4.17. Editor de Items de la base de datos . 70 4.18. Lista desplegable para añadir un nuevo Attribute a una SpecializedClass ... 70 4.19. Editor de Attributes dentro de una SpecializedClass .............. 71 4.20. Editor de Characters ............................... 72 4.21. Ventana de configuración del combate . 73 4.22. Ejemplo de aviso al no configurar correctamente el escenario . 74 4.23. Menú de acciones in-game ............................ 75 4.24. Secuencia de un turno para un jugador . 76 4.25. Diagrama de clases de la interfaz para conectar con otro framework ..... 78 4.26. Representación del área de movimiento y selección de celda de un Character 79 5.1. Captura de la demostración de la herramienta . 84 vi Índice de cuadros 3.1. Tabla conceptual de atributos . 38 3.2. Tabla conceptual de etiquetas . 38 3.3. Tabla conceptual de tipos de huecos . 38 3.4. Tabla conceptual de tipos de objetos . 39 3.5. Tabla conceptual de habilidades . 39 3.6. Tabla conceptual de clase especializada . 40 3.7. Tabla conceptual de personajes . 41 vii Resumen En los últimos años no ha dejado de aumentar la producción de videojuegos desarrollados tanto de grandes productoras como de estudios independientes para todo tipo de plataformas Debido al gran volumen de lanzamientos, para ser competitivo y sobrevivir en este mercado es fundamental disponer de herramientas que permitan crear videojuegos multiplataforma de gran calidad y sin asumir unos costes elevados, ni en tiempo, ni en esfuerzo de desarrollo. Es cierto que existen entornos de desarrollo y herramientas muy consolidadas para crear títulos de los géneros más trabajados, como los juegos de plataformas o de disparos en primera persona, pero no ocurre lo mismo en otros géneros más complejos de abordar, como los juegos de rol, donde las herramientas escasean o son más limitadas. Los juegos de rol se dividen a su vez en diversos subgéneros, siendo el juego de rol táctico o TRPG (del inglés Tactical Role-Playing Game) uno de los más afectados en cuanto a carencia de herramientas de autoría modernas orientadas a la producción multiplataforma. Este subgénero se caracteriza por estructurar sus movimientos y acciones tácticas por turnos, y también por estructurar el escenario mediante casillas, a menudo ofreciendo una perspectiva isométrica del mismo. El objetivo de este proyecto es crear una herramienta de autoría para juegos de género TRPG sobre Unity, dado que es el entorno de desarrollo de videojuegos más popular en la actualidad. El proyecto toma como comienzo el prototipo de una herramienta anterior, que será sometida a revisión y análisis, atendiendo a los principios de la Ingeniería del Software para dar lugar a una primera versión oficial llamada TRPG Maker. Mientras que existe la necesidad del desarrollo por completo de un motor RPG táctico que maneje los diferentes aspectos de un juego RPG, el apartado gráfico se sustentará en la herramienta IsoUnity, que se conectará con la herramienta TRPG y proporcionará la gestión de escenarios, personajes y animaciones. viii Las pruebas y análisis del software existente concluyeron en la necesidad de una reim- plementación casi en su totalidad del código. Con esta primera versión oficial se ha pasado de una prueba de concepto a una herramienta más estable y cercana a su explotación en proyectos reales de producción de videojuegos. No sólo se ha replanteado el diseño, recons- truido la arquitectura software, y reimplementado todo el código fuente desde cero para que el proyecto sea más mantenible y ampliable, sino que.