libgdx_xfigueratfc0114memoria.pdf

Upload: killikx

Post on 12-Oct-2015

17 views

Category:

Documents


0 download

TRANSCRIPT

  • Universitat Oberta de Catalunya UOCUniversitat Oberta de Catalunya UOC

    Ingeniera tcnica en informtica de sistemasIngeniera tcnica en informtica de sistemas

    Proyecto fin de carrera - Desarrollo de aplicaciones paraProyecto fin de carrera - Desarrollo de aplicaciones paradispositivos mviles (Android)dispositivos mviles (Android)

    Xavier Figuera AlberichXavier Figuera Alberich

    31 de Diciembre de 2013 31 de Diciembre de 2013

  • Universitat Oberta de Catalunya UOCUniversitat Oberta de Catalunya UOC

    Ingeniera tcnica en informtica de sistemasIngeniera tcnica en informtica de sistemas

    Proyecto fin de carrera - Desarrollo deProyecto fin de carrera - Desarrollo deaplicaciones para dispositivos mviles (Android)aplicaciones para dispositivos mviles (Android)

    Desarrollo de videojuegos para Android conDesarrollo de videojuegos para Android conlibGDXlibGDX

    (Casual games)(Casual games)Fling the sheepFling the sheep

    http://projects.3comet.com/http://projects.3comet.com/

    Consultores: Marc Domingo PrietoConsultores: Marc Domingo Prieto Jordi Almirall Lpez Jordi Almirall Lpez

    Autor: Xavier Figuera AlberichAutor: Xavier Figuera Alberich Correo: [email protected] Correo: [email protected]

    Sabadell, 31 de Diciembre de 2013Sabadell, 31 de Diciembre de 2013

  • A mi pareja Remei Sol, por su paciencia y apoyo durante estosltimos meses y siempre, sin ella no hubiera sido posible llegarhoy a escribir estas lineas, te quiero.

    A la vida por haberme brindado la posibilidad de poder hacer loque realmente siento dentro de mi.

  • Licencia This document, Fling the sheep, casual game for Andorid with libGDX (c) 2013 by Xavier Figuera Alberich

    This document, Fling the sheep, casual game for Andorid with libGDX is licensed under aCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

    You should have received a copy of the license along with thiswork. If not, see .

  • Resumen Android es un sistema operativo con ncleo monoltico basado en el kernel de Linux version 2.6que fue lanzado al mercado el 23 de septiembre de 2008. Diseado principalmente paradispositivos mviles con pantalla tctil, como pueden ser Smartphones o tabletas. Esta disponiblegratuitamente para un uso comercial o no comercial. El ncleo esta escrito en C, algunas de laslibreras de terceros estn escritas en C++ y su interfaz de usuario esta escrita en Java. Soportadistintas estructuras de procesador, entre ellas ARM, x86, MIPS y IBM POWER, no obstante laarquitectura utilizada mayoritariamente son los procesadores ARM. Esta publicado bajo la licenciaApache 2.0 y GNU GPL2. En el momento de escribir este documento su versin actual es la Android 4.3 Jelly Bean(Gominola) y se encuentra en permanente desarrollo. El primer mvil con Android fue el HTCDream que se comercializo por primera vez en Octubre de 2008.

    Android fue desarrollado inicialmente por la compaa Android Inc, esta estuvo financiada porGoogle durante un tiempo hasta que la compaa fue adquirida por la multinacionalestadounidense en julio de 2005. Google quera tener presencia en el mercado de los dispositivosmviles. Android fue presentado en 2007 conjuntamente con la fundacin Open Handset Alliance.Esta entidad, actualmente es un consorcio de 78 compaas de hardware, software ytelecomunicaciones dedicadas al desarrollo de estndares abiertos para dispositivos mviles,liderada por Google. La multinacional estadounidense es el principal desarrollador de Android yaporta el ecosistema necesario para el crecimiento de este. No obstante todos los miembros delconsorcio contribuyen de distintas maneras al desarrollo.

    En el ao 2008 salio a la luz la versin 1.0 de Android. En el momento de su aparicin tubo queenfrentarse a las distintas plataformas ya existentes en aquel momento, iPhone OS queactualmente es conocido como iOS, BlackBerry OS y Windows Phone 7. El crecimiento deAndroid a sido espectacular en estos ltimos aos, a nivel mundial alcanz una cuota de mercadodel 50,9% durante el ltimo trimestre de 2011, esto represento ms del doble que el sistemaoperativo iOS de Apple. Actualmente, su cuota de mercado se sita en el 74,4% segn un estudiorealizado por la empresa Gartner. Ver la siguiente tabla:

    El hecho de que Android sea de cdigo abierto, permite a los fabricantes comercializardispositivos de distintas gamas y precios adaptando ellos mismos el sistema operativo segn lasnecesidades de cada modelo. De esta forma se consigue un alcance mayor a distintos niveles depublico, esto seria uno de los motivos que ha causado en estos ltimos aos el crecimientoespectacular de cuota de mercado llegando casi al 75% actualmente a nivel mundial.

    Android a sufrido numerosas actualizaciones desde su liberacin, cada versin liberada se le ha

  • dado un nombre de postres en ingles por orden alfabtico.

    En la siguiente tabla se enumeran las distintas versiones salidas a la luz desde su lanzamientoinicial en el ao 2008:

    Letra Nombre del Postre - VersinA Apple Pie (v1.0), Tarta de manzanaB Banana Bread (v1.1), Pan de pltanoC Cupcake (v1.5), Panque.D Donut (v1.6), Rosquilla.E clair (v2.0/v2.1), Pastel francs.F Froyo (v2.2), (Abreviatura de frozen yogurt) Yogur helado.G Gingerbread (v2.3), Pan de jengibre.H Honeycomb (v3.0/v3.1/v3.2), Panal de miel.I Ice Cream Sandwich (v4.0), Sndwich de helado.J Jelly Bean/Gummy Bear (v4.1/v4.2/v4.3), Gominola. (versin actual)K KitKat (v4.4), Kit Kat. (versin en desarrollo)

  • ndice de contenidos1.Introduccin.......................................................................................................................................1

    1.1 Justificacin y contexto del proyecto.........................................................................................11.2 Descripcin del Proyecto...........................................................................................................11.3 Objetivos....................................................................................................................................2

    1.3.1 Definicin del videojuego .................................................................................................21.4 Planificacin..............................................................................................................................4

    1.4.1 Ciclo de vida......................................................................................................................41.4.2 Planificacin detallada del proyecto..................................................................................4

    1.4.1.1 Anlisis previo planificacin......................................................................................41.4.1.2 Anlisis de requisitos..................................................................................................51.4.1.3 Diseo.........................................................................................................................51.4.1.4 Implementacin y pruebas..........................................................................................61.4.1.5 Finalizacin................................................................................................................6

    1.4.3 Temporalizacin del proyecto ...........................................................................................71.5 Herramientas y tecnologas utilizadas.......................................................................................91.6 Riesgos del proyecto................................................................................................................10

    2. Anlisis funcional...........................................................................................................................112.1 Requisitos funcionales, casos de uso.......................................................................................11

    2.1.1 Diagrama casos de uso actor Jugador...........................................................................112.1.2 Tabla resumen casos de uso.............................................................................................122.1.3 Descripcin textual de los casos de uso...........................................................................12

    2.1.3.1 VJ01 Inicio videojuego ............................................................................................122.1.3.2 VJ02 Jugar ...............................................................................................................132.1.3.3 VJ03 Acceder puntuaciones mximas locales .........................................................132.1.3.4 VJ3.1 Consultar puntuaciones locales .....................................................................142.1.3.5 VJ3.2 Salir puntuaciones locales .............................................................................142.1.3.6 VJ04 Acceder a las opciones ...................................................................................152.1.3.7 VJ4.1 Activar o desactivar msica o efectos ...........................................................152.1.3.8 VJ4.2 Acceder a la pantalla de crditos ...................................................................162.1.3.9 VJ4.2.1 Salir de la pantalla de crditos ...................................................................162.1.3.10 VJ05 Acceder a las instrucciones ..........................................................................172.1.3.11 VJ5.1 Salir de las instrucciones .............................................................................172.1.3.12 VJ06 Salir del videojuego ....................................................................................18

    2.1.4 Diagrama casos de uso actor IA...................................................................................192.1.4.1 Diagrama casos de uso IA personaje principal (oveja)............................................19

    2.1.4.1.1 Tabla resumen casos de uso..............................................................................202.1.4.1.2 Descripcin textual de los casos de uso............................................................20

    2.1.4.1.2.1 IA03 Salida ovejas al escenario ...............................................................202.1.4.1.2.2 IA03.1 Posicionamiento en pantalla de las oveja ....................................202.1.4.1.2.3 IA03.2 Movimiento oveja ........................................................................212.1.4.1.2.4 IA03.3 Oveja pastando..............................................................................212.1.4.1.2.5 IA03.4 Lanzamiento oveja........................................................................222.1.4.1.2.6 IA03.5 Rebotes de la oveja ......................................................................222.1.4.1.2.7 IA03.6 La oveja entra en el establo .........................................................232.1.4.1.2.8 IA03.7 Parar oveja ...................................................................................23

    2.1.4.2 Diagrama casos de uso IA enemigos (lobo).............................................................242.1.4.2.1 Tabla resumen casos de uso..............................................................................242.1.4.2.2 Descripcin textual de los casos de uso............................................................25

    2.1.4.2.2.1 IA02 Salida lobo al escenario ..................................................................25

    i

  • 2.1.4.2.2.2 IA02.1 Ojos por la derecha o por la izquierda..........................................252.1.4.2.2.3 IA02.2 Escoge el tipo de lobo...................................................................262.1.4.2.2.4 IA02.3 Lobo por la derecha o por la izquierda.........................................262.1.4.2.2.5 IA02.4 Salta a escena................................................................................272.1.4.2.2.6 IA02.5 Movimiento lobo..........................................................................27

    2.2 Diseo inicial diagrama de clases............................................................................................282.2.1 Diagrama de clases inicial Fling the sheep ................................................................28

    2.2.1.1 Resumen clases videojuego......................................................................................282.2.2 Diagrama de clases inicial de pantallas............................................................................30

    2.2.2.1 Resumen clases pantallas.........................................................................................302.3 Definicin de mquinas de estado finitas................................................................................31

    2.3.1 Mquina de estados del videojuego ................................................................................312.3.2 Mquina de estados comportamiento oveja.....................................................................322.3.3 Mquina de estados comportamiento lobo.......................................................................332.3.4 Mquina de estados tutorial in game................................................................................34

    3. Diseo.............................................................................................................................................353.1 Estudio comparativo................................................................................................................35

    3.1.1 Sheep & Wolf...................................................................................................................363.1.2 Sheep Up !........................................................................................................................373.1.3 Temple Run......................................................................................................................383.1.4 Attack of the Spooklings..................................................................................................39

    3.2 Perfiles de usuarios identificados............................................................................................403.3 Contextos de uso......................................................................................................................42

    3.3.1 Dnde ? .......................................................................................................................423.3.2 Cundo ? .......................................................................................................................423.3.3 En que entorno ?............................................................................................................42

    4.Diseo y Concept Art...................................................................................................................424.1 Elementos presentes en la interfaz de la aplicacin.................................................................424.2 Flujos de interaccin................................................................................................................434.3 Prototipaje................................................................................................................................44

    4.3.1 Sketches...........................................................................................................................444.3.2 Transiciones definidas entre pantallas..............................................................................474.3.3 Prototipo horizontal de alta fidelidad ..............................................................................48

    4.3.3.1 Pantalla inicial..........................................................................................................484.3.3.2 Pantalla men principal del juego............................................................................484.3.3.3 Pantalla de opciones.................................................................................................494.3.3.4 Pantalla de crditos...................................................................................................494.3.3.5 Pantalla tabla de puntuaciones.................................................................................504.3.3.6 Pantalla de juego READY ?.....................................................................................504.3.3.7 Pantalla de juego......................................................................................................514.3.3.8 Pantalla de pausa botones RESUME y QUIT..........................................................524.3.3.9 Pantalla GAME OVER............................................................................................524.3.3.10 Pantalla de instrucciones de juego HOW TO PLAY..............................................534.3.3.11 Pantalla de instrucciones in game ..........................................................................53

    5.Implementacin...............................................................................................................................555.1 Arquitectura global..................................................................................................................55

    5.1.1 Arquitectura del framework libGDX...............................................................................555.1.2 Visin de los mdulos de libGDX...................................................................................55

    5.2. Arquitectura de un videojuego................................................................................................565.2.1 Programa vs Aplicacin...................................................................................................56

    ii

  • 5.2.2 Estructura bsica de un videojuego..................................................................................565.3 Esquema de la estructura bsica de un videojuego..................................................................585.4 Patrones de diseo...................................................................................................................59

    5.4.1 Introduccin.....................................................................................................................595.4.2 Patrones de creacin.........................................................................................................595.4.3 Singleton..........................................................................................................................59

    5.5 Diagramas de clases definitivos...............................................................................................615.6 Diagramas ncleo videojuego .................................................................................................615.7 Diagrama de clases objetos videojuego...................................................................................645.8 Diagrama de clases pantallas videojuego................................................................................675.9 Configurar el entorno de desarrollo.........................................................................................69

    5.9.1 Instalacin ......................................................................................................................695.10 Traspaso del diseo a texturas .............................................................................................715.11 Implementacin de las mquinas de estado ..........................................................................73

    6.Conclusiones....................................................................................................................................757.Recursos utilizados .........................................................................................................................75

    7.1 Portada documento .................................................................................................................757.2 Recursos utilizados para el diseo del videojuego .................................................................75

    7.2.1 Fotografa pantalla intro videojuego y usuarios ..............................................................767.2.2 Iconos y botones...............................................................................................................76

    7.2.2.1 Altavoz......................................................................................................................767.2.2.2 Nota Musical............................................................................................................767.2.2.3 Flecha salida.............................................................................................................767.2.2.4 Icono de pausa..........................................................................................................767.2.2.5 Icono interrogante (help)..........................................................................................767.2.2.6 Botones (Play, Score, Options.....)............................................................................77

    7.2.3 Recursos grficos 2D componentes escenario.................................................................777.2.3.1 Ojos lobos.................................................................................................................777.2.3.2 Ovejas y lobos..........................................................................................................777.2.3.3 Fondos de pantallas OPTIONS, HIGH SCORES, HOW TO PLAY.......................777.2.3.4 Escenario..................................................................................................................77

    7.2.4 Fuentes.............................................................................................................................777.2.4.1 Thinckhead...............................................................................................................777.2.4.2 Misfortune................................................................................................................777.2.4.3 Tabaquera.................................................................................................................777.2.4.4 Press Start Font.........................................................................................................77

    7.2.5 Otros.................................................................................................................................787.2.6 Audio y efectos de sonido................................................................................................78

    7.2.6.1 Menu ......................................................................................................................787.2.6.2 Game Over...............................................................................................................787.2.6.3 Game Play................................................................................................................787.2.6.4 Crdits......................................................................................................................787.2.6.5 Ready........................................................................................................................787.2.6.6 Pause_Resume..........................................................................................................787.2.6.7 Quit...........................................................................................................................787.2.6.8 Sheep........................................................................................................................78

    8.Lineas abiertas del proyecto............................................................................................................799.Bibliografa utilizada ......................................................................................................................7910.Otros proyectos realizados............................................................................................................80

    10.1 Remake Gradius Konami.......................................................................................................80

    iii

  • 10.2 Tales of Nimria mini RPG.....................................................................................................8010.2 Motocalipsis Bar 66 RTS.......................................................................................................80

    Creative Commons 4.0 license by-nc-sa............................................................................................81

    ndice de ilustracionesilustracin 1. Ciclo de vida en cascada.................................................................................................4ilustracin 1.1. Calendario proyecto.....................................................................................................7ilustracin 2. Diagrama de gantt...........................................................................................................8ilustracin 3. Diagrama de casos de usos actor jugador.....................................................................11ilustracin 4. Diagrama de casos de usos personaje principal............................................................19ilustracin 5. Diagrama de casos de usos enemigos...........................................................................24ilustracin 6. Diagrama de clases videojuego....................................................................................28ilustracin 7. Diagrama de clases de pantallas...................................................................................30ilustracin 8. Mquina de estados del videojuego .............................................................................31ilustracin 9. Mquina de estados comportamiento oveja .................................................................32ilustracin 10. Mquina de estados comportamiento lobo ................................................................33ilustracin 11. Mquina de estados tutorial in game .........................................................................34ilustraciones 12 y 13 pantallas juego Sheep & Wolf ........................................................................36ilustraciones 14 y 15 pantallas juego Sheep Up !...............................................................................37ilustraciones 16 y 17 pantallas juego Temple run...............................................................................38ilustraciones 18 y 19 pantallas juego Attack of the Spooklings.........................................................39ilustracin 20. Aplicaciones de pago vs aplicaciones gratuitas..........................................................41ilustracin 21. Flujos de interaccin de la aplicacin entre sus distintas pantallas............................43ilustracin 22. Bocetos pantallas videojuego realizadas a mano alzada.............................................44ilustracin 23. Bocetos pantallas videojuego realizadas a mano alzada.............................................45ilustracin 24. Bocetos pantallas videojuego realizadas a mano alzada.............................................46ilustracin 24.1. Transiciones definidas entre pantallas.....................................................................47ilustracin 24.2. Diseo pantallas con Gimp......................................................................................54ilustracin 25. Diagrama de los mdulos que intervienen en un videojuego.....................................55ilustracin 26. Estructura bsica de un videojuego ...........................................................................58ilustracin 27. Singleton.....................................................................................................................59ilustracin 28. Diagrama de clases ncleo videjuego ........................................................................63ilustracin 29. Diagrama de clases Assets .........................................................................................64ilustracin 30. Diagrama de clases objetos ........................................................................................66ilustracin 31. Diagrama de clases pantallas .....................................................................................68ilustracin 32. Instalacin plugin ADT en Eclipse.............................................................................69ilustracin 33. Creacin proyecto libGDX.........................................................................................70ilustracin 34. Creacin proyecto libGDX.........................................................................................70ilustracin 35. Capas separadas por imgenes....................................................................................71Ilustracin 36. Texture packer ..........................................................................................................72ilustracin 37. Posicin texturas ........................................................................................................73

    iv

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria

    1.Introduccin1.1 Justificacin y contexto del proyecto

    Este trabajo de fin de carrera en adelante TFC, se centra en el desarrollo de aplicaciones paradispositivos mviles con sistema operativo Android. Actualmente existen multitud de aplicaciones.No obstante, este TFC se quiere centrar en un subconjunto de aplicaciones focalizadas alentretenimiento conocidas por todo el mundo como videojuegos.

    Un videojuego es un software creado para el entretenimiento en general y basado en lainteraccin entre una o varias personas y un aparato electrnico que ejecuta dicho videojuego. Aspues un videojuego es considerado un software cuyo fin directo es el entretenimiento.

    En estos ltimos aos los smartphones y tabletas se han convertido en las nuevas plataformasmviles para juegos que compiten con los sistemas porttiles clsicos que generalmente tienden aser ms cerrados.

    Los videojuegos se pueden clasificar en distintos gneros, estos son una forma de clasificacin,que designan un conjunto de videojuegos que poseen una serie de elementos comunes. A lo largode la historia de los videojuegos aquellos elementos que han compartido varios de los mismos hanservido para clasificar como un gnero a aquellos que les han seguido en estilo y forma, de lamisma manera que ha pasado con la msica o el cine. Como ejemplo se enumeran algunos de losgneros ms populares: Lucha, Disparos conocidos como Shooters, Sigilo, Plataformas, Arcade,Deporte etc.

    Durante mucho tiempo los videojuegos estuvieron reservados para un tipo de usuario muyconcreto con un perfil muy especfico: la gran mayora eran hombres entre 15 y 25 aos. Saliendode este perfil, si se buscaban mujeres o personas mayores de 25 aos, el nmero de usuarioscaa en picado y es que los videojuegos eran percibidos como el hobby de los adolescentesmasculinos. No obstante, en los ltimos aos se ha visto cmo todo esto ha ido cambiando con unaumento tanto del pblico femenino, como la aparicin en escena de usuarios con edades msavanzadas.

    Este cambio ha venido motivado por diferentes motivos evolutivos dentro de la industria delvideojuego. Uno de los motivos que ha provocado esto es la aparicin de los telfonos mvilesinteligentes, tabletas y juegos online, junto con gran cantidad de videojuegos de tipo casual. Otroclaro motivo es que la mayora de los que jugbamos hace 25 aos, pues hoy seguimos jugandoya que hemos crecido con esta cultura y claro esta que a da de hoy ya no tenemos la edad deentonces.

    1.2 Descripcin del Proyecto Este proyecto se quiere centrar en el desarrollo de un videojuego de tipo casual para mvilesAndroid. Estos son un tipo de videojuegos dirigidos a un pblico de jugadores casuales. Losvideojuegos casuales pueden tener cualquier tipo de mecnica de juego, y ser clasificados dentrode cualquier otro gnero. Son diferenciados por sus reglas simples y de no requerir un excesivocompromiso en contraste con la mayora de juegos, ms complejos. No requieren una dedicacinde tiempo a largo plazo o habilidades especiales para jugar.

    Pgina 1 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria Durante la realizacin del proyecto, se realizara el diseo del juego, por diseo se entienderealizar un documento que defina el juego de forma generalizada: mecnicas, personajes, etc.este documento es conocido como el game design, el diseo de arte conocido como Concepart engloba todo lo relacionado con el aspecto grfico del juego, estilos de personajes, estilos degrficos etc., Finalmente se realizara el anlisis, diseo e implementacin de laaplicacin(videojuego), con las tecnologas escogidas para este proyecto.

    1.3 Objetivos

    El objetivo principal de este TFC es adquirir experiencia en el desarrollo de videojuegos paraAndroid. Sin embargo, yendo ms all de la plataforma, tambin existe un inters por ampliarconocimientos en cuanto a programacin y diseo de videojuegos en general.

    En cuanto al diseo y desarrollo del videojuego, se pretende realizar un casual game con lassiguientes caractersticas:

    El juego consistir en conducir unas ovejas descarriadas a su corral, stas con nuestra ayudadebern sortear los peligros que irn apareciendo durante el camino hacia el deseado corral. Elprincipal peligro que amenaza las ovejas son unos lobos malvados que quieren comrselas. Elvideojuego slo dispondr de una nica modalidad de juego para un nico jugador. Al tratarse deun juego casual el publico objetivo es muy amplio. Se pretende conseguir un look & feel conesttica tipo cartoon en clave de humor. El juego sera desarrollado en 2D con perspectiva cenital.

    1.3.1 Definicin del videojuego

    El nivel se describe como una pantalla esttica con vista cenital en posicin vertical. Con estticase entiende que no hay ningn tipo de scroll que haga desplazar la pantalla. Siempre veremos lomismo.

    En la parte de arriba del todo aparecer un corral con una puerta, la puerta se ir abriendo ycerrando de forma aleatoria. Por los extremos de la pantalla habr arbustos que representaran loslimites del bosque. De estos limites, irn saliendo lobos a la escena que se querrn comer a laspobres ovejas. Estas ovejas permanecern en la parte de abajo de la pantalla e irn saliendo a laescena ellas solas sin saber demasiado donde van(son ovejas descarriadas), nuestra misinconsistir en tirarlas hacia el corral para salvarlas de los malvados lobos, metiendolas por lapuerta en los momentos que este abierta, para lanzarlas, tendremos que deslizar el dedo encimade ellas para darles impulso hacia el corral, si no acertamos en meter la oveja en la puerta, estarebotara como si de un pelota se tratase. Los lobos irn saliendo, para sacarnos los lobos deencima, deberemos deslizar nuestro dedo encima de ellos o tocarlos para ahuyentarlos. De lobos habr de diferentes colores , marrones , grises y azulados . Cada lobo loahuyentaremos de manera distinta:

    Marrones: 1 pulsacin o deslizar 1 vez el dedo sobre el lobo. Grises: 2 pulsaciones o deslizar 2 veces el dedo sobre el lobo. Azulados: 3 pulsaciones o deslizar 3 veces el dedo sobre el lobo.

    A parte de impedir que se coman las ovejas que estn en camino hacia el corral, tambintendremos que evitar que los lobos lleguen a la parte de abajo donde est el grupo de ovejas, yaque esto nos har perder vidas, el juego inicialmente empezara con 3 vidas, pudiendo alcanzar unmximo de 6 vidas en total, cada 10000 puntos obtendremos un vida extra.

    Pgina 2 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria Conforme el juego se va desarrollando, ste ir acumulando:

    Puntos. Tiempo jugado. Numero de lobos ahuyentados. Ovejas colocadas en el corral.

    Se tratara pues de ir mejorando nuestro propio rcord partida tras partida. El juego iraumentando de dificultad durante el transcurso de la partida.

    Como apunte final el juego recibe el nombre de Fling the sheep que traducido al espaolvendra a ser algo como lanzar las ovejas.

    Pgina 3 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria1.4 Planificacin

    1.4.1 Ciclo de vida

    Un videojuego no deja de ser un proyecto de software, por tanto para la realizacin de esteproyecto se ha tomado como base el ciclo de vida clsico de cualquier proyecto de software,modificado ligeramente a las necesidades del proyecto. Este ciclo de vida, que tambin sedenomina ciclo de vida en cascada se compone de las siguientes etapas:

    ilustracin 1. Ciclo de vida en cascada

    1.4.2 Planificacin detallada del proyecto

    En los siguientes apartados se recogen, por cada etapa que compone el ciclo de vida, las principales actividades realizadas con el objetivo de alcanzar el producto deseado dentro delos plazos definidos.

    1.4.1.1 Anlisis previo planificacin

    En este punto se ha abordado la visin global del proyecto, comprendida en establecer lospuntos iniciales necesarios para crear una planificacin de tareas en funcin de las actividades arealizar.

    Actividad DescripcinDiseo conceptual del videojuego Mecnicas del videojuego Definicin de las tecnologas Tecnologas que se utilizaran en el desarrollo del

    videojuego Anlisis de riesgos Posibles riesgos del proyectoPlanificacin del proyecto Crear una planificacin adaptada a los plazos de entrega

    de este TFC

    Pgina 4 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaRedaccin del documento Generacin del plan de trabajo.Entrega de la PEC1 Entrega del documento.

    1.4.1.2 Anlisis de requisitos

    En esta fase se ha detallado que necesidades debe cubrir el videojuego, tanto desde un puntode vista funcional, como desde un punto de vista arquitectnico de la aplicacin a disear, se hadiseado un modelo troncal de clases para posteriormente desarrollar en base a estas, todo elvideojuego. No obstante, en ningn caso se ha entrado en detalle en las tecnologas a utilizar yadefinidas previamente. Actividad DescripcinEspecificacin de requisitos funcionales Definicin de casos de usos.Diseo bsico estructura aplicacin Diagrama bsico de clases. Especificacin de requisitos funcionales Definicin de mquinas de estado

    1.4.1.3 Diseo

    En este apartado, teniendo en cuenta que en este proyecto se va a desarrollar un videojuego, seha realizado la recopilacin conceptual de arte, conjuntamente con el diseo de todas laspantallas que intervienen en el. Conjuntamente con la seleccin de los tipos de fuente que seutilizaran para el videojuego, seleccin de personajes y enemigos.

    Actividad DescripcinDefinicin de usuarios y contexto de uso delvideojuego

    Conocer las caractersticas de los usuarios, susnecesidades y objetivos, as como los contextosde uso.

    Diseo conceptual Un escenario de uso describe desde el puntode vista del usuario como ser utilizado unproducto determinado (es este caso unvideojuego) en un escenario determinado.

    Seleccin de arte Seleccin de arte ya hecho con licencias libresya que no se disponen de conocimientos dearte para abordar el diseo.

    Seleccin de fuentes Seleccin de los tipos de fuente adecuadospara el diseo del videojuego.

    Seleccin de personajes y enemigos Seleccin de personajes y enemigosdisponibles en la red con licencias libres ya queno se disponen de conocimientos de arte paraabordar el diseo.

    Diseo de pantallas que intervienen(prototipo) Con todo el arte, fuentes y personajes, serealizara el diseo de todas las pantallas queintervienen en el juego. Realizacin de unboceto a mano alzada, Sketches y prototipo dealta fidelidad.

    Redaccin del documento Generacin del documento de diseo

    Pgina 5 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaEntrega de la PEC2 Entrega del documento.

    1.4.1.4 Implementacin y pruebas

    En este punto se ha desarrollado la implementacin del videojuego partiendo de todas lasdefiniciones de los apartados anteriores y las verificaciones oportunas para asegurar el correctofuncionamiento del videojuego.

    Actividad DescripcinImplementacin de navegables y contenidos Implementacin de la estructura de todas la

    pantallas del video juego y la navegabilidadentre ellas y las funciones principales de cadauna de ellas.

    Implementacin del gameplay Implementacin de la logica de juego.Implementacin de sonido y efectos Implementacin de los efectos de sonido y la

    musica.Version alpha del videojuego En este punto se dispone de un videojuego

    funcional, listo para ser revisado y refinado.Pruebas y refinamiento de la implementacin Pruebas y correcines de posibles errores. Preparacin del paquete entregable y laredaccin del documento

    Testeo final y preparacin del apk a entregar,mas la redaccin del documento estrutural del'aplicacin.

    Entrega de la PEC3 Entrega del documento.

    1.4.1.5 Finalizacin

    En un proyecto de software esta parte quedara focalizada en la fase de implantacin y puesta enmarcha. Sin embargo, al tratarse de un videojuego, esta fase quedara focalizada en la fase delanzamiento del producto. No obstante en este caso se ha utilizado para documentar todo eltrabajo realizado a lo largo de este TFC.

    Actividad DescripcinRedaccin memoria final proyecto Redaccin memoria final Montaje presentacin diapositivas Montaje presentacin diapositivas Montaje del video final presentacin proyecto Montaje del video final presentacin proyectoEntrega final Entega final

    Pgina 6 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria1.4.3 Temporalizacin del proyecto

    La siguiente ilustracin muestra el calendario definido para el proyecto.

    ilustracin 1.1. Calendario proyecto

    Pgina 7 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria

    En la siguiente pagina se muestra una ilustracin del diagrama de gantt correspondiente alcalendario mostrado en la ilustracin 1.

    ilustracin 2. Diagrama de gantt

    Pgina 8 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria1.5 Herramientas y tecnologas utilizadas

    Actualmente existen varios frameworks para desarrollar videojuegos sobre plataformas mviles.Se ha hecho un anlisis comparativo preliminar entre Cocos2D-android1, Cocos2D-x, y libGDX,aunque existen otros, estos tres son los ms nombrados y utilizados.

    Cocos2d-android1: Es un framework en Java basado en la versin de cocos2d-android queesta basado en la versin de cocos2d para iphone. Este framework permite el desarrollo devideojuegos en 2D, y se programa en Java en lugar de objective-c. Para la versin Cocos2d deiphone. Actualmente este framework no parece tener mucha continuidad por parte de lacomunidad de desarrolladores, aunque no est discontinuado del todo.

    Cocos2D-x: Es un framework en C++ multi-plataforma, permite desarrollar para diferentesplataformas a la vez con el mismo cdigo: Android, iOS, Bada, Marmalade, Windows, Linux, etc.Sin embargo, aunque es un framework con una comunidad muy activa, su documentacin esbastante mejorable. Se programa en C++ y es posible trabajar con distintos entornos de desarrollocomo Visual Studio o Eclipse. El proceso de depuracin con eclipse es algo complejo con C++/JNIcon varios pasos a seguir para poder depurar. A la vez, su configuracin en el entorno Eclipse noes trivial. Finalmente ,tiene relativamente todava poco tiempo de vida.

    LibGDX: Es un framework escrito en Java sobre C++, ya que las partes crticas estn escritascon cdigo nativo para conseguir el mejor rendimiento posible. Tiene una comunidad dedesarrolladores muy activa y una documentacin muy extensa. Se programa con Java y permite ladepuracin ejecutando la aplicacin en el escritorio de la mquina sin tener que pasar por undispositivo real o uno virtual. En caso de que se quiera probar en un dispositivo real es posiblehacerlo sin ningn cambio sobre el cdigo. Este hecho hace que el desarrollo sea ms fluido.Tiene un rendimiento bastante alto ante cocos2d-x y otros frameworks existentes para eldesarrollo de videojuegos.

    Todo lo expuesto anteriormente provoca una inclinacin definitiva a utilizar libGDX paraimplementar el videojuego. As pues, el videojuego ser escrito en Java utilizando el IDE Eclipseque es el soportado oficialmente para Android utilizando el framework libGDX.

    Para la realizacin de este proyecto se han utilizado las siguientes herramientas:

    Planificacin proyecto

    Microsoft Project Professional 2010

    Diseo

    Gimp 2.8 Inkscape 0.48 TexturePacker 3.2.0 Microsoft Visio Professional 2010

    Programacin

    Entorno de desarrollo Eclipse 4.2.1 Juno Android develompment tools ADT Android SDK

    Pgina 9 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria Framework libGDX 0.9.8 ObjectAid, herramienta de visualizacin de cdigo en UML para Eclipse Control de versiones Git, utilizando como plataforma GitHub

    Edicin de audio

    Audacity 2.0.3 GoldWave 5.69

    Redaccin de documentos

    OpenOffice 4.0.1

    Edicin de vdeo

    Adobe Premiere Pro CS5.5

    1.6 Riesgos del proyecto

    Se parte de una experiencia previa en desarrollo de videojuegos, ver apartado 9 otros proyectosrealizados al final de este documento. Aunque no se dispone de experiencia con la libreraescogida ni tampoco con programacin sobre Android. A nivel tcnico no se prev que puedansurgir muchos riesgos en lneas generales. No obstante, existe la posibilidad de gastar mstiempo del previsto consultando documentacin para lograr los objetivos establecidos.

    Existe un riesgo ms alto a nivel artstico, ya que no se dispone de ningn conocimiento de artede ningn tipo. Por lo tanto, muy probablemente a nivel artstico el juego sea un poco justo. Es poreste motivo que durante la realizacin de este proyecto no se va a profundizar en temas de diseoartstico, en su lugar se utilizaran recursos de arte existentes en la red con licencias libres tipocreative commons o dominio pblico. Al final de este documento, en el apartado 6 se puede ver unlistado de los recursos utilizados, juntamente con un link a la obra y el nombre del autor si esteesta disponible. Se har una seleccin de distintos tipos de recursos grficos para posteriormentehacer el montaje de toda la parte grfica del videojuego. En cuanto a la parte de audio la situacin es exactamente la misma, no se dispone de ningnconocimiento para componer msica ni efectos. Por lo tanto, se buscarn sonidos y temasmusicales con licencias libres. Intentando que estos queden integrados de la mejor maneraposible al videojuego.

    Finalmente, existe el riesgo de que el gameplay definido en el diseo conceptual del videojuego,una vez puesto en prctica, no sea del todo funcional o necesite de un balanceo para conseguirun juego equilibrado y jugable.

    Pgina 10 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria

    2. Anlisis funcional Basndonos en el aparatado 1.3.1 Definicin del videojuego, se han definido los requisitosfuncionales necesarios para este, con la definicin de casos de uso. Posteriormente se ha definidoun diagrama de clases inicial, el cual ha servido como punto de partida para el desarrollo completodel videojuego. A su vez, se definen las mquinas de estado finitas utilizadas para el desarrollo.

    2.1 Requisitos funcionales, casos de uso

    En este apartado, se presentan tres diagramas de casos de uso El primer diagrama engloba lavista generalizada del actor jugador y los casos de uso que describen los requisitos funcionalesdel sistema. En los dos diagramas restantes, se describen la vista generalizada del actor IA, porIA se entiende la inteligencia artificial del videojuego. Los diagramas muestran los requisitosfuncionales de la IA para el personaje principal y los enemigos. La IA interacta con el sistema, ypor tanto, ser susceptible de analizar su "uso" de la aplicacin:

    2.1.1 Diagrama casos de uso actor Jugador

    ilustracin 3. Diagrama de casos de usos actor jugador

    Pgina 11 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria Como se puede observar en la ilustracin 3, el sistema solo dispone de un nico actor. Que eneste caso es el jugador del videojuego, es decir representa todos los posibles usuarios quepueden jugar al videojuego.

    En la siguiente tabla se hace un resumen de los casos de uso mostrados en la ilustracin 3,estos sern desarrollados en la seccin posterior.

    2.1.2 Tabla resumen casos de uso

    Cdigo Descripcin ActorVJ01 Inicio videojuego JugadorVJ02 Jugar JugadorVJ03 Acceder puntuaciones mximas JugadorVJ3.1 Consultar puntuacione locales JugadorVJ3.2 Salir puntuacione locales JugadorVJ04 Acceder a las opciones JugadorVJ4.1 Activar o desactivar msica o efectos JugadorVJ4.2 Acceder a la pantalla de crditos JugadorVJ4.2.1 Salir de la pantalla de crditos JugadorVJ4.3 Salir de las opciones JugadorVJ05 Acceder a las instrucciones JugadorVJ5.1 Salir de las intrucciones JugadorVJ06 Salir del videojuego Jugador 2.1.3 Descripcin textual de los casos de uso

    2.1.3.1 VJ01 Inicio videojuego

    Identificador VJ01Nombre Inicio videojuego Autor Xavier FigueraResumen El usuario inicia el videojuego Actor(es) JugadorPrecondiciones Ninguna, el videojuego no haba sido iniciado anPostcondiciones El usuario a iniciado el videojuego, a visualizado la pantalla de intro

    durante un segundo y se encuentra en la pantalla del men principal.Flujo normal 1. El usuario accede a la lista de aplicaciones de su dispositivo

    2. Busca el acceso al videojuego3. Ejecuta el programa4. Se carga la aplicacin5. El videojuego muestra la pantalla de intro

    Pgina 12 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria6. Se muestra el men principal al jugador

    Flujos alternativos Se podra dar el caso que el usuario accediera al videojuego desde algunacceso directo en alguno de los escritorios del dispositivo.

    Inclusiones NingunaExtensiones Ninguna

    2.1.3.2 VJ02 Jugar

    Identificador VJ02Nombre JugarAutor Xavier FigueraResumen Jugar al videojuego Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y se encuentra en el men principalPostcondiciones El usuario empieza a jugarFlujo normal 1. El usuario pulsa el botn play del men principal

    2. El usuario juega3. El usuario puede volver a jugar una vez finalizada la partida 4. El usuario puede salir del juego en cualquier momento

    Flujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    2.1.3.3 VJ03 Acceder puntuaciones mximas locales

    Identificador VJ03Nombre Acceder puntuaciones mximas locales Autor Xavier FigueraResumen Acceder a la pantalla de puntuaciones mximas locales de las partidas

    realizadas en el dispositivo Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y se encuentra en el men principalPostcondiciones El usuario se dirige a la pantalla con la tabla de las 10 puntuaciones

    mximasFlujo normal 1. El usuario pulsa el botn Scores del men principal

    2. Al usuario le aparece la pantalla de puntuacin

    Pgina 13 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaFlujos alternativos NingunoInclusiones NingunaExtensiones VJ3.1 Consultar puntuaciones locales

    VJ3.2 Salir de la puntuaciones locales

    2.1.3.4 VJ3.1 Consultar puntuaciones locales

    Identificador VJ3.1Nombre Consultar puntuaciones localesAutor Xavier FigueraResumen Consulta de las puntuaciones mximas locales de las partidas realizadas

    en el dispositivo Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y ha pulsado el botn Scores del

    men principal Postcondiciones El usuario visualiza la tabla de las 10 puntuaciones mximasFlujo normal 1. El usuario visualiza una tabla con las 10 puntuaciones mximasFlujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    2.1.3.5 VJ3.2 Salir puntuaciones locales

    Identificador VJ3.2Nombre Salir puntuaciones localesAutor Xavier FigueraResumen Salir de las puntuaciones mximas locales. Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y ha pulso el botn Scores. Postcondiciones El usuario sale de la tabla de puntuacionesFlujo normal 1. El usuario pulsa el botn salir en la pantalla tabla de puntuaciones.Flujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    Pgina 14 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.3.6 VJ04 Acceder a las opciones

    Identificador VJ04Nombre Acceder a la pantalla de opcionesAutor Xavier FigueraResumen Acceder a la pantalla de opciones del videojuego Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y se encuentra en el men principalPostcondiciones El usuario se dirige a la pantalla de opciones Flujo normal 1. El usuario pulsa el botn Options del men principal

    2. Al usuario le aparece la pantalla de opciones Flujos alternativos NingunoInclusiones NingunaExtensiones VJ4.1 Activar o desactivar msica o efectos

    VJ4.2 Acceder a la pantalla de crditosVJ4.3 Salir de las opciones

    2.1.3.7 VJ4.1 Activar o desactivar msica o efectos

    Identificador VJ04.1Nombre Activar o desactivar msica o efectosAutor Xavier FigueraResumen Activar o desactivar msica o efectos de audio del videojuego Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y ha pulsado el botn Options en el

    men principal Postcondiciones El usuario activa o desactiva la msica o efectos del videojuego Flujo normal 1. El usuario pulsa el botn altavoz para activar o desactivar la msica del

    videojuego 2. El usuario pulsa el botn notas musicales para activar o desactivar losefectos de audio del videojuego

    Flujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    Pgina 15 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.3.8 VJ4.2 Acceder a la pantalla de crditos

    Identificador VJ4.2Nombre Acceder a la pantalla de crditosAutor Xavier FigueraResumen Acceder a la pantalla de crditosActor(es) JugadorPrecondiciones El usuario se encuentra en la pantalla de opcionesPostcondiciones El usuario accede a la pantalla de crditos Flujo normal 1. El usuario pulsa el botn credits para acceder a los crditos

    2. El usuario puede desplazar el texto de los crditos deslizando el dedosobre el texto hacia arriba y hacia abajo

    Flujos alternativos NingunoInclusiones NingunaExtensiones VJ4.2.1 Salir de la pantalla de crditos

    2.1.3.9 VJ4.2.1 Salir de la pantalla de crditos

    Identificador VJ4.2.1Nombre Salir de la pantalla de creditosAutor Xavier FigueraResumen Salir de la pantalla de crditosActor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y ha pulsado el botn Options en el

    men principal y ha accedido a la pantalla crditos Postcondiciones El usuario accede a la pantalla de crditos Flujo normal 1. El usuario pulsa el botn salir para abandonar la pantalla para acceder

    a los crditos2. El usuario se encuentra de nuevo en la pantalla opciones

    Flujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    Pgina 16 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.3.10 VJ05 Acceder a las instrucciones

    Identificador VJ05Nombre Acceder a la pantalla de instruccionesAutor Xavier FigueraResumen Acceder a la pantalla de instruccionesActor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y ha pulsado el botn ? del men

    principal Postcondiciones El usuario accede a la pantalla de instruccionesFlujo normal 1. El usuario pulsa el botn ? para acceder a las instrucciones

    2. El usuario puede desplazar el texto de las instrucciones deslizando eldedo sobre el hacia arriba y hacia abajo

    Flujos alternativos NingunoInclusiones NingunaExtensiones VJ5.1 Salir de las instrucciones

    2.1.3.11 VJ5.1 Salir de las instrucciones

    Identificador VJ5.1Nombre Salir de las intruccionesAutor Xavier FigueraResumen Salir de la pantalla de instruccionesActor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego y ha pulsado el botn ? en el men

    principal y ha accedido a la pantalla de instrucciones Postcondiciones El usuario accede a la pantalla de instruccionesFlujo normal 1. El usuario pulsa el botn ? para acceder a la pantalla de instruccionesFlujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    Pgina 17 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.3.12 VJ06 Salir del videojuego

    Identificador VJ06Nombre Salir del videojuego Autor Xavier FigueraResumen Salir del videojuego Actor(es) JugadorPrecondiciones El usuario ha iniciado el videojuego Postcondiciones El usuario abandona el videojuego Flujo normal 1. El usuario pulsa el botn exit de la aplicacin para salir del videojuego o

    el botn salir del dispositivo Flujos alternativos NingunoInclusiones NingunaExtensiones Ninguna

    Pgina 18 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.4 Diagrama casos de uso actor IA

    Por IA se entiende inteligencia artificial, es un elemento fundamental para dotar de realismo a unvideojuego. Uno de los retos principales que se plantean a la hora de integrar comportamientosinteligentes es alcanzar un equilibrio entre la sensacin de inteligencia y el tiempo de cmputoempleado por este subsistema. Este equilibrio es de gran importancia en el caso de losvideojuegos. Este planteamiento gira, generalmente, en torno a la generacin de soluciones que,sin ser ptimas, proporcionen una cierta sensacin de inteligencia. En concreto, dichas solucionesdeberan tener como meta que el jugador se enfrente a un reto que sea factible de manera quesuponga un estmulo emocional y que consiga engancharlo al videojuego.

    En estos ltimos aos, la IA ha pasado de ser un componente secundario en el proceso dedesarrollo de videojuegos a convertirse en uno de los aspectos ms importantes. Actualmente,lograr un alto nivel de IA en un juego sigue siendo uno de los retos ms emocionantes y complejosy, en ocasiones, sirve para diferenciar un juego normal de uno realmente espectacular.

    Dentro de este proyecto de ha definido una IA bsica para dotar del realismo necesario alvideojuego propuesto. En los siguientes diagramas, se define esta IA en forma de casos de usospara su posterior implementacin.

    2.1.4.1 Diagrama casos de uso IA personaje principal (oveja)

    ilustracin 4. Diagrama de casos de usos personaje principal

    Pgina 19 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria En la siguiente tabla se hace un resumen de los casos de uso mostrados en la ilustracin 4,estos sern desarrollados en la seccin posterior.

    2.1.4.1.1 Tabla resumen casos de uso

    Cdigo Descripcin ActorIA03 Salida oveja al escenario IAIA03.1 Posicionamiento en pantalla de la oveja IAIA03.2 Movimiento oveja IAIA03.3 Oveja pastando IAIA03.4 Lanzamiento oveja IAIA03.5 Rebotes de la oveja IAIA03.6 La oveja entra en el establo IAIA03.7 Parar oveja IA

    2.1.4.1.2 Descripcin textual de los casos de uso

    2.1.4.1.2.1 IA03 Salida ovejas al escenario

    Identificador IA03Nombre Salida oveja al escenarioAutor Xavier FigueraResumen Salida oveja al escenarioActor(es) IAPrecondiciones El usuario ha iniciado una partidaPostcondiciones La oveja es instanciada de forma automtica sin intervencin del usuarioFlujo normal 1. El usuario ha iniciado una partida

    2. Las ovejas se empiezan a instanciar sin intervencin del usuario 3. El punto 2 se repite en un intervalo de tiempo determinadoindefinidamente

    Flujos alternativos Ninguno Inclusiones NingunaExtensiones IA03.1 Posicionamiento en pantalla de las oveja

    2.1.4.1.2.2 IA03.1 Posicionamiento en pantalla de las oveja

    Identificador IA03.1Nombre Posicionamiento en pantalla de las oveja

    Pgina 20 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaAutor Xavier FigueraResumen Asignacin inicial posicin de las ovejas en pantalla, siempre es la misma,

    posicin, esta queda fuera del rango visual de la pantalla Actor(es) IAPrecondiciones La partida esta iniciada y la oveja instanciadaPostcondiciones La oveja queda posicionada en unas coordenadas fuera de la pantallaFlujo normal 1. Se instancia la oveja.

    2. La oveja queda posicionada en unas coordenadas nicas fuera delrango visual de pantalla

    Flujos alternativos Ninguno Inclusiones NingunaExtensiones IA03.2 Movimiento oveja

    2.1.4.1.2.3 IA03.2 Movimiento oveja

    Identificador IA03.2Nombre Movimiento ovejaAutor Xavier FigueraResumen Movimiento de las ovejas hacia el escenarioActor(es) IAPrecondiciones La partida esta iniciada, la oveja instanciada y posicionadaPostcondiciones La oveja se mueve hacia el escenario, empieza a pastar.Flujo normal 1. La oveja se mueve hacia el escenario. Flujos alternativos Ninguno Inclusiones IA03.4Extensiones IA03.3 Oveja Pastando

    IA03.7 Parar oveja

    2.1.4.1.2.4 IA03.3 Oveja pastando

    Identificador IA03.3Nombre Oveja pastandoAutor Xavier FigueraResumen La ovejas permanecen en un espacio determinado de coordenadas de

    pantalla mientras no sean lanzadas al escenario por el usuarioActor(es) IA

    Pgina 21 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaPrecondiciones La oveja ha salido al escenarioPostcondiciones La oveja se mueve dentro de un espacio determinado de forma indefinida Flujo normal 1. La oveja se mueve de forma indefinida hasta que sea lanzada por el

    usuarioFlujos alternativos Ninguno Inclusiones NingunaExtensiones IA03.4 Lanzamiento oveja

    2.1.4.1.2.5 IA03.4 Lanzamiento oveja

    Identificador IA03.4Nombre Lanzamiento ovejaAutor Xavier FigueraResumen La oveja es lanzada por el usuario y se acelera en funcin de la fuerza de

    lanzamiento Actor(es) IAPrecondiciones La oveja se mueve Postcondiciones La oveja ha sido lanzada Flujo normal 1. La oveja se mueve de forma indefinida,

    2. La oveja es lanzada3. La oveja acelera en funcin de la fuerza de lanzamiento

    Flujos alternativos Ninguno Inclusiones NingunaExtensiones IA03.2 Movimiento oveja

    2.1.4.1.2.6 IA03.5 Rebotes de la oveja

    Identificador IA03.5Nombre Rebotes de la ovejaAutor Xavier FigueraResumen La oveja ha sido lanzada y rebota por el escenario Actor(es) IAPrecondiciones La oveja ha sido lanzadaPostcondiciones La oveja rebota por el escenario Flujo normal 1. La oveja ha sido lanzada y rebota por el escenario

    2. La oveja entra en el establo si colisiona con la puerta y esta abierta

    Pgina 22 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaFlujos alternativos Ninguno Inclusiones NingunaExtensiones IA03.6 La oveja entra en el establo

    2.1.4.1.2.7 IA03.6 La oveja entra en el establo

    Identificador IA03.6Nombre La oveja entra en el establoAutor Xavier FigueraResumen La oveja entra en el establoActor(es) IAPrecondiciones La oveja esta rebotando por el escenario y la puerta del establo esta

    abiertaPostcondiciones La oveja entra en el establoFlujo normal 1. La oveja entra en el establo si colisiona con la puerta y esta abiertaFlujos alternativos Ninguno Inclusiones NingunaExtensiones Ninguna

    2.1.4.1.2.8 IA03.7 Parar oveja

    Identificador IA03.7Nombre Parar ovejaAutor Xavier FigueraResumen La oveja para si se hacen dos pulsaciones encima de ellaActor(es) IAPrecondiciones La oveja esta rebotando por el escenarioPostcondiciones La oveja se paraFlujo normal 1. La oveja esta rebotando

    2. El usuario pulsa dos veces encima de ella3. La oveja se para

    Flujos alternativos Ninguno Inclusiones NingunaExtensiones Ninguna

    Pgina 23 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria

    2.1.4.2 Diagrama casos de uso IA enemigos (lobo)

    ilustracin 5. Diagrama de casos de usos enemigos

    2.1.4.2.1 Tabla resumen casos de uso

    Cdigo Descripcin ActorIA02 Salida lobo al escenario IAIA02.1 Ojos por la derecha o por la izquierda IAIA02.2 Escoje el tipo de lobo IAIA02.3 Lobo por la derecha o por la izquierda IAIA02.4 Salta a escena IAIA02.5 Movimento lobo IA

    Pgina 24 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.4.2.2 Descripcin textual de los casos de uso

    2.1.4.2.2.1 IA02 Salida lobo al escenario

    Identificador IA02Nombre Salida lobo al escenarioAutor Xavier FigueraResumen Salida lobo al escenarioActor(es) IAPrecondiciones El usuario ha iniciado una partidaPostcondiciones El lobo es instanciado de forma automtica sin intervencin del usuarioFlujo normal 1. El usuario ha iniciado una partida

    2. Los lobos se empiezan a instanciar sin intervencin del usuario 3. El punto 2 se repite en un intervalo de tiempo determinadoindefinidamente

    Flujos alternativos Ninguno Inclusiones NingunaExtensiones IA02, IA02.1, IA02.2, IA02.3, IA02.4

    2.1.4.2.2.2 IA02.1 Ojos por la derecha o por la izquierda

    Identificador IA02.1Nombre Ojos por la derecha o por la izquierdaAutor Xavier FigueraResumen Salida de ojos al escenario paso previo a que salte el loboActor(es) IAPrecondiciones El lobo ha sido instanciadoPostcondiciones Aparecen unos ojos que se cierra y se abren por la derecha o izquierda de

    la pantalla de forma aleatoriaFlujo normal 1. El lobo ha sido instanciado

    2. Aparecen unos ojos que se cierran y se abren 3. El punto 2 se repite en un intervalo de tiempo determinadoindefinidamente

    Flujos alternativos Ninguno Inclusiones NingunaExtensiones Ninguna

    Pgina 25 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.4.2.2.3 IA02.2 Escoge el tipo de lobo

    Identificador IA02.2Nombre Escoge el tipo de loboAutor Xavier FigueraResumen Escoge el tipo de lobo de forma aleatoria de los tres definidos Actor(es) IAPrecondiciones Han aparecido los ojosPostcondiciones Ha escogido el tipo de lobo que saltara al escenarioFlujo normal 1. Han aparecido los ojos

    2. Ha escogido el tipo de lobo que saltara al escenario Flujos alternativos Ninguno Inclusiones NingunaExtensiones Ninguna

    2.1.4.2.2.4 IA02.3 Lobo por la derecha o por la izquierda

    Identificador IA02.3Nombre Lobo por la derecha o por la izquierdaAutor Xavier FigueraResumen Escoge de forma aleatoria el lado por donde debe aparecer el lobo Actor(es) IAPrecondiciones Se ha seleccionado el tipo de loboPostcondiciones Se ha escogido el lado por donde aparecerFlujo normal 1. Se ha escogido el lado por donde aparecer Flujos alternativos Ninguno Inclusiones NingunaExtensiones Ninguna

    Pgina 26 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.1.4.2.2.5 IA02.4 Salta a escena

    Identificador IA02.4Nombre Salta a escenaAutor Xavier FigueraResumen El lobo salta a escenaActor(es) IAPrecondiciones Se ha seleccionado el lado por donde debe aparecer y saltaPostcondiciones El lobo esta en escenaFlujo normal 1. Se ha seleccionado el lado por donde debe aparecer y salta

    2. El lobo esta en escena Flujos alternativos Ninguno Inclusiones NingunaExtensiones A02.5

    2.1.4.2.2.6 IA02.5 Movimiento lobo

    Identificador IA02.5Nombre Movimiento loboAutor Xavier FigueraResumen El lobo esta en escena y se mueveActor(es) IAPrecondiciones El lobo ha saltado a la escenaPostcondiciones El lobo se mueveFlujo normal 1. El lobo ha saltado a la escena

    2. El lobo se mueveFlujos alternativos Ninguno Inclusiones NingunaExtensiones Ninguna

    Pgina 27 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.2 Diseo inicial diagrama de clases

    2.2.1 Diagrama de clases inicial Fling the sheep

    ilustracin 6. Diagrama de clases videojuego

    En este apartado, se define la estructura inicial de la aplicacin a travs del diagrama de clasesmostrado en la ilustracin 6. Esto servir como punto de partida para el completo diseo de laaplicacin para su posterior implementacin. A continuacin se pasan a detallar a modo resumidoque funcionalidad tiene cada una de las clases definidas en este diagrama.

    2.2.1.1 Resumen clases videojuego

    FlingTheSheepMain: Clase principal desde donde se inicializar la aplicacin.

    Assets: Esta clase contendr todos los recursos necesarios del juego, texturas, sonidos, etc.Estos sern inicializados en el momento de iniciar el juego. Existe una dependencia entre la claseFlingTheSheepMain y Assets, ya que la instanciacin de Assets esta condicionada por lainstanciacin de la clase principal FlingTheSheepMain cuando se pone en marcha el videojuego.

    Pgina 28 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    MemoriaWorldGameController: Esta clase contendr la lgica del videojuego.

    AudioManager: Clase destinada para controlar la reproduccin de efectos de sonido y audio delvideojuego.

    Charcater: Es la superclase que describe los comportamientos comunes de los personajes, deella se extienden los personajes principales y los enemigos.

    Sheep: Clase que representa el personaje principal.

    Wolf: Clase que representa a los enemigos

    AbstractGameObject: Esta superclase recoge todos los comportamientos comunes de losobjetos del juego, por objetos se entiende todos los componentes que forman el escenario delvideojuego. De esta clase se extienden todos los objetos del videojuego.

    Grass: Hierba que aparecer en el escenario.

    Flower: Flores que aparecern en el escenario.

    ThePen: Establo donde hay que hacer llegar las ovejas

    DoorPen: Puerta del establo, esta se abrir y se cerrara aleatoriamente

    Hole: Agujeros en el escenario

    WoodFenceForest: Valla de madera que aparecer en el escenario.

    Como se ha comentado, este diagrama de clases es un diagrama inicial, por tanto lo msprobable es que durante el desarrollo del videojuego se aadan ms clases al diseo inicialmostrado en la ilustracin 6. En el apartado 5.5 de este documento se muestran los diagramas declases definitivos.

    Pgina 29 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.2.2 Diagrama de clases inicial de pantallas

    ilustracin 7. Diagrama de clases de pantallas

    Este diagrama recoge en forma de clases, las pantallas iniciales definidas del videojuego. Separte de una superclase llamada AbstractGameScreen que recoger las operaciones comunes detodas ellas y de esta se extienden las pantallas concretas, este diagrama solo muestra laspantallas ms bsicas definidas inicialmente, estas servirn como base para desarrollar elconjunto de pantallas total necesarias para este proyecto y que quedan recogidas en su totalidaden el apartado 4 Diseo de esta documento.

    A continuacin se pasan a detallar a modo resumido cada una de ellas.

    2.2.2.1 Resumen clases pantallas

    IntroScreen: Clase para la pantalla de intro.

    MenuScreen: Clase que contiene el men principal del videojuego. GameScreen: La clase game screen es la que contiene la pantalla donde se desarrolla todo elvideojuego.

    Pgina 30 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria2.3 Definicin de mquinas de estado finitas

    Como ya se ha introducido en el punto 2.1.2 la IA aplicada a los videojuegos, dota a estos derealismo. Existen distintas tcnicas para la implementacin de esta. Una de las ms consolidadases, el uso de mquinas de estados finitas, ya que tienen un coste computacional casi inexistenteya que no tienen ningn coste de procesamiento asignado. Las mquinas de estados permiten deforma fcil definir comportamientos. Es por este motivo, que han sido utilizadas no solamente para definir los comportamientos de laIA del videojuego, sino tambin para definir los distintos estados en que se puede encontrar elvideojuego durante su tiempo de vida. A continuacin se detallan los distintos diagramas de lasmquinas de estados utilizadas para este proyecto conjuntamente con una explicacin de cadauna de ellas.

    2.3.1 Mquina de estados del videojuego

    ilustracin 8. Mquina de estados del videojuego

    La ilustracin 8, nos muestra los estados que puede tomar el videojuego durante su tiempo devida.

    Este diagrama define los estados que puede tomar el videojuego una vez iniciado, inicialmente eljuego se encuentra en el estado READY, de este estado existe una transicin al estado GAMEcuando el tiempo de READY finaliza READY

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoriadesarrollara todo el juego. Des de este estado podemos pasar al estado PAUSE si pulsamos elbotn de pausa del juego y desde el estado PUASE volvemos al estado GAME si volvemos apulsar el botn pause. Finalmente desde el estado GAME haremos la transicin al estado GAMEOVER si nos arrebatan todas las vidas durante la partida. Desde el estado GAME OVERpodremos volver a READY si decidimos hacer una nueva partida.

    2.3.2 Mquina de estados comportamiento oveja

    ilustracin 9. Mquina de estados comportamiento oveja La ilustracin 9 muestra el comportamiento del personaje principal del videojuego que en estecaso es la oveja. Se define el ciclo de vida de la oveja a travs de sus comportamientos.

    APPEAR SHEEP: La oveja aparece fuera del rango visual de la pantalla y empieza a moverse,para que suceda la transicin hacia el siguiente estado FOREST START, la coordenada x debeser menor que 220.

    FOREST START: La oveja seguir movindose en un espacio determinado de la pantalla hastaque sea lanzada en unas determinadas direcciones, la direccin queda determinada, por lasvariables velocityX, velocityY, estas tomaran valores positivos o negativos determinando ladireccin de lanzamiento, esto queda reflejado en la condicin de transicin del estado FORESTSTART a FOREST DEEP. Si realizamos el lanzamiento en esas determinadas direccionesharemos la transicin al un nuevo estado FOREST DEEP.

    FOREST DEEP: La oveja rebota por el escenario, si colisiona con la puerta del corral y estaabierta hacemos la transicin al estado ON THE PEN.

    Pgina 32 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria

    ON THE PEN: Finaliza el ciclo de vida de la oveja dentro del juego, esta es devuelta al corral, seincrementan puntos en el marcador de puntuacin, y se incrementa una unidad en el contador deovejas salvadas.

    2.3.3 Mquina de estados comportamiento lobo

    ilustracin 10. Mquina de estados comportamiento lobo La ilustracin 10 muestra el comportamiento de los enemigos del videojuego que en este casoson los lobos. Se define el ciclo de vida del lobo a travs de sus comportamientos.

    APPEAR EYES: Antes de aparecer los lobos a escena aparecern sus ojos entre los matorralesdel bosque. Cuando acaba el tiempo pasa al siguiente estado tiempo ojos

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoriamatorrales laterales de la pantalla,hacia el escenario dibujando un arco convexo. Para realizar elsalto nos apoyaremos en la representacin del calculo de la funcin trigonomtrica coseno,solamente en sus valores positivos, por tanto cuando cosy < 0 haremos la transicin al estadoMOVE ya que el salto habr finalizado.

    MOVE: En este estado los lobos se movern y podrn ser ahuyentados pulsando repetidas vecesencima de ellos, las veces a pulsar queda sujeta al tipo de lobo que sea. Des de este estado,podremos hacer a dos estado distintos dependiendo de lo que suceda. Si conseguimos ahuyentaral lobo pasaremos al estado WOLF SCARED. Si por el contrario el lobo atrapa a la oveja,haremos la transicin al estado SHEEP TRAPPED, en ambos estados finalizara el ciclo de vidadel lobo.

    WOLF SCARED: Se habr ahuyentado el lobo, se incrementa en uno el contador de lobosahuyentados y se suman puntos a la puntuacin total. En este estado finaliza el ciclo de vida dellobo.

    SHEEP TRAPPED: El lobo habr atrapado una oveja, se nos restara una vida. En este estadofinaliza el ciclo de vida del lobo.

    2.3.4 Mquina de estados tutorial in game

    ilustracin 11. Mquina de estados tutorial in game La ilustracin 11 muestra los distintos estados que toma el mini tutorial in game que aparecer laprimera vez que se juega. En este las transiciones entre estados suceden de forma automtica

    Pgina 34 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoriacada 5 segundos desde que se ha activado el primer estado. Cada estado corresponder a unacaja de texto mostrada en pantalla.

    3. Diseo 3.1 Estudio comparativo

    Un estudio realizado en 2011 por la empresa Newzoo: http://www.newzoo.com, empresainternacional dedicada a los estudios de mercado y enfocada por completo a la industria de losvideojuegos. Ha realizado la primera encuesta a jugadores espaoles y una de las cosas que dicees: "La suma del volumen de negocio de juegos online (redes sociales, juegos casuales,juegos para mviles, juegos MMO) superar al del consumo en juegos para consolas en2011. ". Se puede ver un resumen del estudio en lnea en:

    http://www.eurogamer.es/articles/2011-10-26-espana-gastara-1-600-millones-de-euros-en-videojuegos-en-2011

    Con esta informacin, se puede ver que hacer un videojuego casual para una plataforma mvilcomo Android puede ser muy viable.

    Para este proyecto se realizar un estudio comparativo (benchmarking). En la industria de losvideojuegos es habitual, sacar ttulos fijndose en otros ttulos que han conseguido gran xito enel mercado. La operativa consiste en mejorarlos dentro de otro contexto o hacer un videojuegocompletamente diferente pero basndose en ocasiones en mecnicas de algn otro ttulo que haconseguido un gran xito.

    Existen en Google Play gran cantidad de juegos casuales, que pueden servir como inspiracin ycomo punto de inicio para hacer un planteamiento general de cmo disear el producto que sequiere desarrollar partiendo de los requisitos definidos en el apartado 1.3.1 de este documento. Setomarn como referencia algunos ttulos para identificar patrones, para ver cmo otros hansolucionado ciertas situaciones, como pueden ser problemas de diseo o interaccin entre otros.En ningn caso, debern ser exactamente de la misma temtica pero si que se mirar que seandel mismo tipo, es decir casual games.

    El primer paso para realizar este estudio ,a sido ir a Google play y verificar si hay algn juego conel mismo nombre que el que se pretende desarrollar Fling the sheep. No existe ningn juego ada de hoy con este nombre.

    El segundo paso a sido buscar tambin en Google play videojuegos en los que aparezcanovejas, solo poniendo en el buscador la palabra "sheep", nos aparecen muchsimos juegos quetienen una temtica donde aparecen ovejas. Se ha verificado tambin poniendo combinaciones depalabras relacionadas con el juego que se quiere implementar, palabras como "sheep wolves" o "sheep farm", etc. los resultados obtenidos son bastante elevados.

    Por la cantidad de juegos encontrados y los recursos de que se dispone, como por ejemplo eltiempo, no es posible analizarlos todos. Si que se tomaran algunos juegos despus de hacer unrepaso de los ms destacados. Hay que decir, que despus de haber instalado algunos, alguno deellos no ha acabado de funcionar correctamente en el dispositivo mvil.

    Tras estos pasos, se escogern dos videojuegos de temtica similar y dos videojuegos detemtica diferente. Los videojuegos escogidos para realizar el anlisis comparativo son:

    Pgina 35 de 102

  • Desarrollo de videojuegos para Android Xavier Figuera Alberich

    Casual games Diciembre 2013

    Memoria3.1.1 Sheep & Wolf

    A continuacin se muestran unas pantallas del videojuego:

    ilustraciones 12 y 13 pantallas juego Sheep & Wolf Link: https://play.google.com/store/apps/details?id=jscompany.games.SheepAndWolf_enter3

    El juego consta de una mecnica muy simple, disponemos de un boomerang y un corazn , laperspectiva del juego es elevada y vemos cmo van bajando ovejas y lobos de forma aleatoria, setrata de forma tctil dibuj