Desarrollo De Un Prototipo De Videojuego
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Máster en Ingeniería Informática Trabajo de Fin de Máster Desarrollo de un Prototipo de Videojuego Ricardo Franco Martín Noviembre, 2016 UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Máster en Ingeniería Informática Trabajo de Fin de Máster Desarrollo de un Prototipo de Videojuego Autor: Ricardo Franco Martín Fdo: Directores: Pablo García Rodriguez y Rober Morales Chaparro Fdo: Tribunal Calicador Presidente: Fdo: Secretario: Fdo: Vocal: Fdo: Dedicado a mi familia i ii Agradecimientos Quisiera agradecer a varias personas el apoyo y ayuda que me han prestado en la realización de este Trabajo de Fin de Máster. En primer lugar, agradecer a mi director Pablo García Rodríguez por per- mitirme realizar este proyecto y recibirme con los brazos abiertos cada vez que he necesitado su ayuda. También quiero agradecer a mi codirector Rober Morales Chaparro por conar en mí y proporcionarme una de las fases profesional y educativa más importantes de mi vida. Por último, agradecer a mi familia y amigos, que sin su apoyo, no habría llegado tan lejos. En especial, darle las gracias a mi hermano José Carlos Franco Martín que ha realizado y proporcionado algunos recursos artísticos para el proyecto. ½Muchas gracias a todos! iii iv Resumen Este Trabajo de Fin de Máster (en adelante TFM) trata sobre todo el proceso de investigación, conguración de un entorno de trabajo y desarrollo de un prototipo de videojuego. Analizaremos la tecnología actual y repasaremos algunas de las herramien- tas más relevantes utilizadas en el proceso de desarrollo de un videojuego. Seguidamente, trataremos de desarrollar un videojuego. Para ello, a partir de una idea de juego, diseñaremos las mecánicas y construiremos un prototipo funcional que pueda ser jugado y que reeje las principales características planteadas en la idea inicial, con el objetivo de comprobar si el juego es viable, si es divertido y si interesa desarrollar el juego completo. Por último, analizaremos y valoraremos los resultados obtenidos. Palabras clave: investigación, aprendizaje, videojuego, prototipado, ar- quitectura software. v vi Abstract This Master's Thesis deals with the entire process of research, setting up of a working environment and development of a video game prototype. We will analyze the current technology and review some of the most relevant tools used in the video game development process. Next, we will try to develop a video game. For that, from a game concept idea, mechanics are designed and a functional prototype is built to get an initial playable version of the sofware product that represent the main characteristics of the prime game concept. The goal is to check if the game is viable, fun and if the full game is interesting to be developed. Finally, we will analyze and evaluate the obtained results. Keywords: research, learning, videogame, prototyped, software architec- ture. vii viii Índice general Agradecimientos iii Resumen v Abstract vii Índice de Tablas xiii Índice de Figuras xv 1. Introducción1 2. Introduction3 3. Motivación5 3.1. Sociedad del Entretenimiento...................5 3.2. Los Videojuegos...........................6 3.3. Propuesta..............................6 4. Motivation9 4.1. Society of Entertainment......................9 4.2. Video Games............................ 10 4.3. Proposal............................... 10 5. Estado del Arte 13 5.1. Plataformas de Juego........................ 13 ix 5.1.1. PC.............................. 14 5.1.2. Videoconsolas........................ 16 5.1.3. Dispositivos Móviles.................... 18 5.1.4. Realidad Virtual...................... 18 5.2. Herramientas de Desarrollo de Videojuegos............ 20 5.2.1. Unity............................ 21 5.2.2. Unreal Engine........................ 22 5.2.3. CryEngine.......................... 23 5.2.4. Otros Motores........................ 24 5.2.5. Otras Herramientas..................... 25 5.3. Videojuegos Similares........................ 25 5.4. Consideraciones sobre el Proyecto................. 26 6. State of art 27 6.1. Gaming Platforms......................... 27 6.1.1. PC.............................. 28 6.1.2. Video Game Consoles.................... 30 6.1.3. Mobile Devices....................... 31 6.1.4. Virtual Reality....................... 31 6.2. Video Game Development Tools.................. 32 6.2.1. Unity............................ 32 6.2.2. Unreal Engine........................ 33 6.2.3. CryEngine.......................... 34 6.2.4. Other Video Game Engines................ 34 6.2.5. Other Tools......................... 35 6.3. Similar Video Games........................ 35 6.4. Conclusion.............................. 36 7. Desarrollo del Videojuego 37 7.1. Concepto de Juego......................... 37 7.1.1. Perl............................. 37 x 7.1.2. Descripción......................... 38 7.1.3. Ambientación........................ 38 7.1.4. Mecánicas.......................... 38 7.1.5. Referencias......................... 39 7.1.6. Riesgos............................ 39 7.2. Ampliación del Concepto de Juego................ 40 7.2.1. Jugabilidad......................... 40 7.2.2. Editor de Niveles...................... 42 7.3. Entorno de Desarrollo....................... 43 7.4. Prototipado............................. 43 7.4.1. Primera Versión....................... 44 7.4.2. Segunda Versión...................... 44 7.5. Arquitectura e Implementación del Juego............. 55 7.5.1. Editor de Niveles...................... 55 7.5.2. Juego/Jugabilidad..................... 62 7.5.3. Interfaz de Usuario..................... 65 7.5.4. Servidor........................... 66 8. Resultados y Discusión 69 9. Conclusiones 79 10.Conclusion 81 11.Trabajos Futuros 83 12.Referencias 85 A. Unity y la Arquitectura Orientada a Componentes 89 B. Modelado del Personaje en Blender 95 xi xii Índice de cuadros 7.1. Perl del juego........................... 37 7.2. Entorno de desarrollo........................ 43 7.3. Peticiones POST del servicio REST................ 68 7.4. Peticiones GET del servicio REST................ 68 xiii xiv Índice de guras 5.1. PlayStation 4............................ 17 5.2. Xbox One.............................. 17 5.3. Nintendo 3DS............................ 17 5.4. Wii U................................ 18 5.5. Oculus Rift............................. 19 5.6. HTC Vive.............................. 19 5.7. PlayStation VR........................... 19 5.8. Samsung Gear VR......................... 20 5.9. Ejemplo del editor de Unity.................... 22 5.10. Ejemplo del editor de Unreal Engine............... 23 5.11. Ejemplo del editor de CryEngine................. 24 7.1. Primera versión del prototipo................... 44 7.2. Inicio del nivel............................ 45 7.3. Mecánica de agacharse....................... 46 7.4. Mecánica de salto y plataformas móviles............. 46 7.5. Mecánica de saltar sobre las paredes............... 47 7.6. Mecánica de agarrar, arrastrar y empujar objetos........ 47 7.7. Mecánicas con cuerdas....................... 48 7.8. Ejemplo de prueba con un vehículo................ 48 7.9. Primer ejemplo de puzle (1 de 2)................. 49 7.10. Primer ejemplo de puzle (2 de 2)................. 49 7.11. Prueba con plataformas móviles que pueden aplastar al avatar. 50 xv 7.12. Ejemplo de prueba con arma, palanca y láser........... 51 7.13. Segundo ejemplo de puzle (1 de 3)................. 52 7.14. Segundo ejemplo de puzle (2 de 3)................. 52 7.15. Segundo ejemplo de puzle (3 de 3)................. 53 7.16. Mecánicas con trampolines o camas elásticas........... 53 7.17. Ejemplo de prueba con vehículo aéreo y obstáculos (1 de 2)... 54 7.18. Ejemplo de prueba con vehículo aéreo y obstáculos (2 de 2)... 54 7.19. Representación de los modos de edición del editor de niveles.. 57 7.20. Representación de los componentes de edición que pueden tener los objetos editables........................ 59 7.21. Representación aproximada de la máquina de estados imple- mentada para el avatar....................... 63 7.22. Representación del modelo de datos utilizado en el servidor... 67 8.1. Captura del menú principal.................... 71 8.2. Captura del menú de opciones grácas.............. 72 8.3. Captura del menú de opciones de sonido............. 72 8.4. Captura del menú de opciones de los controles del juego..... 73 8.5. Captura del menú de personalización del avatar......... 73 8.6. Captura del menú de gestión de niveles editables del jugador.. 74 8.7. Captura del editor con varios objetos editables.......... 74 8.8. Captura de la paleta de objetos del editor de nivel........ 75 8.9. Captura del menú de publicación de un nivel........... 75 8.10. Captura del menú de búsqueda y selección de niveles...... 76 8.11. Captura del menú de n del nivel con una lista de puntuaciones máximas............................... 76 A.1. Flujo de ejecución de la clase MonoBehaviour dentro del motor Unity................................. 91 A.2. Ejemplo de atributos de un componente en la ventana Inspector de Unity............................... 93 xvi B.1. Captura de Blender con las plantillas 2D del personaje..... 96 B.2. Captura de Blender el módelo 3D completado.......... 97 B.3. Captura de Blender con los huesos del personaje......... 97 xvii xviii Capítulo 1 Introducción El sector del videjuego se ha convertido en una de las industrias más pode- rosas en el ámbito del entretenimiento. Los videojuegos ofrecen experiencias a los jugadores que no son posibles en