UNIVERSIDAD CARLOS III DE MADRID Departamento de Ingeniería Telemática Proyecto Fin de Carrera “JAVA’S PURGATORY”: DESARROLLO DE UN JUEGO EDUCATIVO EN UNITY3D. Autor: David Gómez Durán Tutor proyecto: Dr. José Jesús García Rueda Leganés, Julio de 2013 2 PROYECTO FIN DE CARRERA Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Título: “JAVA’S PURGATORY”: Desarrollo de un juego educativo en Unity3D Autor: David Gómez Durán Tutor del proyecto: Dr. José Jesús García Rueda EL TRIBUNAL PRESIDENTE: ______________________________ SECRETARIO: ______________________________ VOCAL: __________________________________ Realizado el acto de defensa y lectura del Proyecto Fin de Carrera el día __ de __________ de 2013 en Leganés, en la Escuela Politécnica Superior de la Universidad Carlos III de Madrid, acuerda otorgarle la CALIFICACIÓN de: PRESIDENTE SECRETARIO VOCAL 3 4 RESUMEN Los juegos han estado siempre cerca de nosotros, han servido de maestro mudo a través de los tiempos, y rara vez se olvidan las reglas o sus principios. Por eso ““JAVA’S PURGATORY”: Desarrollo de un juego educativo en Unity3D ” es una guía para todos aquellos que continúan en el mundo de la programación, en la que se propone un recorrido por los siete pecados capitales que tuvo que pasar Dante para poder alcanzar la limpieza de su alma, siendo cada uno de ellos un tema distinto a tratar. Se coge como referencia La Divina Comedia de Dante Alighieri, en la que se presenta al alumno Dante, y su maestro Virgilio. Durante el viaje, se han de limpiar los pecados y aprender de lo que cada personaje ha de contar al viajero, para llegar al final del viaje y poder abrazar a su amada Beatriz. La similitud con el proyecto, es que Dante es un alumno al que todavía le queda la asignatura de Programación de sistemas de primero, y Virgilio es el profesor pedagógico que le guía para superarla. El principal objetivo del proyecto, es poder aprender los principios básicos en cuanto a la orientación a objetos, acercar a los jugadores a un mundo quizá desconocido para ellos y facilitar el aprendizaje de una asignatura, que en la mayoría de los casos no se ha visto durante bachillerato. Así mismo, se hace uso de la herramienta para la creación de juegos Unity3D, que nos permite crear mundos, escenarios o todo lo que esté en nuestra mano, con único tope, nuestra imaginación. ABSTRACT Games have always been close to us, have served as dumb teacher through the ages, and rarely forget the rules or principles. So “JAVA’S PURGATORY”: Development of an educational game in Unity3D”, is a guide for those who continue in the world of programming, in proposing a tour of the seven deadly sins that Dante had to go to reach his soul cleansing, being each a different subject to be treated. It takes as reference the Divine Comedy of Dante Alighieri, in which the student presents Dante, and his teacher Virgil. During the trip, you have to clean the sins and learn from what each character has to show the traveler, to reach the end of the trip and to embrace his beloved Beatrice. The similarity with the project, is that Dante is a student who still has the first programming course, and Virgil is the teacher who guides you to overcome it. The main objective of the project is to learn the basics about object orientation, bring players into a world unknown to them and may facilitate the learning of a subject, which in most cases has not been see during high school. Likewise, the tool uses to create Unity3D games, which allows us to create worlds, scenarios or everything in our power, with only one stop, our imagination. 5 6 AGRADECIMIENTOS Hace mucho tiempo, escuché una frase que dijo alguien una vez: “Antes de morir, los seres humanos deberíamos: plantar un árbol, escribir un libro y tener un hijo”. Analizando por que etapa de mi vida voy puedo afirmar, que he plantado un árbol, un melocotonero que da frutos, ya he dejado una semilla para mi familia tanto para el presente, como para el futuro; en cuanto a lo de escribir un libro, durante mi vida, la que llevo vivida, he podido escribir no solo uno sino varios libros de muchas cosas, con cada capítulo distinto al anterior y cada vez con mayor información que aportar a los que lo leyesen, pero con este trabajo pretendo ayudar a los que empiezan en un mundo cuanto menos complicado y lleno de baches, pero también repleto de satisfacción, al ver que lo que uno ha ideado y dado forma, cobra vida de forma en un principio inimaginable....y con respecto a tener un hijo..........eso es otro capitulo de mi vida,jeje. Ante todo lo antes expuesto, debo agradecer el esfuerzo que ha supuesto y aún supone para mis padres, Jose María y Milagros, el haber conseguido que estudie una carrera y ser alguien de provecho, como diría mi familia, sobre todo mi tío Juan Antonio. A mi hermano, por esas comidas de cabeza, y momentos de idea feliz que tantos problemas nos han quitado de la tediosa vida del estudiante, Fernando sin esos momentos la vida seria muy aburrida. A mis compañeros de carrera, en especial mención a Gema, la cual aún a día de hoy sigue soportando mis vueltas de todo, para luego tener que darme la razón aunque no la tenga. Y a mis amigos de Los Molinos, los cuales han estado siempre en el mejunje de todo este trabajo. Pero una especial mención se le debe dar a Ana, la mujer que ha compartido y comparte su vida con la mía, y la cual espero que sea la que me ayude a poder concluir el último capítulo que debería hacer antes de terminar el libro de mi vida. A ella, a mis padres y a mi hermano, está dedicado este trabajo. Gracias. “Los dos días más importantes de la vida de cada persona son: El día que naces, y el día que encuentras la razón por la que naciste.” 7 8 INDICE Resumen/Abstract ....................................................................................................... 5. Agradecimientos ......................................................................................................... 7. Capítulo 1: Introducción ........................................................................................... 13. 1.1. Introducción al proyecto .............................................................................................. 14. 1.2. Motivación del proyecto .............................................................................................. 14. 1.3. Objetivos que se persiguen ........................................................................................... 16. 1.4. Resumen de la memoria .............................................................................................. 16. Capítulo 2: Estado del arte ....................................................................................... 20. 2.1. Breve introducción a juegos educativos de programación ........................................... 20. 2.1.1. Alice .......................................................................................................................................... 21. 2.1.2. Snake Wrangling for kids (Serpiente Wranqling para niños) ................................................... 21. 2.1.3. Ruby for kids ............................................................................................................................ 22. 2.1.4. Kodu .......................................................................................................................................... 23. 2.1.5. LEGO MindStorms NXT ......................................................................................................... 24. 2.1.6. Petit Computer .......................................................................................................................... 25. 2.1.7. RoboMind ................................................................................................................................. 26. 2.1.8. Scratch ...................................................................................................................................... 27. 2.1.9. RPG Maker ............................................................................................................................... 27. 2.2. Herramientas para la creación de juegos en 3D ........................................................... 28. 2.2.1. Ogre 3D .................................................................................................................................... 29. 2.2.2. Panda 3D ................................................................................................................................... 30. 2.2.3. JMonkeyEngine ........................................................................................................................ 30. 2.2.4. UDK ......................................................................................................................................... 31. 2.3. Géneros de los juegos ................................................................................................... 32. 2.4. Estado actual de los juegos educativos ......................................................................... 37. 2.5. Utilidad de los juegos ................................................................................................... 40. 2.6. Conclusiones ................................................................................................................ 41. 9 Capítulo 3: Desarrollo del proyecto ......................................................................... 42. 3.1. ¿Por dónde se empieza un juego? ................................................................................. 43. 3.2. Historia de Dante .......................................................................................................... 44. 3.3. Planificación del proyecto ............................................................................................ 46. 3.4. Diseño de la aventura ................................................................................................... 48. 3.4.1. Inicio del juego ......................................................................................................................... 48. 3.4.2. Pantalla introductora del juego ................................................................................................. 49. 3.4.3. Puertas del Purgatorio ............................................................................................................... 50. 3.4.4. La Pereza .................................................................................................................................. 51. 3.4.5. La Gula ..................................................................................................................................... 52. 3.4.6. Orgulloso de ser ........................................................................................................................ 53. 3.4.7. Un pequeño pedazo de Amsterdam .......................................................................................... 54. 3.4.8. La envidia corroe por dentro ..................................................................................................... 56. 3.4.9. Los iracundos ............................................................................................................................ 57. 3.4.10. La Avaricia no es buena para nadie ........................................................................................ 59. 3.4.11. ¿Fin de la historia? .................................................................................................................. 60. Capítulo 4: Diseño e implementación ...................................................................... 62. 4.1. Requisitos del usuario .................................................................................................. 63. 4.2. Diseño del sistema ........................................................................................................ 64. 4.2.1. Dinámica general de las escenas ............................................................................................... 64. 4.2.2. Interfaz de usuario .................................................................................................................... 71. 4.2.3.Estructuras de programación ..................................................................................................... 81. 4.3. Implementación del código .......................................................................................... 85. 4.4. Conclusiones ................................................................................................................ 91. Capítulo 5: Batería de pruebas ................................................................................. 92. 5.1. Resultados .................................................................................................................... 93. Capítulo 6: Trabajos futuros ..................................................................................... 95. 6.1. Mejoras para una versión 2.0 ....................................................................................... 96. 6.2. Conclusiones ................................................................................................................ 97. 10
Description: