Proyecto947.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD DE ALMERÍA ESCUELA POLITÉCNICA SUPERIOR Y FACULTAD DE CIENCIAS EXPERIMENTALES INGENIERÍA INFORMÁTICA DroidEngine2D Motor para el desarrollo de videojuegos 2D para Android El Alumno: Miguel Vicente Linares Director: Antonio Leopoldo Corral Liria Almería, Julio de 2014 Capítulo 1. Introducción. 2 DroidEngine2D: Motor para el desarrollo de juegos 2D para Android. Agradecimientos A mi familia, y en especial a mis padres y mi hermano por su apoyo desde siempre y por su paciencia. A mi tutor, Antonio Corral, por el asesoramiento, por los consejos y por animarme en todo momento a terminar el proyecto. A mis compañeros, en especial a Jorge García, Sergio Revueltas y Antonio Vicente, por el apoyo durante los 5 años de carrera. A mis profesores, por enseñarme las bases de los conocimientos técnicos que me han permitido, entre otras cosas, desarrollar este proyecto. En particular a los profesores Manuel Torres, Vicente González, Joaquín Cañadas, Leo González y Julio Barón por aceptar amablemente formar parte del tribunal que evaluará este proyecto. A cualquier persona que me haya ayudado, de forma directa o indirecta, a llevar a cabo este proyecto. Gracias. i Índice de contenidos. ii DroidEngine2D: Motor para el desarrollo de juegos 2D para Android. Índice de contenidos 1. Introducción ................................................................................................................ 1 1.1. Introducción al desarrollo de videojuegos ............................................................. 1 1.2. Roles en un equipo de desarrollo de videojuegos .................................................. 1 1.2.1. Ingenieros y programadores ............................................................................ 2 1.2.2. Artistas ............................................................................................................ 3 1.2.3. Diseñadores de juegos ..................................................................................... 3 1.2.4. Productores ...................................................................................................... 4 1.2.5. Personal de gestión y apoyo ............................................................................ 4 1.3. Motores de juegos .................................................................................................. 4 1.3.1. ¿Cómo surgieron los primeros motores de juegos? ........................................ 4 1.3.2. ¿Qué es un motor de juegos?........................................................................... 5 1.3.3. Motores optimizados para un género de videojuegos ..................................... 5 1.3.4. Arquitectura de un motor de juegos ................................................................ 9 1.3.5. El bucle del juego .......................................................................................... 18 1.4. Componentes de una aplicación para Android .................................................... 22 1.4.1. Activities ....................................................................................................... 23 1.4.2. Services ......................................................................................................... 24 1.4.3. Content providers .......................................................................................... 25 1.4.4. Broadcast receivers ....................................................................................... 25 1.5. Motivación ........................................................................................................... 25 1.6. Objetivos generales del proyecto ......................................................................... 26 1.7. Planificación temporal ......................................................................................... 27 2. Estado del arte .......................................................................................................... 31 2.1. Introducción ......................................................................................................... 31 2.2. Revisión de varios motores de juegos .................................................................. 31 2.2.1. Unity .............................................................................................................. 32 2.2.2. Unreal Engine ................................................................................................ 33 2.2.3. UDK .............................................................................................................. 34 2.2.4. CryEngine...................................................................................................... 35 2.2.5. OGRE3D ....................................................................................................... 35 2.2.6. Open Game Engine ....................................................................................... 36 2.2.7. LibGDX ......................................................................................................... 36 iii Índice de contenidos. 2.2.8. AndEngine ..................................................................................................... 37 2.3. Conclusiones ........................................................................................................ 38 3. OpenGL ES ............................................................................................................... 39 3.1. Introducción ......................................................................................................... 39 3.2. ¿Qué es OpenGL ES? .......................................................................................... 39 3.3. Versiones de OpenGL ES .................................................................................... 40 3.3.1. OpenGL ES 1.X ............................................................................................ 40 3.3.2. OpenGL ES 2.X ............................................................................................ 41 3.3.3. OpenGL ES 3.X ............................................................................................ 41 3.4. Sistemas de coordenadas en OpenGL .................................................................. 42 3.4.1. Object Coordinates ........................................................................................ 43 3.4.2. World Coordinates ........................................................................................ 44 3.4.3. Eye Coordinates ............................................................................................ 46 3.4.4. Clip Coordinates ............................................................................................ 46 3.4.5. Normalized Device Coordinates ................................................................... 48 3.4.6. Window Coordinates ..................................................................................... 49 3.5. Pipelines de rendering en OpenGL ES ................................................................ 49 3.5.1. Pipeline de rendering de función fija ............................................................ 50 3.5.2. Pipeline de rendering programable ............................................................... 55 3.6. Soporte de OpenGL ES en Android..................................................................... 59 3.7. ¿Por qué utiliza DroidEngine2D OpenGL ES 2.0? ............................................. 60 3.8. Conclusiones ........................................................................................................ 61 4. DroidEngine2D ......................................................................................................... 63 4.1. Introducción ......................................................................................................... 63 4.1.1. ¿Qué es DroidEngine2D? .............................................................................. 63 4.1.2. Beneficios de DroidEngine2D ...................................................................... 64 4.2. Descripción general del proyecto......................................................................... 65 4.2.1. Perspectiva del producto ............................................................................... 65 4.2.2. Funciones del producto ................................................................................. 65 4.2.3. Características de los usuarios....................................................................... 69 4.2.4. Restricciones ................................................................................................. 69 4.2.5. Suposiciones y dependencias ........................................................................ 70 4.3. Desarrollo del proyecto ........................................................................................ 70 4.3.1. Características generales ............................................................................... 71 4.3.2. Audio ............................................................................................................. 78 iv DroidEngine2D: Motor para el desarrollo de juegos 2D para Android. 4.3.3. Estados del juego ........................................................................................... 80 4.3.4. Gráficos ......................................................................................................... 85 4.3.5. Entrada de usuario ......................................................................................