Videojuegos3DAndroid Unity3D New Curso
Transcript of Videojuegos3DAndroid Unity3D New Curso
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
1/218
Desarrollo de videojuego 3D para Android utilizando elsoftware Unity3d e integracin con aplicacin web basada
en tecnologa Drupal mediante web services SOAP
TITULACIN: Ingeniera Tcnica en Telecomunicaciones, especialidad Telemtica.
AUTORES:Eloy Cantero, Salvador Lpez .DIRECTORES:Carlos Molina, Jordi Duch .
FECHA:Febrero / 2012.
Departament dEnginyeria Informtica i Matemtiques
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
2/218
RESUMEN
Los dispositivos mviles forman parte del da a da de millones de personas en todo el
mundo, independientemente de su edad o condicin social. Por otra parte, el sector de los
videojuegos se mantiene firme pese a los tiempos de crisis y poco a poco va acercndose a
sectores de la poblacin totalmente inexplotados.
El desarrollo web ha evolucionado enormemente en los ltimos aos, integrando mltiples
tecnologas que permiten dar soporte a numerosas aplicaciones. Esta curva evolucin ha sido
especialmente pronunciada en lo referente a dispositivos mviles.
La tendencia actual de las empresas es ir hacia la integracin de tecnologas. Por tanto, lo
realmente competitivo es ofrecer al usuario final un software que pueda ser ejecutado en un
mvil y que disponga de las opciones necesarias para intercambiar informacin con una
pgina web en tiempo real.
Por todo ello, el presente proyecto busca aunar el mundo de los videojuegos con los
dispositivos mviles y todas las tecnologas de comunicacin que integran; centrndose en el
aprovechamiento de las capacidades que ofrece el software de creacin de videojuegos
Unity 3d para el S.O Android, la creacin de la web basndose en el CMS Drupaly la
integracin de web y videojuego mediante el uso de webServices.
Unity3d para Android.
Esta herramienta de creacin de videojuegos, en su versin de compilacin para el S.O
Android, se diferencia del resto de frameworks existentes en un apartado fundamental, la
integracin.Para entender este concepto slo hay que mirar a su competencia directa, el
Marmalade SDK, que requiere de la instalacin previa de un IDE (concretamente el Visual
Studio) desde el que se programar posteriormente la aplicacin.
Desarrollar software con Unity3d significa trabajar a un nivel de abstraccin superior,
empezando por la facilidad a la hora de poner en marcha un proyecto. nicamente
deberemos instalar el software mediante su correspondiente archivo ejecutable y, siguiendo
una serie de pasos guiados, podremos empezar a programar y a montar el entorno 3D de
forma intuitiva y sin necesidad de disponer de unos conocimientos muy avanzados de
programacin.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
3/218
Por ltimo, quiz el punto ms fuerte de Unity3d es su comunidad y soporte online. Desde
su pgina web se puede acceder a todo tipo de documentacin y foros tcnicos para solventar
cualquier duda que pueda surgir en la utilizacin del software.
Drupal.
Drupal es un sistema gestor de contenidos CMS, por tanto, es una herramienta que permite
crear webs de cualquier tipo. En este proyecto se ha creado el sitio web GameWebutilizando
este sistema.
GameWeb es una web dedicada a dar soporte a aplicaciones del tipo videojuegos para
clientes mviles. Por tanto, es la pgina donde el usuario se registra y descarga dichas
aplicaciones. El sitio web tambin le permite interactuar con otros usuarios y con laredaccin haciendo ms amena la experiencia.
En cuanto a las aplicaciones disponibles, todas disponen de un ranking online el cual el
usuario podr consultar tanto en la web como del dispositivo.
webService SOAP.
Los servicios web permiten la interaccin entre la aplicacin del dispositivo mvil y la web.
Estos servicios web estn creados utilizando la tecnologa SOAP para el intercambio de
datos. Este protocolo de comunicacin permite transferir datos entre distintas plataformas y
lenguajes de programacin mediante el traspaso de ficherosXML.
Las funciones de comunicacin permiten al usuario interactuar con otros jugadores a travs
de un ranking online. Este se podr consultar en cualquier momento mejorando la
experiencia de juego. Para acceder a l debe disponer de una cuenta de usuario de la pgina
web GameWeby realizar el correspondiente login.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
4/218
NDICE GENERAL
1. Introduccin ........................................................................................................................ 151.1. Motivacin del proyecto ............................................................................................... 151.2. Objetivos del proyecto .................................................................................................. 16
2. Estado del arte .................................................................................................................... 172.1. Los gestores de contenido CMS ................................................................................... 17
2.1.1.Joomla .................................................................................................................. 18
2.1.2.PHP-Nuke ............................................................................................................. 19
2.1.3.Moodle .................................................................................................................. 21
2.1.4.Drupal .................................................................................................................. 232.1.4.1. Drupal y PHP ........................................................................................ 25
2.1.4.2. Drupal y MySQL .................................................................................. 26
2.1.4.3. Drupal y CSS ........................................................................................ 26
2.1.4.4. Mdulos en Drupal ............................................................................... 27
2.2. Los sistemas operativos para mviles ........................................................................... 282.2.1.iOS de Apple ......................................................................................................... 28
2.2.2.Windows phone 7.................................................................................................. 29
2.2.3.Android ................................................................................................................ 312.2.3.1. Android y Java ...................................................................................... 33
2.2.3.2. Servicios web en Android ..................................................................... 34
2.3. Servicios Web ............................................................................................................... 362.3.1.XML ..................................................................................................................... 38
2.3.2.El protocolo SOAP................................................................................................ 40
2.3.3.WSDL .................................................................................................................. 41
2.3.4.Otros protocolos y estndares usados en Web Services ....................................... 41
2.4. Programacin de videojuegos para mvil ..................................................................... 422.4.1.Niveles de abstraccin .......................................................................................... 43
2.4.1.1. Bajo nivel .............................................................................................. 43
2.4.1.1.1. Android NDK .......................................................................... 43
2.4.1.2. Nivel intermedio .................................................................................. 44
2.4.1.2.1. Android SDK ........................................................................... 44
2.4.1.3. Alto nivel ............................................................................................. 45
2.4.1.3.1. Marmalade SDK ...................................................................... 46
2.4.1.3.2. Cocos2D ................................................................................... 48
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
5/218
2.4.1.3.3. Unity 3D .................................................................................. 50
3. Especificaciones .................................................................................................................. 613.1. Especificaciones de la web ........................................................................................... 61
3.1.1.Pgina principal.................................................................................................... 61
3.1.2.Contenido del men principal ............................................................................... 61
3.1.2.1. Login o registro de nuevo usuario ........................................................ 61
3.1.2.2. Juegos ................................................................................................... 62
3.1.2.3. Noticias ................................................................................................. 63
3.1.2.4. Zona Foro.............................................................................................. 63
3.1.2.5. Fan Art .................................................................................................. 64
3.1.2.6. Conoce a tus hroes .............................................................................. 65
3.2. Especificaciones del videojuego ................................................................................... 663.2.1.Genero del juego ................................................................................................... 66
3.2.2.Objetivos del juego ............................................................................................... 66
3.2.3.Escenas .................................................................................................................. 67
3.2.3.1. Men principal ...................................................................................... 67
3.2.3.2. Escena de juego .................................................................................... 70
3.2.3.2.1. Terreno ..................................................................................... 70
3.2.3.2.2. Plataformas .............................................................................. 72
3.2.3.2.3. Objetos coleccionables............................................................. 75
3.2.3.2.4. Enemigos y zonas de penalizacin........................................... 76
3.2.3.2.5. Zonas secretas .......................................................................... 78
3.2.3.3. Men Post Partida ................................................................................. 79
3.2.3.4. Men Puntuaciones ............................................................................... 80
3.2.4.Personaje principal ................................................................................................ 81
3.2.4.1. Animaciones del personaje ................................................................... 81
3.2.4.2. Interaccin con enemigos, objetos y plataformas ................................. 82
3.2.5.Msica ................................................................................................................... 833.2.6.Efectos de sonido SFX .......................................................................................... 84
3.3. Especificaciones de los webServices ............................................................................ 853.3.1.webService servidor .............................................................................................. 86
3.3.1.1. Loggin y control de usuario .................................................................. 87
3.3.1.2. Manejo del ranking de puntuaciones .................................................... 87
3.3.2.webService cliente ................................................................................................ 87
3.3.2.1. Loggin y control de usuario .................................................................. 88
3.3.2.2. Manejo del ranking de puntuaciones .................................................... 88
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
6/218
4. Estudios previos .................................................................................................................. 894.1. Preparando las herramientas ......................................................................................... 894.2. Programacin de videojuegos ....................................................................................... 90
4.2.1.Estructura bsica de un videojuego ....................................................................... 90
4.3. Primer juego:El Machanguito...................................................................................... 924.3.1.Definicin del juego .............................................................................................. 92
4.3.2.Estructura de clases ............................................................................................... 93
4.3.3.Funcionamiento ..................................................................................................... 94
5. Decisiones de diseo ............................................................................................................ 975.1. Drupal ........................................................................................................................... 975.2. Android ......................................................................................................................... 995.3. WebService Soap ........................................................................................................ 1005.4. Unity 3D ..................................................................................................................... 101
6. Diseo ................................................................................................................................. 102
6.1. Diseo de la web ......................................................................................................... 1026.1.1.Diagrama de casos de uso ................................................................................... 102
6.1.2.Diagrama de estados ........................................................................................... 103
6.2. Diseo del videojuego ................................................................................................ 1046.2.1.Diagrama de casos de uso ................................................................................... 104
6.2.2.Diagrama de estados ........................................................................................... 105
6.2.3.Usabilidad especfica para Android .................................................................... 106
6.3. Diseo de los webServices......................................................................................... 1096.3.1.Diagramas de casos de uso .................................................................................. 109
6.3.2.Diagramas de estados .......................................................................................... 1106.3.3.Usabilidad especfica para Android .................................................................... 111
7. Desarrollo .......................................................................................................................... 1127.1. Desarrollo de la web ................................................................................................... 112
7.1.1.Instalacin de Drupal ......................................................................................... 112
7.1.2.Control de usuarios y de roles ............................................................................ 114
7.1.3.Mens y navegacin........................................................................................... 117
7.1.3.1. Preparando el men de navegacin izquierdo .................................... 117
7.1.3.2. El mdulo ckeditor............................................................................. 1187.1.3.3. ltimas noticias .................................................................................. 119
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
7/218
7.1.3.4. Juegos ................................................................................................. 123
7.1.3.5. Zona Foro............................................................................................ 127
7.1.3.6. Conoce a tus hroes ............................................................................ 130
7.1.3.7. Fan Art ................................................................................................ 130
7.1.4.Elementos complementarios .............................................................................. 130
7.1.4.1. Contador de usuarios, enlaces de inters y RSS ................................. 131
7.1.4.2. El mduloPoll.................................................................................... 133
7.1.5.Aspecto visual de la web .................................................................................... 135
7.1.5.1. Instalacin del tema ZEN ................................................................... 136
7.1.5.2. Creacin de un subtema ZEN ............................................................. 138
7.1.5.3. Modificacin del tema ........................................................................ 140
7.2. Desarrollo del videojuego ........................................................................................... 1427.2.1.Estructura y jerarqua de clases dentro de Unity3D ............................................ 142
7.2.2.Elementos comunes a todas las escenas del videojuego ..................................... 145
7.2.2.1. Creacin del fondo tridimensional ...................................................... 145
7.2.2.2. Msica de fondo ................................................................................. 147
7.2.3.EscenaMenuPrincipal........................................................................................ 148
7.2.3.1. Cmara principal ................................................................................. 148
7.2.3.2. Mens y Etiquetas ............................................................................... 149
7.2.3.3. Msica de fondo ................................................................................. 152
7.2.4.EscenaPantalla1................................................................................................. 153
7.2.4.1. Creacin del entorno tridimensional ................................................... 153
7.2.4.2. Cmara principal ................................................................................. 159
7.2.4.3. Personaje principal .............................................................................. 160
7.2.4.4. Objetos coleccionables ....................................................................... 168
7.2.4.5. Enemigos ............................................................................................ 170
7.2.4.6. Mens y Etiquetas ............................................................................... 173
7.2.5.EscenaMenuPostPartida.................................................................................... 1787.2.5.1. Cmara principal ................................................................................. 178
7.2.5.2. Mens y Etiquetas ............................................................................... 179
7.2.6.EscenaMenuPuntuaciones................................................................................. 181
7.2.6.1. Mens y Etiquetas ............................................................................... 181
7.2.6.2. Creacin de la tabla del ranking online .............................................. 1827.3. Desarrollo de los webServices ................................................................................... 184
7.3.1.Integrando SOAP en Drupal ............................................................................... 184
7.3.1.1. Mdulo Services ................................................................................. 184
7.3.1.2. Mdulo Soap Server ........................................................................... 185
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
8/218
7.3.2.Implementacin del servidor ............................................................................... 186
7.3.3.Desarrollo del cliente Android ............................................................................ 193
7.3.3.1. Instalacin de la librera ksoap2 ......................................................... 194
7.3.3.2. Funciones de conexin ....................................................................... 195
7.3.3.3. Integracin de Unity3d con Android en IDE Eclipse ......................... 197
8. Pruebas realizadas ............................................................................................................ 200
9. Software y herramientas utilizadas ................................................................................. 2029.1. Entorno Eclipse ........................................................................................................... 2029.2. Unity3D ...................................................................................................................... 2029.3. Simulador de Android ................................................................................................. 2029.4. 3dsMax........................................................................................................................ 2039.5. Photoshop.................................................................................................................... 2049.6.NotePad++ .................................................................................................................. 2049.7. Audacity ...................................................................................................................... 2059.8. Edge Diagrammer ....................................................................................................... 2069.9. Gantt Project ............................................................................................................... 2069.10. Paquete Office ................................................................................................. 206
10.Aspectos legales ................................................................................................................. 20710.1. Sociedad de responsabilidad Limitada (S.L.) ................................................. 207
10.1.1.Caractersticas.................................................................................................. 207
10.1.2.Requisitos de constitucin ............................................................................... 207
10.1.3.rganos que componen la sociedad limitada .................................................. 208
11.Costes ................................................................................................................................. 209
12.Planning temporal ............................................................................................................ 21112.1. Diagrama de Gantt ........................................................................................... 212
13.Conclusiones y trabajos futuros ...................................................................................... 213
14.Referencias ........................................................................................................................ 215
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
9/218
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
10/218
Figura 45. Objeto coleccionableLlave Mgica..................................................................... 78Figura 46. Plataforma secreta ................................................................................................. 78Figura 47. Zona secreta .......................................................................................................... 79Figura 48. MenPostPartida................................................................................................. 80Figura 49. MenuPuntuaciones.............................................................................................. 81
Figura 50. Animaciones del personaje principal .................................................................... 82Figura 51. Ejemplo de efectos especiales en gemas y en el propio personaje ....................... 83Figura 52. Diagrama de bucle principal de juego .................................................................. 91Figura 53. Ejemplo de Sprites del videojuego Super Mario Bros.......................................... 92Figura 54. Sprites utilizados en el proyectoEl Machanguito................................................ 95Figura 55. Pantalla de juego deEl Machanguito................................................................... 96Figura 56. Animacin de caminar .......................................................................................... 96Figura 57. Animacin de saltar .............................................................................................. 96Figura 58. Diagrama de casos de uso de la web................................................................... 101Figura 59.Diagrama de estados de la web ........................................................................... 103
Figura 60. Diagrama de casos de uso del videojuego .......................................................... 104Figura 61. Diagrama de estados del videojuego .................................................................. 105Figura 62. Smartphone LG Optimus 2X .............................................................................. 106Figura 63. Ejemplo de aplicacin de shaders ....................................................................... 107Figura 64. Tabla de configuracin de grficos del videojuego ............................................ 108Figura 65. Diagrama de casos de uso de los elementos de comunicacin ........................... 109Figura 66. Diagrama de estados de comunicacin de la aplicacin ..................................... 110Figura 67. Ventana del asistente de instalacin de Drupal .................................................. 113Figura 68. Error de instalacin de Drupal ............................................................................ 113Figura 69. Ventana de configuracin bsica de la base de datos ......................................... 114
Figura 70.Ventana de administracin de opciones para roles y permisos ........................... 115Figura 71. Ventana de asignacin de roles y permisos para usuarios especficos ............... 116Figura 72. MduloProfiles.................................................................................................. 116Figura 73. Ventana de creacin de mens ........................................................................... 117Figura 74. Ventana de creacin de bloques.......................................................................... 118Figura 75. Seccin superior de la ventana del editor Ckeditor............................................ 119Figura 76. Ventana de habilitacin de mdulos ya instalados ............................................. 119Figura 77. Ventana de administracin de permisos para mdulos concretos ...................... 120Figura 78. Ejemplo de asignacin de permisos al mdulo comment................................... 121Figura 79. Ventana de seleccin de filtros aplicables a la escritura de texto en la web ....... 121Figura 80. Ejemplo de insercin de elemento en el contenedorEnlaces Web..................... 122Figura 81. Ventana de configuracin del elemento aadido a un contenedor...................... 122Figura 82. Ventana de descargas de juegos de la web ......................................................... 124Figura 83. Ejemplo de creacin de un tipo de contenido ..................................................... 124Figura 84. Ventana de informacin sobre el juego a descargar ........................................... 125Figura 85. Diagrama UML de .ranking de usuarios ............................................................. 126Figura 86. Ventana de activacin del mduloForum.......................................................... 127Figura 87. Ejemplo de configuracin de permisos para el mduloForum.......................... 128Figura 88. Ventana de creacin de foros .............................................................................. 128Figura 89. Estructura de los foros iniciales de la web .......................................................... 129Figura 90. Activacin del mdulo Quien est conectado.................................................... 131
Figura 91. Visualizacin del mdulo Quien est conectado en la pgina principal ............ 132Figura 92. Visualizacin del men Sitios de inters............................................................ 132
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
11/218
Figura 93. Visualizacin del bloque Sindicar...................................................................... 133Figura 94. Ventana de activacin del mduloPoll.............................................................. 133Figura 95.Configuracin de permisos para el mduloPoll................................................ 133Figura 96. Formulario de creacin de encuesta.................................................................... 134Figura 97. Visualizacin del bloqueEncuesta en la pgina principal.................................. 135
Figura 98. Ventana de seleccin de estados para los temas disponibles .............................. 136Figura 99. TemaZEN disponible en Drupal 6.x .................................................................. 137Figura 100. Ejemplo de insercin de elemento en el contenedorEnlaces Web................... 137Figura 101. Sistema de ficheros de la carpeta de instalacin de Drupal .............................. 137Figura 102. Carpeta creada para la creacin del subtemagameweb.................................... 138Figura 103. Aspecto del navegadorFirefox una vez instalado el complementoFirebug.... 140Figura 104. Ventana de trabajo del complementoFirebug.................................................. 141Figura 105. Apariencia final de la pgina principal de la web una vez aplicado el CSS ..... 141Figura 106. Diagrama de jerarqua de objetos del videojuego ............................................. 143Figura 107. ObjetoPalm del paquete Standard Assets........................................................ 145
Figura 108. Elementos del objetoPalm en el panelProject................................................ 146Figura 109.Botones de movimiento y rotacin de objetos del panel Scene........................ 146Figura 110. Ejemplo de componente del tipoAudioSource vista desde el panel
Inspector.......................................................................................................... 147Figura 111. Ejemplo de componente del tipo Camera vista desde el panelInspector........ 148Figura 112. Ejemplo de componente del tipo Script vista desde el panelInspector........... 149Figura 113. Jerarqua del contenedorMainTitle dentro del panelHirearchy...................... 149Figura 114. Ejemplo de componente del tipo GUITexture vista desde el panel
Inspector.......................................................................................................... 150Figura 115. Fuentes de audio Song1 y Song2 asociadas al script SelectorMusica.............. 152
Figura 116. Objeto con filtro de superficie del tipo Cube.................................................... 154Figura 117. Ejemplo de componente del tipoRigidBody vista desde el panelInspector.... 154Figura 118. Ejemplo de componente del tipoBoxCollider vista desde el panel
Inspector.......................................................................................................... 154Figura 119. Asignacin de las posiciones de referencia alscript BamboleoPlataforma..... 155Figura 120.Prefab FuegoCompacto visto desde los panelesHirearchy yProject............. 156Figura 121. Configuracin del materialFireSmoke del objetoFuegoCompacto................. 156Figura 122. Ventana de creacin de un sistema de partculas .............................................. 156Figura 123. Componentes asociadas por defecto al crear un sistema de partculas ............. 157Figura 124. Configuracin del CapsuleCollider asociado al objetoFuegoCompacto......... 157Figura 125.Casilla de desactivacin del contenedorZonaSecreta...................................... 157Figura 126. ComponenteAudioSource asociada al objetoPlataformaSecreta.................... 159Figura 127. Asociacin delprefab efectoPlataformaSecreta al script que lo controla ........ 159Figura 128. Posicin del objetoMachanguito asociada al script de control de la cmara ... 160Figura 129. Panel de exportacin de objeto de Unity3d ...................................................... 160Figura 130.Jerarqua del objeto 2D SideScroller dentro del panelHirearchy.................... 160Figura 131. Componentes asociadas al objetoMachanguito............................................... 161Figura 132. Animaciones asociadas a la componenteAnimation........................................ 161Figura 133. Jerarqua de los objetos asociados al contenedorDual TouchPads.................. 163Figura 134. Opciones del scriptJoystick.............................................................................. 163Figura 135. Asociacin de scripts de TouchPads al Script de control del personaje ........... 164
Figura 136. Propiedades pblicas de la componente CharacterController......................... 165Figura 137. Colocacin de los Colliders del personaje visto desde el panel Scene............. 166
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
12/218
Figura 138. Asociacin del objetoFuegoMachango al Script que lo controla .................... 167Figura 139. Configuracin de la componenteMeshColliderpara una superficie plana ...... 168Figura 140. Script ControlColliderGemas........................................................................... 169Figura 141. Jerarqua del contenedorPjaros..................................................................... 171Figura 142.Colocacin de los Colliders del enemigo visto desde el panel Scene............... 171
Figura 143. Variables pblicas asociadas alscript de control del enemigo ......................... 172Figura 144. Jerarqua del contenedorMiscelanea de la escenapantalla1........................... 173Figura 145. Texturas asociadas al script ControlBarraVida................................................ 173Figura 146. Jerarqua del contenedorLabelsPantallaJuego de la escenapantalla1............ 175Figura 147. Variables pblicas delscript MainMenuBtns................................................... 176Figura 148. Componentes asociadas al objetoPausaBtn..................................................... 177Figura 149. GUITexture asociada al objetoPeanutManFace.............................................. 178Figura 150. Propiedades y colocacin del objetoMainCamera en la escena ...................... 179Figura 151. Jerarqua del contenedorMiscelanea de la escenaMenuPostPartida.............. 179Figura 152.GUITexture asociada al objeto GameOverWord.............................................. 179
Figura 153. Contenido de las variables pblicas delscript GameOverScript...................... 180Figura 154. Jerarqua del contenedorMiscelanea de la escenaMenuPuntuaciones............ 181Figura 155. Propiedades pblicas delscript MainMenuBtns............................................... 182Figura 156. Estilos asociados al scriptMenuPuntuaciones................................................. 182Figura 157. Diferentes servicios disponibles en el mdulo Services de Drupal .................. 184Figura 158. Ventana de visualizacin de parmetros de servicio de la libreraNUSOAP... 186Figura 159. Visualizacin del nuevo mdulo mvil_service incorporado en Drupal .......... 188Figura 160. Lista de funciones del mdulo mvil_services a las que se tiene acceso ......... 189Figura 161. Enlaces de las funciones implementadas en el mdulo mvil_service............. 192Figura 162. Formulario de pruebas genrico para una funcin del mdulo
mvil_services................................................................................................. 193Figura 163. Enlace de acceso a las descripciones WSDL..................................................... 193Figura 164. Aspecto del Web Services Definition Language utilizado ................................ 193Figura 165.Ventana para aadir elJAR externo ksoap2...................................................... 194Figura 166. Panel para transformar una carpeta en una librera del proyecto ...................... 198Figura 167. Jerarqua de carpetas dentro de la librera UnityPlayerActivity........................ 198Figura 168. Interfaz delIDE Eclipse.................................................................................... 202Figura 169. Interfaz del simulador de Android .................................................................... 203Figura 170. Interfaz del programa 3dsMax.......................................................................... 203Figura 171. Interfaz del programaAdobe Photoshop.......................................................... 204Figura 172. Interfaz del programaNotepad++.................................................................... 205Figura 173. Interfaz del programaAudacity........................................................................ 205Figura 174. Interfaz del programaEdgeDiagrammer.......................................................... 206Figura 175. Interfaz del programa GanttProject.................................................................. 206Figura 176. Tabla de costes del proyecto ............................................................................. 209Figura 177. Diagrama de Gantt ............................................................................................ 212
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
13/218
NDICE DE CDIGOS FUENTE
Cdigo 1. Definicin e inicializacin de la matriz del escenario del juegoEl Machanguito..................................................................................................... 95
Cdigo 2. Etiqueta html para enlazar con el ranking del juego ........................................... 126Cdigo 3. Comprobacin de existencia de una key concreta de una variable sper
global ................................................................................................................... 127Cdigo 4. Modificacin de variables del ficherogameweb.info.......................................... 138Cdigo 5. Diferentes regiones aadidas o bloqueadas del ficherogameweb.info................ 139Cdigo 6. Lneas del ficherogameweb.info que hacen referencia a los estilos CSS ........... 139Cdigo 7. Funcin del fichero template.php que hace referencia al tema STARTERKIT.... 139Cdigo 8. Substitucin del tema STARTERKITporgameweb............................................. 140Cdigo 9. Mtodo SmoothDamp del objetoMathf de Unity3d ............................................ 149Cdigo 10. Variable esttica que guarda elstring Conectando...................................... 150
Cdigo 11. Variablepara controlar el estado de la conexin con el servidor ...................... 150Cdigo 12. Funcin para mostrar los cuadros de texto del login de usuario ....................... 151Cdigo 13. Ejemplo de captura del evento de pulsar en una etiqueta .................................. 151Cdigo 14. Llamada al mtodo webLogindelwebService cliente ....................................... 152Cdigo 15. Mtodo Get del objetojo utilizado para recibir el parmetro error............. 152Cdigo 16. MtodoLoadLevel de Unity3d para cargar la escena levelToLoad................... 152Cdigo 17. Creacin de variables pblicas del tipoAudioSource....................................... 153Cdigo 18. Ejemplo de uso de la funcinRandom de Unity3d ........................................... 153Cdigo 19. Creacin de variables pblicas del tipo Transform........................................... 155Cdigo 20. Bucle de ejecucin delscriptque controla las plataformas mviles ................. 155
Cdigo 21. Activacin de la propiedad active del objetoplataformaSecreta1.................... 158Cdigo 22. Condicin que comprueba qu plataforma secreta se debe activar ................... 158Cdigo 23. Ejemplo de uso del mtodoInstantiate de Unity3d .......................................... 159Cdigo 24. Definicin de las variables de control de animaciones del personaje ............... 162Cdigo 25. Proceso de cargado de animaciones dentro de la funcinAwake de Unity3d ... 162Cdigo 26. Ejemplo de llamada al mtodo CrossFade del objeto animation...................... 162Cdigo 27. Definicin de la posicin relativa del objeto defaultRect en la pantalla............ 164Cdigo 28. Clculo de la posicin de pulsado cuando se cumple la condicin touchPad... 164Cdigo 29. Asignacin de una cantidad de movimiento a la variable movement................ 165Cdigo 30. Asignacin de una cantidad de movimiento a la variable movement................ 167Cdigo 31. Acciones a realizar cuando el se cumple el booleanomachangoIncendiao...... 168Cdigo 32. Ejemplo de uso de la funcin WaitForSeconds de Unity3d .............................. 168Cdigo 33. Comprobacin del objeto que ha entrado dentro del trigger controlado por
OnTriggerEnter................................................................................................. 169Cdigo 34. Actualizacin de la puntuacin de la partida al colisionar con unPeanut........ 169Cdigo 35. Actualizacin de la puntuacin de la partida al colisionar con unagreen
diamond............................................................................................................. 170Cdigo 36. Utilizacin del mtodoRotate del objeto Transform........................................ 170Cdigo 37. Actualizacin de la cantidad de vidas al colisionar con el objeto VidaExtra.... 170Cdigo 38. Modificacin del atributospeed del objeto_animation.................................... 172Cdigo 39. Asignacin de diferentes texturas a la propiedad texture del objetoguiTexture
en funcin de vidaPej........................................................................................ 174
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
14/218
Cdigo 40. Lgica de ejecucin de la funcin respawn del script asociado al personajeprincipal ............................................................................................................. 174
Cdigo 41. Acciones a realizar al entrar en el trigger del objetofinalPantalla................... 175Cdigo 42. Ejemplo de obtencin del tiempo transcurrido desde que empez el nivel ....... 175Cdigo 43. Estructura que controla el movimiento del objetoLetrasBienvenida................ 176
Cdigo 44. Acciones a realizar en las pulsaciones impares de la etiquetaPausaBtn.......... 177Cdigo 45. Acciones a realizar cuando se pulsa la etiquetaRetryWord.............................. 180Cdigo 46. Actualizacin de la propiedad text del objetoguiText....................................... 181Cdigo 47. Creacin de la variable multidimensional matriz.............................................. 182Cdigo 48. Bucle que rellena la matriz de puntuaciones con los elementos obtenidos del
mtodogetElementScores del webService cliente ............................................. 183Cdigo 49. Valor por defecto que se asigna a cada una de las posiciones de matriz........... 183Cdigo 50. Estructura base del fichero mvil_service con extensin .info.......................... 187Cdigo 51. Estructura base del fichero mvil_service con extensin .module.................... 189Cdigo 52. Descripcin del resto de funciones que contiene el mdulo mvil_services..... 190
Cdigo 53. Definicin de parmetros en el array de argumentos........................................ 191Cdigo 54. Estructura del fichero mvil_service con extensin .module............................ 191Cdigo 55. Estructura del mtodo webLogin definido en el webService cliente ................. 196Cdigo 56. Proceso de guardado de la id de usuario en la propiedad uid............................ 196Cdigo 57. Actualizacin delstring errormsgsi surge algn problema de conexin o
autenticacin ...................................................................................................... 196Cdigo 58. Definicin de la clase PeanutMan perteneciente al webService cliente ............ 198Cdigo 59. Comentado de la lnea que carga un layoutpor defecto en Android ................. 199
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
15/218
1. Introduccin.
A continuacin se hace una breve introduccin al presente proyecto, exponiendo cul ha sido
su motivacin, qu objetivos se persiguen en su realizacin y cules son los contenidos
ofrecidos en esta memoria.
1.1.Motivacin del proyecto.En el momento de esta redaccin, el mercado de los smartphonesse encuentra en un estado
de gran expansin debido a la creciente demanda de estos dispositivos por parte de la
poblacin. Por ello, pensar en una compaa lder en el sector es cuanto menos arriesgado,
ya que a diario surgen nuevas funcionalidades que van dando cierta ventaja a una u otra
marca.
Actualmente tenemos tres grandes compaas luchando por el liderato del sector de los
telfonos mviles inteligentes: Google con el S.O Android, Apple con iOS y Microsoft
valindose del S.O Windows Phone 7.
Desde la perspectiva de desarrolladores de software es de vital importancia escoger la
plataforma adecuada sobre la que programar la aplicacin, basando la eleccin normalmente
en el pblico potencial que podra descargar el producto.
Llegados a este punto la solucin ms razonable es utilizar herramientas de desarrollo que
nos permitan crear aplicaciones multiplataforma, abarcando as mucho ms mercado y
abstrayndonos en gran medida del problema de la volatilidad del mercado. De este
razonamiento surge la idea de utilizar Unity3d para la creacin del videojuego.
Por otra parte, el mundo del entretenimiento digital ha cambiado mucho en los ltimos aos,
hasta el punto de que hoy da es improbable encontrarse con un videojuego que no tenga
soporte online y un sitio web para, por ejemplo, publicitarse. Es en este punto donde surge la
necesidad de crear una web para proporcionar funcionalidades online al videojuego.
Existen diferentes niveles de abstraccin a la hora de desarrollar un sitio web, desde la
creacin de un framework propio (desarrollo web de alto rendimiento a coste de una
complejidad muy alta en la programacin) hasta la utilizacin de gestores de contenido que
permiten elaborar webs bastante complejas sin necesidad de tener amplios conocimientos en
programacin. En este punto se decide utilizar el CMS Drupal para la creacin de la web.
Por ltimo, la necesidad de comunicar de forma sencilla y estandarizada el videojuego y la
web nos lleva irremediablemente a la utilizacin de web services SOAP.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
16/218
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
17/218
2. Estado del Arte.
2.1.Los gestores de contenido (CMS).
Definicin e historia.
Un sistema de gestin de contendidos CMS es un programa, el cual permite implementar
una estructura de soporte para la creacin y la administracin de contenidos de una manera
cmoda. Principal mente se suele utilizar para la administracin de pginas y sitios web.
Los primeros sistemas de administracin de contenidos fueron desarrollados por
organizaciones que publicaban una gran cantidad de contenido en Internet, y necesitaban de
continuas actualizaciones; como revistas en lnea, peridicos y publicaciones corporativas.
En 1995, el sitio de noticias tecnolgicas CNET sac su sistema de administracin de
documentos y publicacin y cre una compaa llamada Vignette, pionero de los sistemas de
administracin de contenido comerciales.
La filosofa de CMS es la creacin y administracin de contenidos de una manera flexible y
dinmica. Para ello el sistema se sirve principalmente en una base de datos donde se
almacenan y generan los contenidos de manera dinmica.
Una de las caractersticas que hace a los CMS una herramienta potente y flexible es la fuerte
implementacin del modelo vista controlador. Esto significa, que se separa por una parte lo
que es la creacin y administracin de contenido de lo que es la forma en la que este se
muestra al usuario. De esta manera, podemos dar formato y diseo al contenido en cualquier
momento de manera independiente a la administracin de estos.
Otra de las caractersticas que hacen a un CMS una gran opcin a la hora de configurar un
sitio web es la gestin y administracin de usuarios. Los sistemas gestores y contenidoadems de almacenar y organizar la informacin permiten controlar quien puede y como
puede acceder un usuario a la esta. Para ello, permite la administracin de usuarios y
permisos que estos tienen a la hora de acceder a los contenidos.
Tipos de gestores.
Por sus caractersticas:
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
18/218
- Segn el lenguaje de programacin empleado, como por ejemplo Active Server Pages,
Java, PHP, ASP.NET, Ruby On Rails, Python
- Segn la licencia: Cdigo abierto o Software privativo.
Por su uso y funcionalidad:
- Blogs: pensados para pginas personales.
- Foros: pensados para compartir opiniones.
- Wikis: pensados para el desarrollo colaborativo.
- Enseanza: plataforma para contenidos de enseanza on-line.
- Comercio electrnico: plataforma de gestin de usuarios, catlogo, compras y pagos.
- Publicaciones digitales.
- Difusin de contenido multimedia.- Propsito general.
Ventajas e inconvenientes.
La principal ventaja del uso de gestores es la posibilidad de organizar informacin de manera
rpida y flexible. Por otra parte, tambin evita tener que programar funciones y tareas ya
estandarizadas y por ltimo una de las grades ventajas de los sistemas actuales es su soporte,
por norma general son mantenidos y sujetos a actualizaciones peridicamente.
En cuanto a los inconvenientes que estos poseen, el principal que presentan es que pese a su
gran flexibilidad siempre ser menos flexible que la programacin de autor. Por tanto,
cuando tienes una idea has de adaptar escogiendo el CMS que se adecue ms ella.
2.1.1. Joomla!.
Joomla! Es uno de los sistemas de gestin de contenidos ms populares. Entre sus
principales virtudes est la de permitir editar el contenido de un sitio web de manera sencilla.
Es una aplicacin de cdigo abierto programada mayoritariamente en PHP bajo una
licencia GPL.
Con Joomla podemos trabajar tanto en Internet como en intranets y requiere de una base de
datos MySQL, as como, preferiblemente, de un servidor HTTP Apache.
Entre otras muchas caractersticas, Joomla permite:
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
19/218
- Mejorar el rendimiento web.
- Crear versiones imprimibles de pginas, flash con noticias, blogs, foros, polls
(encuestas), calendarios, bsqueda en el sitio web e internacionalizacin del lenguaje.
Su nombre es una pronunciacin fontica para anglfonos de la palabra swahili jumla,
que significa todos juntos o como un todo. Se escogi como una reflexin del
compromiso del grupo de desarrolladores y la comunidad del proyecto.
En la siguiente imagen podemos apreciar cmo est diseada la interfaz del panel de control
dejoomla, que destaca de la del resto de gestores de contenido por su facilidad de uso:
Figura 1. Panel de control de Joomla.
Joomlamantiene dos versiones de la aplicacin: una estable y otra Beta o en desarrollo. La
versin estable es la que se considera para usuarios y a medida que aparecen errores secorrigen, esta versin se publica sin nuevas funcionalidades. La versin Beta incluye nuevas
funcionalidades y mejoras a los fallos reportados en versiones anteriores.
2.1.2. PHP-Nuke.
PHP-Nuke es un sistema de gestin de contenido basado en el lenguaje de programacin
PHP.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
20/218
Para su instalacin es necesario tener un servidor web con soporte para PHP (por ejemplo
Servidor HTTP Apache) as como una base de datos MySQL. Es considerado como uno de
los pioneros de la web2.0y alcanz gran popularidad entre los distribuidores de contenidos.
El sistema es de distribucin libre bajo la licencia GNU GPL. Hasta la versin 7.5 se poda
descargar gratuitamente desde la web oficial de PHP-Nuke, sin embargo, a partir de dicha
versin se requiere de un pequeo pago para adquirirla (esto est permitido segn la licencia
GNU GPL siempre y cuando se entregue todo el cdigo fuente al efectuar la compra).
El sistema funciona mediante mdulos que se despliegan en una columna central, cada
mdulo es una herramienta especializada (por ejemplo, un manejador de contenidos, foro de
debates, manejador de descargas, enlaces, contenidos fijos, etc.).
Adems de los mdulos, Php-nuke cuenta con la herramienta bloques, que son cajas que se
ubican en las columnas laterales (una o dos, segn el diseo de la plantilla) y en las partes
superior e inferior de las pginas; en dichas cajas se despliega informacin variada como:
- Mens de navegacin.
- Formularios de acceso.
- Calendarios, encuestas, publicidad etc.
-
Existen, asimismo, bloques desarrollados por terceros, adems de que en la seccin de
administracin, el webmaster puede crear bloques personales con contenidos multimedia.
En la siguiente imagen podemos observar el diseo del men de administracin de PHP-
Nuke:
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
21/218
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
22/218
- En trminos de arquitectura, se ejecuta sin modificaciones en Unix, GNU/Linux,
OpenSolaris, FreeBSD, Windows, Mac OS X, NetWare y otros sistemas que soportan
PHP, incluyendo la mayora de proveedores de hosting web.
- Los datos son almacenados en una sola base de datos SQL: la versin 1.7 (publicada en
noviembre de 2006), permite a los administradores elegir entre alguno de los diversos
tipos de motores de bases de datos(Oracle y Microsoft SQL Server son dos objetivos
especficos de sistemas administradores de bases de datos).
En la siguiente imagen podemos observar la distribucin de los elementos del panel de
control de administrador en Moodle:
Figura 3. Panel de control de administrador de Moodle.
Podemos observar a la izquierda el men desplegable con las diferentes carpetas que
podemos administrar (Mdulos, lenguaje, actividades, cursosetc.).
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
23/218
2.1.4. Drupal.
Breve descripcin:
Es un sistema de gestin de contenido modular multipropsito y muy configurable que
permite publicar artculos, imgenes, u otros archivos y servicios aadidos como foros,
encuestas, votaciones, blogs y administracin de usuarios y permisos.
Drupal es un sistema dinmico basado en la interaccin PHP con MySQL. En lugar de
almacenar sus contenidos en archivos estticos en el sistema de ficheros del servidor de
forma fija, el contenido textual de las pginas y otras configuraciones son almacenados en
una base de datos y se editan utilizando un entorno Web.
Es un programa de distribucin libre, programado en PHP y desarrollado y mantenido por
una activa comunidad de usuarios. Destaca por la calidad de su cdigo y de las pginas
generadas. Adems, se intenta mantener al mximo los estndares web a la vez que se intenta
que sea lo ms verstil posible.
El diseo de Drupal es especialmente idneo para construir y gestionar comunidades en
Internet. No obstante, su flexibilidad y adaptabilidad, as como la gran cantidad de mdulos
adicionales disponibles, hace que sea adecuado para disear todo tipo de webs.
Como ya se ha mencionado anteriormente, una de las caractersticas que hace a los CMSs
una herramienta muy potente de cara al diseo y mantenimiento web, es la fuerte separacin
entre lo que es la administracin de contenido, de lo que es el diseo.
En drupal esto no poda ser de otra manera por tanto, podemos distinguir tres niveles en su
arquitectura:
- Nivel de administracin:Lo componen todos los programas y archivos que permiten
administrar, catalogar y organizar los contenidos.
- Nivel de almacenamiento:Para poder crear un sitio web dinmico la informacin ha
de estar almacenada en una base de datos. Esta informacin se encuentra debidamente
organizada para su posterior recuperacin y presentacin al usuario.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
24/218
- Nivel de presentacin:Se encarga de definir la manera en que se muestran los datos
al usuario. Lo componen los temas y las hojas de estilos asociadas a dichos temas.
Administracin en drupal:
Para administrar los contenidos drupal provee de un panel de administracin. Uno de los
inconvenientes que se suele achacar a drupal es que el panel de administracin se diferencia
poco de lo que es la vista del sitio en s. Para solucionar esto a partir de la versin 7 se
mejora el aspecto de este panel.
Cuando instalamos drupal este nos obliga a crear un sper usuario. Este es un usuario
especial el cual posee todos los permisos de administracin del sitio. El usuario sper
administrador ser el nico que en un principio tendr acceso al panel de administracin.
Este panel esta distribuidos en diferentes secciones tales como: administracin de
contenidos, usuarios, administracin del sitio etc
Drupal sigue las directrices del estndar de web 2.0 el cual, hace referencia a una web
interactiva en la cual los usuarios pueden contribuir al desarrollo del sitio. Por tanto en la
administracin podemos determinar roles de usuarios y permisos que estos tiene de cara a
desarrollar nuevos contenidos. Cuando un usuario con unos determinados permisos accede al
sitio y se autentica, tendr acceso a la administracin de los contenidos para los cuales tiene
permisos de la manera en la que le han sido concedidos.
En la siguiente figura podemos observar cmo est distribuido el panel de control de Drupal:
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
25/218
Figura 4. Panel de control de Drupal.
Themes en drupal:
Drupal permite al usuario decidir la apariencia completa de su sitio. Para definir una
apariencia se ha de activar lo que se conoce como un tema. Un tema es por tanto, una serie
de archivos que sirven para dar estilo al sitio web. Estos temas pueden ser descargados orealizados por los propios usuarios.
2.1.4.1.Drupal y PHP.
Drupal es un CMD programado en PHP por tanto, soporta perfectamente la programacin en
PHP. Sin embargo, a la hora de escribir cdigo, y por motivos de seguridad, se han de seguir
una serie de premisas.
La primera es habilitar el modulo que permite que el cdigo PHP introducido en los
contenidos se ejecute. Este mdulo, no est habilitado por defecto en un principio y su
nombre esPHP filter.
A continuacin, hemos de definir los permisos de acceso a este modulo. Por seguridad, es
importante que no cualquier usuario pueda introducir cdigo en nuestra pgina. El usuario
autorizado a introducir fragmentos de cdigo ha de ser fiable.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
26/218
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
27/218
archivos ms importantes es el archivo.css. Por tanto, si el tema descargado no termina de
ser del agrado del usuario este puede modificarlo. Para modificarlo basta con modificar los
aspectos de la hoja de estilo que desee. Es importante a la hora de modificar un tema haber
ledo las condiciones de uso del tema y saber si puede modificarlo y bajo qu condiciones.
Por otra parte, se pueden crear temas nuevos y aadirlos a drupal. Esto implica que se ha de
crear por completo el archivo css asociado al tema entre otras cosas.
2.1.4.4.Mdulos en Drupal.
Una de las caractersticas que hace de drupal un CMS muy completo y flexible son sus
mdulos. Los mdulos son por tanto extras que permiten aumentan las prestaciones del CMS
adems de aadirle nuevas funcionalidades. Gracias a la colaboracin activa de la
comunidad drupal es fcil encontrar nuevos mdulos que se adapten a nuestras nuevas
necesidades.
Por otra parte, drupal ofrece la posibilidad de que el usuario disee sus propios mdulos con
unas propiedades y caractersticas propias. Esta opcin es importante si no encontramos un
mdulo que realice las tareas que queremos aadirle a nuestro sitio.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
28/218
2.2.Los Sistemas Operativos para mviles.
Un sistema Operativo para mvil (o en ingls mobile O.S.) est pensado para controlar un
dispositivo porttil (en nuestro caso concreto un SmartPhone o telfono inteligente).
Con respecto a su funcionamiento, es muy similar al de cualquier otro sistema operativo de
equipos de sobremesa (Windows, Mac OS etc.). Sin embargo, un sistema operativo para
mvil tiene un diseo ms sencilloy especialmente pensado para que el usuario interacte
con l mediante pantalla tctil, voz, teclado virtual etc.
Otro aspecto importante es la comunicacin. Un S.O. Mvil est especficamente diseado
para conectar los dispositivos a redes inalmbricas, redes mviles (ya sean redes GSM,
GPRS, UMTSect.) y, por supuesto, conectar dispositivos entre s utilizando, por ejemplo,
la tecnologa bluetooth.
Otro de los aspectos a tener en cuenta cuando hablamos de sistemas operativos mviles es el
hecho de que utilizan formatos especficos para archivos multimedia especialmente
optimizados para su uso en dispositivos mviles (principalmente porque los formatos que se
usan en equipos de sobremesa suelen consumir demasiados recursos).
2.2.1. iOS de Apple.
iOS es un sistema operativo desarrollado por la compaa Apple Inc. Para los dispostivos
mviles iPod touch, iPhonee iPad. Est basado en una variante del Mach kernel de Mac
OS X.
La instalacin del iOS ocupa aproximadamente unos 500 MB, tamao bastante pequeo si lo
comparamos con los sistemas operativos para equipos de sobremesa.
La jerarqua de capas del iOS es la siguiente:
1. Cocoa Touch.2. Medios de comunicacin.3. Servicios principales4. Ncleo del sistema operativo.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
29/218
Capa Cocoa Touch:
Cocoa Touch es una API (Interfaz de Programacin de la Aplicacin) para la creacin de
programas para el iPad, iPhone y iPod Touch.
Se basa en el set de herramientas que proporciona el API de Cocoa para crear programas
sobre la plataforma Mac OS X.
El SDK de iOS nos proporciona herramientas para para desarrollar aplicaciones basadas en
la capa Cocoa Touch.
SDK de iOS:
El SDK (Kit de Desarrollo de Software) de iOS fue creado con el objetivo de permitir a
terceros programar aplicaciones nativas para dicho sistema operativo.
Uno de los puntos a tener en cuenta es el hecho de que necesitamos tener instalado el Mac
OS X para poder utilizar dicho SDK.
Ya que el iPhone est basado en Mac OS X, el entorno de desarrollo es asimismo el Xcode y
el lenguaje de programacin principal es el Objective C. Adems, el iOS SDK nos
proporciona un emulador de iPhone (llamado Aspen) que nos permite testear las aplicaciones
antes de instalarlas en el mvil.
2.2.2. Windows Phone 7.
Es un sistema operativo mvil desarrollado por Microsoft, como sucesor de la plataforma
Windows Mobile. Est pensado para el mercado de consumo casual en lugar del mercadoempresarial por lo que carece de muchas funcionalidades que proporciona la versin
anterior.
Microsoft ha decidido no hacer compatible Windows Phone 7con Windows Mobile por
lo que las aplicaciones existentes no funcionan en Windows Phone 7, haciendo necesario
desarrollar nuevas aplicaciones.
Microsoft planea una importante actualizacin para finales de 2011 (con el nombre en claveMango) que incluir Internet Explorer Mobile 9 y algunas mejoras que segn Microsoft lo
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
30/218
harn competitivo con sistemas operativos de mviles actuales como iOS de Apple o
Android de Google.
Desarrollo de Software para Windows Phone 7:
Tenemos dos implementaciones posibles a la hora de desarrollar aplicaciones para este
sistema operativo:
- Microsoft Silverlight:
Esta implementacin permite el desarrollo de aplicaciones basadas en XAML (En
Espaol, Lenguaje Extensible de Formato para Aplicaciones).
Incluye el entorno de trabajo Microsoft .NET Compact Framework (basado en la
arquitectura del popular entorno .NET Framework).
Silverlight tambin incluye una coleccin de clases llamada BCL (En Espaol,
Librera de Clases Base) que soportan lectura y escritura de ficheros, manipulacin
de XMLy manejo de grficos.
- Microsoft XNA (Xbox New Architecture):
El XNA Framework es una implementacin nativa de .NET Compact Framework que
incluye un amplio conjunto de bibliotecas de clases, especficos para el desarrollo de
juegos, por ejemplo para el manejo de dispositivos de entrada, tratamiento de sonidos
y vdeos, carga de modelos y texturas, uso de ficheros de forma transparente a la
plataforma en la que se ejecute, desarrollo de juegos online, etc
Permite desarrollar juegos para Windows Phone OS 7.0 CTP, Xbox 360, Zune HD y
Windows 7.
Una de los contras ms significativos del Windows Phone 7 es la carencia de Multitarea.
Entre el iOS, Android y Windows Phone 7, este ltimo es el nico que carece de dicha
funcionalidad. Por otra parte, tambin hay que destacar que esta carencia hace que el sistema
operativo sea mucho ms rpido que, por ejemplo, Android.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
31/218
2.2.3. Android.
Android es un sistema operativo basado en Linuxdiseado originalmente para dispositivos
mviles, tales como los comnmente conocidos smartphones, pero que posteriormente se
expandi su desarrollo para soportar otros dispositivos tales como tablets, reproductores
MP3, netbooks etc.
Este sistema operativo mvil tiene una gran comunidad de desarrolladores programando
aplicaciones para extender la funcionalidad de los dispositivos que lo soportan. Android
Market es la tienda de aplicaciones en lnea administrada por Google, aunque existe la
posibilidad de obtener software externamente.
El lenguaje de programacin en el que est basado el SDK de Android es Java, aunque
tambin se pueden utilizar lenguajes como Javascript, C#, Boo o incluso Phyton dentro de
otras aplicaciones como, por ejemplo, Unity 3d (ya que a la hora de compilar el propio Unity
3d hace las conversiones pertinentes para crear un archivo con el mismo formato y extensin
que si lo hubiramos compilado directamente como proyecto de Android en Java).
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en
un framework Java de aplicaciones orientadas a objetos sobre el ncleo de las
bibliotecas de Java en una mquina virtual Dalvikcon compilacin en tiempo de ejecucin.
Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz grfica (surface
manager), un framework OpenCore, una base de datos SQLite, una API grfica OpenGL ES
2.0 3D, un motor de renderizado WebKit, un motor grfico SGL, SSL y una biblioteca
estndar de C Bionic.
Con respecto a la arquitectura de Android, est formada por los siguientes componentes:
- Aplicaciones:
Las aplicaciones que vienen de serie con el telfono incluyen un cliente de correo
electrnico, programa para enviar y recibir SMS, calendario, alarma, programa para
administrar contactos, galeraetc. Todos ellos estn programados en Java.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
32/218
- Marco de trabajo de Aplicaciones:
Los desarrolladores tienen acceso completo a los mismos APIs del entorno de trabajo
utilizados por las aplicaciones base. La arquitectura de Android est diseada para
simplificar la reutilizacin de componentes; es decir, que cualquier aplicacin puede
publicar sus herramientas y cualquier otra aplicacin puede luego hacer uso de las
mismas (siempre siguiendo las reglas de seguridad del framework).
- Bibliotecas:
Android incluye un conjunto de bibliotecas de C/C++ utilizadas por diversos
componentes del sistema. Estas caractersticas son accesibles a los desarrolladores a
travs del marco de trabajo de Aplicaciones Android enunciado anteriormente.
Algunas aplicaciones a destacar seran:
o System C library (implementacin biblioteca C estndar).
o Bibliotecas de medios.
o Bibliotecas de grficos, 3D y SQLite.
- Runtime de Android:
Android incluye un set de bibliotecas base que proporcionan la mayor parte de las
funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicacin
Android ejecuta su propio proceso, con su propia instancia de la mquina virtual
Dalvik (esto lo diferencia claramente del sistema operativo Windows Phone 7 que,
como habamos comentado, no es multitarea).
La mquina virtual Dalvik ha sido diseada de forma que un dispositivo pueda
ejecutar mltiples mquinas virtuales al mismo tiempo y de forma eficiente (Esta es
una de las principales diferencias entre la mquina virtual Dalvik y una mquina
virtual Java).
Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual est
optimizado para un consumo de memoria mnimo. La Mquina Virtual est basada en
registros y ejecuta clases compiladas por el compilador de Java que han sidotransformadas al formato .dex por la herramienta incluida dx.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
33/218
- Ncleo Linux:
Android depende de Linux para los servicios base del sistema como seguridad, gestin
de memoria, gestin de procesos, pila de red y modelo de controladores. El ncleo
tambin acta como una capa de abstraccin entre el hardware y el resto de la pila de
software.
En el siguiente Diagrama de bloques se puede apreciar la estructura que conforma la
arquitectura de Android explicada anteriormente:
Figura 5. Diagrama de arquitectura Android.
2.2.3.1.Android y Java.A la hora de disear aplicaciones el SO Android utiliza como lenguaje de programacin el
lenguaje Java. Es por esta razn, que cuando instalamos el SDK de Android este nos exige
como prerrequisito disponer de java JDK para compilar las aplicaciones.
El java es un lenguaje orientado a objetos. Dicho lenguaje ofrece como principal ventaja su
portabilidad. Utilizando Java podemos crear aplicaciones para distintos dispositivos con una
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
34/218
nica condicin, el dispositivo ha de tener instalada la mquina virtual de Java. La maquina
virtual tiene como objetivo interpretar el cdigo java y ejecutarlo.
Android es un sistema operativo que nace de la asociacin de una serie de compaas y
entidades, por tanto, es un sistema operativo que funciona en diferentes dispositivos. Las
caractersticas de portabilidad de Java hacen que Android pueda funcionar marcas de
mviles diferentes as como en tablets y cualquier otro hardware que cumpla con una serie
de requisitos mnimos.
Adems de java Android utiliza como lenguaje de comunicacin entre aplicaciones el XML.
Una de las caractersticas que hacen muy cmoda la programacin en Android es la
inyeccin de cdigo mediante XML. Esta tcnica consiste en que mediante tags y etiquetas
XML correctamente estructurada con las cuales, podemos generar el cdigo asociado a
botones, formularios, listas
Inyectando XML Android tambin nos permite determinar la posicin relativa en la pantalla
de los elementos as como su visualizacin. El cdigo java asociado a dichos objetos se
generar automticamente a partir de las definiciones de los XML.
En definitiva, si se desea programar para el sistema operativo Android es imprescindible
manejar el lenguaje de programacin Java, conocer la estructura de clases de Android y
utilizar correctamente los archivos XML asociados a las aplicaciones. No hemos de olvidar,
que utilicemos la tcnica que utilicemos para crear nuestro cdigo. Al final, el resultado ser
cdigo Java. As que, tener un conocimiento amplio de java y de programacin orientada a
objetos har ms fcil la programacin para dispositivos Android.
2.2.3.2.Servicios Web en Android.
Cabe recordar que Android es un producto de la Open Handset Alliance. Uno de los
nombres que resuenan dentro de esta alianza es Google. Es difcil pensar en Google, sin
pensar en posibilidades web inmediatas.
En consecuencia, Android como sistema operativo ofrece ya un gran abanico de
posibilidades web. Entre ellas disponemos de clases y objetos creados especficamente para
interactuar con las tecnologas de Google. Desde el sistema operativo puedes usar recurso de
Google Maps, Contacts, Calendar, Docs etc. Adems, los protocolos de conexin mediante
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
35/218
paso de parmetros a travs de url estn perfectamente integrados. Tambien, es posible
consumir servicios de terceros como facebook, twitter etc.
Sin embargo, Soap como servicio web no est integrado a SDK de Android. Por tanto, a la
hora de usar este tipo de servicios es necesario aadir libreras externas. Google te
proporciona como soporte para el protocolo Soap la librera ksoap2. Esta librera posee todas
las clases necesarias para consumir o crear servicios SOAP en Android y est disponible
desde la pgina: (Ver referencia 15). Hay que recordar que Android utilizar como protocolo
de comunicacin XML. Esto no es casual, ya que el protocolo de comunicacin estndar
para trabajar con servicios webs es el envi de archivos XML.
En conclusin, Android es un sistema operativo moderno y actual. La tendencia tecnolgica
actual insiste en la necesidad de estar siempre comunicado. A la hora de hablar de una
comunicacin moderna se hace imprescindible de hablar de internet y sus posibilidades.
Como consecuencia, es indispensable la interaccin de los dispositivos con la web y recursos
de internet.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
36/218
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
37/218
- Su rendimiento es bajo comparado con otros sistemas de computacin distribuida. Su
lentitud es en gran medida debido al uso de formato texto.
- Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas
reglas tratan de bloquear o auditar la comunicacin entre programas a ambos lados de la
barrera.
Estndares empleados en los servicios web:
- Web Services Protocol Stack:As se denomina al conjunto de servicios y protocolos de
los servicios Web.
- XML (Extensible Markup Language):Es el formato estndar para los datos que se vayan
a intercambiar.
- SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call):
Protocolos sobre los que se establece el intercambio.
- Otros protocolos:los datos en XML tambin pueden enviarse de una aplicacin a otra
mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File
Transfer Protocol), o SMTP (Simple Mail Transfer Protocol).
- WSDL (Web Services Description Language):Es el lenguaje de la interfaz pblica para
los servicios Web. Es una descripcin basada en XML de los requisitos funcionales
necesarios para establecer una comunicacin con los servicios Web.
- UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la
informacin de los servicios Web. Permite comprobar qu servicios web estn
disponibles.
- WS-Security (Web Service Security):Protocolo de seguridad aceptado como estndar por
OASIS (Organization for the Advancement of Structured Information Standards).
Garantiza la autenticacin de los actores y la confidencialidad de los mensajes enviados.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
38/218
Por qu usar servicios web?
La principal razn para usar un servicio web es que dichos servicios trabajan sobre HTTP y
TCP. Estos protocolos utilizan el puerto 80 (que esta siembre abierto para recibir
comunicaciones. Esto permite estos servicios web no sean bloqueados por firewalls y
navegadores. A pesar de que los servicios webs se pueden usar sobre cualquier protocolo,
comnmente se usa TCP por las ventajas ya mencionadas.
Otra razn de peso para usarlos es la gran independencia entre la aplicacin que usa un
servicio web y el servicio en s mismo. Por tanto, si uno cambia a lo largo del tiempo el otro
no se ve afectado.
Hemos de recordar la tendencia actual a conseguir grandes sistemas distribuidos repartidos a
lo largo del planeta. La flexibilidad de los servicios web hace posible trabajar con diferentes
partes o elementos del sistema global independientemente de cualquier otro. Para usar esta
flexibilidad de manera adecuada es necesario que los elementos estn perfectamente
diseados para favorecer dicha independencia.
Plataformas:
Para terminar, cabe mencionar que existen numerosas plataformas que proveen de servicios
web entre las que se encuentran las siguientes:
- PHP.
- Oracle Fusion Middleware.
- Java Web Services Developmen Pack.
2.3.1.
XML.
El Xtensible Markup Language (XML), es un metalenguaje extensible de etiquetas creado
por World Wide Web Consortium. El XML permite definir la gramtica de lenguaje
especficos, por tanto, no es en s mismo un lenguaje sino una manera de definir lenguajes
especficos. Est basado en SGML (Standard Generalized Markup Language).
El XML tiene su origen en los aos setenta, cuando la empresa IBM tiene la necesidad de
guardar grandes necesidades de informacin. Para solucionar este problema IBM crea un
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
39/218
lenguaje llamado GML (Generalized Markup Language). El lenguaje de IBM agrado a los
miembros de la ISO as que, trabajaron en un lenguaje similar en 1986.
Cuando en 1989 se crea la web y con ella el lenguaje HTML, el cual est basado en SGML.
HTML es un lenguaje sencillo el cual supone poca carga y gran eficiencia para los
navegadores. Pero, HTML tiene sus limitaciones. Las pginas web a menudo no cumplen la
sintaxis y se hacen incompatibles con diferentes navegadores. Por otra parte, el HTML es un
lenguaje fijo y no se pueden combinar elementos de diferentes vocabularios.
El XML surge con el objetivo de crear un lenguaje estndar que permita:
- Que los lenguajes sean extensibles, es decir se puedan elementos de diferentes lenguajes.
- Se han de poder crear analizadores simples, los cuales no han de tener ninguna lgica
especial para cada lenguaje.
- No debe aceptar documentos con errores de sintaxis.
Cabe destacar, que el XML no es solo un lenguaje de uso en la web e internet. XML es un
lenguaje estndar el cual permite comunicar entre aplicaciones diferentes en diferentes
mbitos o incluso en el mismo.
Ventajas de XML.
- Es extensible, se puede extender XML con la adicin de nuevas etiquetas, de modo que
se pueda continuar utilizando sin complicacin alguna.
- El analizador es un componente estndar, no es necesario crear un analizador especfico
para cada versin de lenguaje XML.
- Es de fcil comprensin para el lector humano. Mejora la compatibilidad entre
aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe
el origen de los datos.
- Transformamos datos en informacin, pues se le aade un significado concreto y los
asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
40/218
Partes que componen un documento XML.
- Prologo:no es obligatorio, pero los documentos XML pueden empezar con una lnea
que describen la versin utilizada.
- Cuerpo:es obligatorio, y ha de tener un solo elemento raz para que este bien formado.
- Elementos:los elementos XML pueden tener contenido o estar vacios.
- Atributos: un elemento puede tener o no atributos. Los atributos son la forma que
tenemos de agregar caractersticas a un elemento.
- Entidades predefinidas:sirven para representar caracteres especiales.
- Secciones CDATA:permiten especificar datos utilizando cualquier carcter sin que se
interprete como marcado XML.
- Comentarios: comentarios a modo informativo que han de ser ignorados por el
procesador.
2.3.2. El protocolo SOAP.
Simple Object Access Protocolo es un protocolo estndar que define como dos objetos de
diferentes procesos pueden comunicarse por medio del intercambio de datos XML. Es un
protocolo derivado del XML-RPC creado por David Winer en 1998. El protocolo de
comunicacin Soap fue creado por IBM y Microsoft entre otros bajo la proteccin del W3C.
Soap es uno de los protocolos ms utilizados en los servicios web. La razn de que sea tanutilizado se basa en las siguientes ventajas:
- Los servicios Soap son fciles de consumir.
- Es un lenguaje muy rgido, fuertemente tipado y de estructura robusta.
- Soap adems posee herramientas de desarrollo.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
41/218
2.3.3. WSDL.
WSDL son las siglas de Web Services Description Language, es un formato XML que se
utiliza para describir los servicios web.
El WSDL es un documento pblico en cual podemos consultar para saber cmo debemos
consumir un servicio web. Una de las grandes ventajas ya mencionadas de los servicios web
es la posibilidad de consumirlos independientemente de la plataforma o lenguaje de
programacin utilizado. Para que esto sea posible se ha de conocer cules son los parmetros
que el servicio recibe y como han de ser enviados. El WSDL nos proporciona toda esta
informacin, de manera que si una tercera persona quiere utilizar cualquier funcionalidad
que proporcione nuestro servicio web podr crear su interfaz de trabajo a partir del WSDL.
2.3.4. Otros protocolos y estndares usados en Web Services.
El protocolo REST es otra filosofa a la hora de describir servicios web. Este protocolo
utiliza y soporta XML y HTML. En REST cada URL representa a un objeto sobre el cual
podemos realizar las operaciones de HTTP como son POST, GET, PUT o DELETE.
REST es un protocolo ligero, el cual ofrece resultados legibles y adems es muy fcil de
implementar.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
42/218
2.4.Programacin de videojuegos para mvil.
En los ltimos aos, el uso de telfonos mviles se ha incrementado enormemente. Este
incremento junto con la evolucin tecnolgica de los mismos, ha fomentado la aparicin
nuevos mercados en torno a estos dispositivos.
El telfono que comnmente se utilizaba para realizar llamadas se ha convertido en todo un
accesorio de entretenimiento y ocio. Uno de los mercados que ms ha evolucionado
actualmente es el desarrollo de videojuegos para este tipo de plataformas.
Los videojuegos para mviles empiezan a popularizarse gracias al aporte de SUN. La marca
de software da un paso adelante dentro de la tecnologa Java, presentndonos J2ME (Java 2
Micro Edition).
El J2ME es un subconjunto dentro de la plataforma java, el cual, provee de APIS de
desarrollo de software. Estas APIS tienen recursos restringidos y por tanto, son ideales para
crear aplicaciones para dispositivos como mviles o PDAs. Como ya se ha mencionado
anteriormente Java es un lenguaje multiplataforma, esta propiedad lo hace idneo para
funcionar en dispositivos de hardware distinto.
En la actualidad, gracias al aporte de Apple, Open Handset Alliance y Microsoft entre otros,
los dispositivos mviles disponen de autnticos sistemas operativos. Los sistemas operativos
para mviles, pueden ser versiones reducidas de sistemas operativos de PC o sistemas
completamente nuevos. El uso de SO en los telfonos les ha aportado nuevas
funcionalidades.
Para incentivar el desarrollo de aplicaciones, se ofrecen mercados online y porcentajes de
beneficios para los desarrolladores. Gracias a estos incentivos la programacin de aplicativosde terceras personas ha crecido considerablemente.
Con el crecimiento del nmero de desarrolladores, tambin, aparecen herramientas de
desarrollo que facilitan la programacin. En funcin de la herramienta de desarrollo utilizada
y la facilidad que esta proporcione al programador, podramos dividir la programacin de
videojuegos en niveles.
-
8/14/2019 Videojuegos3DAndroid Unity3D New Curso
43/218
2.4.1. Niveles de abstraccin.
A la hora de programar juegos para mviles, los niveles de abstraccin, hacen referencia al
control que el programador tiene sobre el rendimiento de la mquina. Cuanto ms alto sea
nivel en el que se trabaja, mayor cantidad de herramientas posee el programador para tratar
los grficos. Hemos de tener en cuenta, que si trabajamos a un nivel alto menor es el
rendimiento que sacaremos a nuestro programa. Por otra parte, se pueden conseguir
resultados ms vistosos y es