Memoria Del TFG
Total Page:16
File Type:pdf, Size:1020Kb
Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es Resumen En una sociedad en la que la tecnolog´ıaes cada vez m´ascom´un,crece continuamente el uso de ´estacomo m´etodo de entretenimiento por gran parte de la poblaci´on.Y en el universo del entretenimiento encontramos el mundo de los videojuegos. Sin embargo, para muchas personas interesadas en entrar por primera vez a este mundo, ´estepuede ser extremadamente abrumador, pues la cantidad de opciones entre las que elegir es pr´acticamente ilimitada. Brawlchemy pretende ser un punto de entrada en el mundo de los videojuegos, particularmente en el subg´enerode los MOBA. Si bien ´estees uno de los subg´eneros m´aspopulares en la actualidad, tambi´enes uno de los m´ascomplicados de entender para nuevos jugadores. Por ello, Brawlchemy tratar´ade ser la versi´onm´assimplificada posible del g´enero,para as´ıpoder disfrutarlo de la forma m´asb´asicasin necesidad de ser un experto. Abstract In a world where technology is more and more common, it is increasingly used as an entertainment by a large part of the population. And in the universe of entertainment we can find the world of videogames. However, for many people interested in entering this world for the first time, it can be extremely overwhelming, since the number of options to choose from is almost unlimited. Brawlchemy aims to be an entry point into the world of videogames, particularly in the MOBA subgenre. While it is one of the most popular subgenres at the moment, it is also one of the most difficult to begin with. Therefore, Brawlchemy will try to be the most simplified version of the genre, to be able to enjoy the basics without the need to be an expert in the field. Laburpena Teknologia gero eta gehiago ohikoagoa den mundu batean, gero eta populazioa- ren entretenimendu gisa erabiltzen da. Eta entretenimendu unibertsoan, bideojokoen mundua aurki dezakegu. Hala ere, mundu honetan lehen aldiz sartu nahi duten jende askorentzat oso erabatekoa izan daiteke, aukeratzeko aukeren kopurua ia mugarik gabe dagoelako. Brawlchemy-k bideojokoen mundura sartzeko puntua izan nahi du, bereziki MOBA azpigenerrean. Une honetan azpigororik ezagunenetakoa da, baina hasierako zailene- tako bat ere bada. Beraz, Brawlchemy generoaren bertsio sinplifikatuena izango da, oinarriak gozatzeko gai izan dadin arloan aditua izan beharrik izan gabe. Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es ´Indice de contenidos 1. Introducci´on 12 1.1. Razones para la elecci´ondel TFG........................ 12 1.2. Siglas y definiciones importantes......................... 13 2. Planteamiento Inicial 15 2.1. Objetivos..................................... 15 2.2. Alcance...................................... 15 2.2.1. Ciclo de vida............................... 15 2.2.2. Estructura de descomposici´ondel trabajo................ 17 2.3. Planificaci´ontemporal.............................. 28 2.4. Herramientas................................... 30 2.5. Gesti´onde riesgos................................. 33 2.5.1. Riesgos hardware y software....................... 35 2.5.2. Riesgos de dise˜no............................. 37 2.5.3. Riesgos externos............................. 39 2.5.4. Aplicaci´onde los planes de prevenci´on................. 40 2.6. Evaluaci´onecon´omica............................... 40 2.6.1. Gastos en mano de obra......................... 40 2.6.2. Gastos software.............................. 41 2.6.3. Gastos hardware............................. 41 2.6.4. Gastos totales............................... 42 2.6.5. Modelo de negocio............................ 42 3. Antecedentes 45 3.1. League of Legends................................ 45 3.2. DOTA 2...................................... 45 3.3. Heroes of the Storm................................ 46 1 Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es 3.4. Awesomenauts................................... 47 3.5. Smite........................................ 48 3.6. Resumen de los antecedentes........................... 48 3.7. Elecci´ondel motor................................ 49 4. Captura de requisitos 51 4.1. Requisitos no funcionales de Brawlchemy.................... 51 4.2. Jerarqu´ıade actores............................... 52 4.3. Casos de uso.................................... 52 4.4. Modelo de dominio................................ 54 5. An´alisisy dise˜no 57 5.1. Diagrama relacional de la base de datos..................... 57 5.2. Estructura del juego............................... 58 5.2.1. Men´us................................... 58 5.2.2. Juego................................... 59 5.3. Estructura REST................................. 61 6. Desarrollo 65 6.1. Base de datos y servidor............................. 65 6.1.1. Desarrollo................................. 65 6.1.2. Pruebas.................................. 71 6.2. Men´us,login y registro.............................. 77 6.2.1. Desarrollo................................. 77 6.2.2. Pruebas.................................. 93 6.3. Creaci´onde los personajes jugables....................... 97 6.3.1. Desarrollo................................. 97 6.3.2. Pruebas.................................. 107 6.4. Control del estado de la partida......................... 111 6.4.1. Desarrollo................................. 111 2 Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es 6.4.2. Pruebas.................................. 113 6.5. Dise˜nofinal de gr´aficos.............................. 114 6.5.1. Desarrollo................................. 114 6.5.2. Pruebas.................................. 120 7. Verificaci´onfinal 123 8. Conclusiones y trabajo futuro 125 8.1. Cumplimiento de los objetivos.......................... 125 8.2. Cumplimiento de la planificaci´on........................ 126 8.3. Aparici´onde riesgos............................... 128 8.4. Mejoras y trabajo futuro............................. 129 8.5. Disponibilidad del proyecto........................... 130 8.6. Reflexi´onpersonal................................. 130 A. Anexo A: Casos de uso Extendidos 135 A.1. Registro...................................... 135 A.2. Login........................................ 138 A.3. Jugar........................................ 141 A.4. Ver partidas.................................... 144 A.5. Ver controles................................... 146 B. Anexo B: Diagramas de secuencia 147 B.1. Men´us....................................... 147 B.1.1. Inicio de sesi´on.............................. 147 B.1.2. Registro.................................. 149 B.1.3. Jugar.................................... 151 B.1.4. Historial de partidas........................... 154 B.1.5. Controles................................. 156 B.2. Juego....................................... 157 3 Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es B.2.1. Nexos................................... 158 B.2.2. Torres................................... 159 B.2.3. Jugadores................................. 162 B.2.4. Mapa................................... 165 C. Anexo C: Introducci´ona Godot 167 C.1. Nodos....................................... 167 C.2. Escenas...................................... 167 C.3. Scripts....................................... 169 C.4. Se˜nales....................................... 169 4 Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es ´Indice de figuras 1. Ciclo de vida incremental............................. 16 2. Diagrama EDT.................................. 18 3. Diagrama Gantt.................................. 28 4. Partida profesional de League of Legends.................... 46 5. Partida de Dota 2................................. 46 6. Partida de Heroes of the Storm......................... 47 7. Partida de Awesomenauts............................ 47 8. Partida de Smite................................. 48 9. Jerarqu´ıade actores............................... 52 10. Casos de uso de Brawlchemy........................... 53 11. Modelo de domino de Brawlchemy........................ 54 12. Diagrama relacional de la base de datos de Brawlchemy............ 57 13. Diagrama de clases del juego........................... 60 14. Modelo REST del servidor de Brawlchemy................... 64 15. Estructura de un servidor REST en NodeJS.................. 67 16. Estructura de los archivos del servidor..................... 68 17. C´odigoque redirecciona las peticiones a la ruta /games............ 70 18. Variables globales definidas en Postman..................... 71 19. Generaci´onde nuevas credenciales de usuario.................. 73 20. M´etodo y direcci´onde la petici´ondel inicio de sesi´on............. 73 21. Introduccion de las credenciales necesarias para Basic Auth.......... 74 22. Tests del inicio de sesi´on............................. 74 23. Estructura general de la escena de login y registro............... 78 24. Estructura del nodo de login........................... 79 25. Estructura del nodo de registro......................... 79 26. Pantalla de login................................. 80 5 Autor: Guzm´anL´opez Santamar´ıa Trabajo de Fin de Grado Director: Mikel Villama˜neGiron´es 27. Pantalla de registro...............................