informe tecnico para adaptador de videojuegos en dispositivos móviles

Upload: diana-gomez

Post on 07-Jul-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    1/46

    Adaptación de videojuegos en dispositivos móviles

    INSTITUTO TECNOLOGICO DE CULIACAN

    PROYECTO

    Adaptación de videojuegos en dispositivos móviles

    CARRERA

    Ingeniería en Sistemas Computacionales

    SEMESTRE

    10

    ALUMNO

    Christian Jair Lindor Valdez

    NO. DE CONTROL

    010!!"

    ASESOR INTERNO Y REVISORES

    #$C$ #artín Leonardo %ev&rez 'ivas

    (r$ 'amón )atarain Ca*ada

    #$C$ +loria ,-aterine .eralta .e//uri

    ASESOR EXTERNO

    (aniel #elchor 

    1

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    2/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    3/46

    Adaptación de videojuegos en dispositivos móviles

    ANTECEDENTES DE LA EMPRESA

    La historia comienza mucho antes de los inicios de la compa/ía$ ,n 1;785 cinco hermanos

    nacidos en la 6reta/a rancesa undaron dos empresas< la corporación +uillemot 2 =*isot$ Cinco a/os

    despu>s5 los hermanos #ichel 2 +erard crearon los dos primeros estudios de producción de =*isot5

    uno en ?rancia 2 otro en 'umanía$ ?ue justo en a@uella >poca cuando nació 'a2man5 el amoso h>roe

    @ue luchó por derrotar al malvado #r$ (ar-$

     %o pasó mucho tiempo para @ue =*isot se convirtiría en una de las compa/ías m&s grandes del

    sector de los videojuegos en el mundo5 produciendo algunos de los mejores títulos para consolas 2 .C$

    A inales de la d>cada de los ;05 #ichel +uillemot5 responsa*le de los estudios =*isot5 o*servó

    el crecimiento 2 e4pansión del mercado de los tel>onos móviles en todo el mundo 2 pensó en la opción

    de descargar juegos online para estos dispositivos5 convirti>ndolos así en consolas port&tiles$

    Se trata*a de todo un nuevo universo por e4plorar5 @ue so*repasaría los 80 millones de

     jugadores 2a ganados como clientes 25 en un plazo apro4imado de diez a/os5 con@uistaría a miles de

    millones de jugadores ocasionales por todo el mundo$

    +uillemot @uería demostrar @ue la gente esta*a dispuesta a jugar en sus tel>onos celulares si

    los títulos orecidos presenta*an *uena calidad 2 *ajos precios$ Incluso5 los jugadores ocasionales

    comenzarían a pedir una ma2or calidad 2 diversidad de juegos5 sin tener @ue actualizar sus dispositivos$

    .or esto5 sería necesario crear títulos nicos @ue se pudiesen jugar en cada uno de los centenares de

    tel>onos móviles disponi*les en a@uel momento

    -ndic

    "

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    4/46

    Adaptación de videojuegos en dispositivos móviles

     Tabla de contenido

    1. Introducción.....................................................................32. Justifcación......................................................................4

    3. Objetivos..........................................................................5

    4. Caracterización del área en la que se articio...................5

    5. !roble"a a resolver..........................................................#

    #. $lcances % li"itaciones.....................................................#

    &. 'unda"ento teórico..........................................................&&.1 (erra"ientas utilizadas.........................................................&&.2 Consulta de )uentes de in)or"ación.....................................1*&.3 $o%o de las "aterias cursadas al elaborar el ro%ecto de residencias.................................................................................................12&.4 Concetos básicos del ro%ecto...........................................12

    +. !rocedi"iento % descrición de las actividades realizadas.14+.1 $,re,ando soorte ara la O- /ar en 0indle 'ire...............14+.3 I"le"entación de la elco"ecreen..................................1Para mayor un mayor detalle se incluye el código. (ver anexo A).............3#+.3 $,re,ando al videojue,o la caacidad de utilizar e)ectos !ost!rocess.................................................................................................3#

    . esultados.....................................................................44

    1*. Conclusiones.................................................................4411. /iblio,ra)6a..................................................................45

    B

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    5/46

    Adaptación de videojuegos en dispositivos móviles

    #. In&oducci(n

    ,l presente pro2ecto llamado adaptación de videojuegos en dispositivos móviles pretende llevar 

    videojuegos @ue han sido dise/ados originalmente para ejecutarse en el sistema operativo iS a

    dispositivos @ue utilicen Android$

    Los lenguajes utilizados para desarrollar en estas plataormas son dierentes5 por lo @ue es

    necesario @ue el código sea transormado de un lenguaje a otro$ ,n iS se programa en *jective C en

    conjunto con CDD 2 en Android se utiliza Java en conjunto con CDD$

    Las tareas de orma general a realizar para permitir la adaptación son las siguientes<

    • Llevar el código de *jective C a Java

    • Adaptar los recursosE#usica5 +raicosF de iS a Android

    !. Ju+i*icaci(n

    +amelot es una empresa internacional dedicada a desarrollar videojuegos para dispositivos

    móviles con un gran repertorio de videojuegos @ue actualmente est&n uncionando en dispositivos con

    Java 2 iS5 Con el o*jetivo de tener acceso a un ma2or mercado se necesita llevar los videojuegos

    desde una plataorma a otra$

    8

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    6/46

    Adaptación de videojuegos en dispositivos móviles

    /. O%0i1o+

    Adaptar videojuegos @ue actualmente se encuentran uncionando en iS a Android5

    consiguiendo un comportamiento lo m&s iel posi*le a la versión original$

    2. Ca&ac&i'aci(n dl á&a n la 3u + 4a&ici4o

    ,l pro2ecto ue realizado en +amelot S de 'L de C$V5 empresa @ue se dedica a crear 2 adaptar 

    videojuegos para dispositivos móviles$ Giene su sede central en ?rancia 2 cuenta con oicinas alrededor 

    de todo el mundo$ (entro de #>4ico se encuentra u*icada en #e4icali5 6aja Caliornia$ ,l pro2ecto se

    realizo en el departamento de .u*lishing$

    .u*lishing es una &rea en la @ue se desarrollan pro2ectos de los @ue se toma directamente la

    uente de iS 2 se comienza a adaptar desde cero5 no ha2 adaptaciones previas de el videojuegos$ Se le

    integran características e@uivalentes para Android de algunas caracteristicas como <

    • InA45illin< Capacidad de realizar compras dentro de la misma aplicación• IGP< Acceder a otros videojuegos dentro del mismo• Ad+< .u*licidad dentro del videojuego• In+all&< ,s el instalador para la plataorma Android• 6lco$Sc&n< ,s una pantalla de *ienvenida @ue de*e mostrarse una vez iniciado el

    videojuego @ue permite mostrar algunos anuncios$

    • OEM 5a&7 ,s una *arra @ue de*e mostrase *ajo ciertas circunstancias en la parte inerior del

     juego 2 permite salir de la aplicación$

    8. P&o%l$a a &+ol1&

    ,l pro2ecto cuenta con dierentes tipos de pro*lemas5 a continuación se ordenan los pro*lemas

    a resolver de ma2or a menor importancia<

    !

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    7/46

    Adaptación de videojuegos en dispositivos móviles

    • Amazon tiene una ta*leta llamada Hindle ?ire @ue tiene instalada una versión modiicada de

    Android 2 para aceptar una aplicación solicita @ue el videjuego muestre un men al inerior de

    la pantalla @ue inclu2e *otones para salir$

    • Los videojuegos mas recientes al ser lanzados de*en mostrar una ventana llamada

    elcomeScreen @ue permite mostrar algunos anuncios 2 llevar al usuario a algunas partes

    especiicas del videojuego5 como pueden ser la tienda o el men principal$

    • Las nuevas guias de +amelot solicitan @ue los juegos inclu2an la capacidad de tener eectos

    de .ost.rocess$

    9. Alcanc+ : li$iacion+

    ,l pro2ecto a*arcar& la adaptación del videojuego a la plataorma Android5 el juego de*e

    comportarse igual @ue en iS$

     %o se incluir& algn tipo de contenido e4tra ni se modiicara el dise/o del videojuego5 se

    limitara a hacer el comportamiento de el videojuego sea el mismo en am*as plataormas$

    ;.

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    8/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    9/46

    Adaptación de videojuegos en dispositivos móviles

    Android te provee de un nico modelo @ue te permite desarrollar tu aplicación 2 alcanzar

    milonens de usuarios a trav>s de dierentes dispositivos5 desde tel>onos a ta*letas$

    Android tam*i>n inclu2e herramientas para crear aplicaciones @ue se vean espectacular 2 tomen

    ventaja de la aceleración por hardKare disponi*les en cada dispositivo$ ,l adapta la interaz graica de

    tu aplicación autom&ticamente de la orma @ue luzca lo mejor posi*le en cada dispositivo al mismo

    tiempo @ue te deja tanto control como tu @uieras so*re la interaz graica entre dierentes dispositivos$

    ,ntre las herramientas disponi*les para Android se encuentra un entorno de desarrollo integrado

     para Java con características avanzadas para el desarrollo5 depuración 2 empa@uetado de las

    aplicaciones$ =sando el entorno de desarrollo puedes crear dispositivos virtuales @ue emulan cual@uier

    coniguración de hardKare$ E+oogle5 3013F

    And&oid SD 

    Android S(H son las siglas de Android SotKare (evelopment Hit$ ,s un -it de desarrollo con

    el @ue podremos desde desarrollar aplicaciones hasta ejecutar un emulador del sistema android en la

    version @ue @ueramos$ Ca*e decir @ue es imprescindi*le para eectuar acciones como el des*lo@ueo del

    arran@ue o utilizar el controlador ad*$ E+oogle5 3013F

    O4nGL

    @pen+L es una A.I independiente de la plataorma para el procesamiento de gr&icos en "($

    =na gran ventaja de utilizar pen+L es @ue es un est&ndar de la industria$ tros entornos en "( tienen

    características similares pero son especíicos de sistemas indoKs$

    ;

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    10/46

    Adaptación de videojuegos en dispositivos móviles

    pen+L inclu2e unciones relacionadas con te4to @ue son atendidas por pen+L =tilit2

    Gool-iE+L=GF5 el cual provee una orma interaz sencilla para controlar ventanas 2 gestionar eventos

    de entrada por el usuario$

    pen+L tiene dos propósitos esenciales<

    • cultar la complejidad de la interaz con las dierentes tarjetas gr&icas5 presentando al

     programador una A.I nica 2 uniorme$

    • cultar las dierentes capacidades de las diversas plataormas hardKare5 re@uiriendo @ue todas

    las implementaciones soporten la uncionalidad completa de pen+L Eutilizando emulación

    sotKare si uese necesarioF$

    ,l uncionamiento *&sico de pen+L consiste en aceptar primitivas tales como puntos5 líneas 2

     polígonos5 2 convertirlas en pí4eles$ ,ste proceso es realizado por una pipeline gr&ica conocida como

    #&@uina de estados de pen+L$7 La ma2or parte de los comandos de pen+L *ien emiten primitivas

    a la pipeline gr&ica o *ien coniguran cómo la pipeline procesa dichas primitivas$ Masta la aparición de

    la versión 3$0 cada etapa de la pipeline ejecuta*a una unción preijada5 resultando poco conigura*le

    E6uss5 300"F

     

    O4nGL SBadin Lanua

    pen+L Shading Lenguage inclu2e dos lenguajes relacionados$ ,sos lenguajes son usados

     para crear shaders para procesadores programa*les @ue cumplen las especiicaciones de pen+L$

    10

    http://es.wikipedia.org/wiki/Pipelinehttp://es.wikipedia.org/wiki/Pipeline

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    11/46

    Adaptación de videojuegos en dispositivos móviles

    • Verte4 .rocessor< ,s una unidad programa*le @ue tra*aja con los v>rtices 2 sus datos

    asociados$ Las unidades son programadas usando pen+L Shading Language para ser

    ejecutado en este procesador5 el resultado es llamado Verte4 Shader$

    • ?ragment .rocessor< ,s una unidad programa*le @ue tra*aja con los valores de los ragmentos 2

    sus datos asociados$ Las unidades son programadas usando pen+L Shading Language 2 son

    ejecutados en este procesador$ Cuando un un ?ragment Shader es compilado 2 enlazado se

    o*tiene como resultado un ?ragmetn Shader$ EHessenich5 300!F

    ;.! Con+ula d *un+ d in*o&$aci(n

    Algunas de las principales uentes de inormación @ue se utilizaron para avanzar en el pro2ecto

    son las siguientes<

    Sac O1&*lo

    11

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    12/46

    Adaptación de videojuegos en dispositivos móviles

    Imprescindi*le para todo programador de cual@uier lenguaje de programación$ ,s un sitio de

    internet gratuito @ue permite hacer preguntas 2 @ue sea la misma comunidad desarrolladora

    Edise/adores5 programadores5 analistas5 etc$F la @ue contesta esas dudas$ Acerca del pro2ecto se

    resolvieron gran parte de pro*lemas o dudas @ue la misma documentación de Android no hacía o no

    deja*an en claro5 por ejemplo manejo de *ase de datos5 uso de *arras de progreso5 declaraciones de

    nuevos componentes5 etc$

    GPU G$+,s una colección de artículos *astante interesante @ue cu*ren aspectos pr&cticos de t>cnicas de

     procesador de gr&icos en tiempo real$ Inclu2e tutoriales comprensi*les5 ejemplos de código 2 demos$

    Inicialmente se vendía como e4clusivamente como li*ro en ormato ísico pero en la actualidad se

     puede encontrar en ormato electrónico de orma totalmente gratuita$

    Ga$lo* DP

    +amelot (. es un sitio nuevo en el @ue los desarrolladores de todo el mundo @ue tra*ajan en

    +amelot pueden compartir su conocimiento con otros estudios$ Inclu2e documentación de las

    herramientas internas de la empresa 2 tutoriales mu2 interesantes$

    ;./ A4o:o d la+ $a&ia+ cu&+ada+ al la%o&a& l 4&o:co d &+idncia+La materia cursadas @ue mas tiles ueron al realizar el pro2ecto de residencias ueron

    .rogramación rientada a *jetos 2 +raicación$

    13

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    13/46

    Adaptación de videojuegos en dispositivos móviles

    P&o&a$aci(n O&inada a O%0o+

    La cantidad de código dentro del pro2ecto es demasiada5 por lo @ue llegar a una comprensión 2

     poder agregar 2 @uitar uncionalidad se re@uiere un solido conocimiento de programación orientada a

    o*jetos$

    G&a*icaci(n

    =na parte del pro2ecto consta de tra*ajar con procesamiento de im&genes en "(5 mejorar la

    calidad de los colores @ue se ven en los dispositivos5 de tal orma @ue se vean iguales en dierentes

     pantallas$ ,sta materia a2udo aportando conceptos @ue serian tiles al momento de tra*ajar con

    pen+L 2 pen+L Shading Language$

    ;.2 Conc4o+ %á+ico+ dl 4&o:co

     

    SBad&

    1"

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    14/46

    Adaptación de videojuegos en dispositivos móviles

    .rograma @ue se ejecuta en la tarjeta graica 2 permite realizar eectos so*re la imagen @ue se

    envía a la pantalla$

     

    T?u&a

    ,s un espacio de memoria @ue se utiliza para representar una imagen$

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    15/46

    Adaptación de videojuegos en dispositivos móviles

    . P&ocdi$ino : d+c&i4ci(n d la+ aci1idad+ &ali'ada+

    .# A&ando +o4o& 4a&a la OEM 5a& n indl

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    16/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    17/46

    Adaptación de videojuegos en dispositivos móviles

    android

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    18/46

    Adaptación de videojuegos en dispositivos móviles

      mTsInstance$getindoKEF$add?lagsE?LA+TS=.,'T?=LLSC',,%FX

     

    mTsInstance$getindoKEF$clear?lagsEindoK#anager$La2out.arams$?LA+T?'C,T%

    GT?=LLSC',,%FX

      [

      [FX

    [

     pu*lic static void ?ullScreenGoggleShoK6arEF

    Z

      mGhis$runn=iGhreadEneK 'unna*leEF

      Z

      Wverride

      pu*lic void runEF

      Z

      mTsInstance$getindoKEF$clear?lagsE?LA+TS=.,'T?=LLSC',,%FX

     

    mTsInstance$getindoKEF$add?lagsEindoK#anager$La2out.arams$?LA+T?=LLSC',

    ,%FX

      [

      [FX

    [

    endi 

    17

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    19/46

    Adaptación de videojuegos en dispositivos móviles

    E?4on& la *uncionalidad con JNI

    Los videojuegos est&n programados en su ma2or parte en CDD5 por lo @ue se re@uiere e4poner 

    los dos m>todos anterior deinidos con el in de ocultar o mostrar la ,# 6ar cuando el videojuego

    entre al men principal$ Se necesitan utilizar J%I para declarar el acceso a estos m>todos$

    i ?=LLSC',,%G++L,

    static jmethodI( m?ullScreenGoggleMide6arX

    static jmethodI( m?ullScreenGoggleShoK6arX

    endi 

    i ?=LLSC',,%G++L,

    void native?ullScreenGoggleMide6arEFX

    void native?ullScreenGoggleShoK6arEFX

    endi 

    i ?=LLSC',,%G++L,

    m?ullScreenGoggleMide6ar Q E\envF9+etStatic#ethodI( Eenv5mClass+ame5

    R?ullScreenGoggleMide6arR5 REFVRFX

    m?ullScreenGoggleShoK6ar Q E\envF9+etStatic#ethodI( Eenv5mClass+ame5

    R?ullScreenGoggleShoK6arR5 REFVRFX

    endi 

    i ?=LLSC',,%G++L,

    void native?ullScreenGoggleMide6arEF

    Z

      E\m,nvF9CallStaticVoid#ethodEm,nv5 mClass+ame5m?ullScreenGoggleMide6arFX

    1;

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    20/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    21/46

    Adaptación de videojuegos en dispositivos móviles

    ,l ormato de la dirección Ke* de*e contener datos como<

    • Identiicador del videojuego< Son B letras @ue identiican el videojuego

    •.aís< (esde el @ue se accede

    • Lenguaje< Idioma @ue tiene conigurado el dispositivo

    • =(I(< Identiicador nico del dispositivo

    • ?irmKare< La versión

    • Gipo< Si el dispositivo es un Android o iS

    Se pretende realizar una implementación gen>rica @ue pueda ser reutilizado en m&s de un

    videojuego$ La orma de comunicar el sitio Ke* 2 la aplicación es mediante enlaces en MG#L @ue

     permiten ejecutar comandos especíicos en el videojuego$ Los comandos validos son<

    • .la2< Lanza un videojuego instalado$

    • Lin-< Carga otro sitio$

    • ,4it< Cierra la elcomeScreen$

    • +oto< ,s enviado al videojuego5 se utiliza para redirigir a partes dentro del videojuego5 como a

    la tienda o al men$

    • #ar-et< A*re el #ar-et 2 muestra un videojuego @ue permite su descarga$

    • vnd$2outu*e< (escarga 2 muestra un video de UouGu*e$

    Codi*icaci(n d la 6lco$Sc&n

    SplashScreenActivit2$java$

     pac-age A..T.ACHA+,X

    import java$io$6uered'eaderX

    import java$io$InputStream'eaderX

    import java$util$\Ximport org$apache$http$Mttp'esponseX

    import org$apache$http$client$MttpClientX

    import org$apache$http$client$methods$Mttp+etX

    import org$apache$http$impl$client$(eaultMttpClientXimport android$app$Activit2X

    import android$content$Conte4tX

    31

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    22/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    23/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    24/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    25/46

    Adaptación de videojuegos en dispositivos móviles

    [

    iElang P 0 YY lang GOGTI+.TLA%+=A+,S$lengthFlang Q 0X

    displa2 Q EEindoK#anagerFgetS2stemServiceEI%(TS,'VIC,FF$get(eault(ispla2EFX

    SC'TM Q displa2$getMeightEFXSC'T Q displa2$getidthEFX

    mVieK Q neK 'elativeLa2outEthisFX

    me*VieK Q neK e*VieKEthisFX

    me*VieK$setMorizontalScroll6ar,na*ledEalseFX

    me*VieK$setVerticalScroll6ar,na*ledEalseFXme*VieK$set6ac-groundColorE0FX

    me*VieK$setInitialScaleE100FX

    me*VieK$getSettingsEF$setJavaScript,na*ledEtrueFX

    me*VieK$getSettingsEF$setAppCache,na*ledEalseFX

    me*VieK$getSettingsEF$setSupport)oom EalseFXme*VieK$getSettingsEF$set6uiltIn)oomControlsEalseFX

    me*VieK$getSettingsEF$setLoadithvervieK#odeEtrueFX

    me*VieK$getSettingsEF$set=seideVieK.ortEtrueFX

    NNme*VieK$getSettingsEF$set(eault)oomE)oom(ensit2$?A'FXNN

    NNme*VieK$getSettingsEF$setLa2outAlgorithmELa2outAlgorithm$SI%+L,

     TCL=#%FXNNme*VieK$setInitialScaleE1FX

    me*VieK$sete*VieKClientEneK gle*VieKClientEFFX

    Ke*idth Q EintFE0$7 \ SC'TFX

    Ke*Meight Q EintFE0$; \ SC'TMFX

    'elativeLa2out$La2out.arams lp Q neK'elativeLa2out$La2out.aramsEKe*idth5 Ke*MeightFX

    lp$add'uleE'elativeLa2out$C,%G,'TI%T.A',%GFX

    mVieK$addVieKEme*VieK5 lpFX

    setContentVieKEmVieKFX

    inal int lg Q langX

    neK GhreadEneK 'unna*leEFZ

    38

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    26/46

    Adaptación de videojuegos en dispositivos móviles

     pu*lic void runEF

    ZstartSplashElg5 ++CT+A#,TC(,FX

    [[F$startEFX

    gIs'unning Q trueX

    NN Set orientation

    this$set'e@uestedrientationE+L3J%ILi*$sldrientationG2peFX

    setVolumeControlStreamEAudio#anager$SG',A#T#=SICFX NN6=+ ?IO?' 8037!15 A+S6 1!N08N3013

    [

    void startSplashEint lang5 String gameTcodeFZ

    currentLanguage Q langX

    String =(I( Q get=ni@ueI(EFX

    NN Some protot2pe device canbt get device id5 and return null$iE=(I( QQ nullF

    Z

    =(I( Q R+L?GT,#=T001RX

    [(6+ERS.LASMTSC',,%R5 R=(I( Q R D =(I(FX

    String countr2 Q java$util$Locale$get(eaultEF$getCountr2EFX(6+ERS.LASMTSC',,%R5Rdevice settings detected$$"RFX

    String deviceG2pe Q 6uild$#A%=?ACG=','DRTRD6uild$#(,LX

    String device? Q 6uild$V,'SI%$',L,AS,X

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALSTG,#.LAG,X

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceERV,'SI%R5

    +A#,TV,'SI%T%A#,FXHTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceERLA%+R5

    GOGTI+.TLA%+=A+,S_currentLanguage`FX

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceERC=%G'UR5countr2FX

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceER?'#R5

    gameTcodeFXHTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceER(,VIC,R5

    deviceG2peFX

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceER?I'#A',R5device?FX

    3!

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    27/46

    Adaptación de videojuegos en dispositivos móviles

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceER=(I(.M%,R5

    =(I(FX

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS D R^KidthQR DEKe*idth 9 10FX

    HTLI%HTG.(,ALS Q HTLI%HTG.(,ALS$replaceAllER R5 RRFX

    String response Q getMttp'esponseEHTLI%HTG.(,ALS D R^chec-Q1RFX

    (6+ERS.LASMTSC',,%R5Rresponse< R D responseFX

    i Eresponse Q nullF

    Z

    i Eresponse$e@ualsER1RFFme*VieK$load=rlEHTLI%HTG.(,ALSFX

    else

    Zuser,4it Q trueX NN6=+ ?IO ?' 8081B7!5 A+S6

    3"N08N3013

    closeSplashEFX[

    [

    else

    Zuser,4it Q trueX NN6=+ ?IO ?' 8081B7!5 A+S6 3"N08N3013

    closeSplashEFX

    [[

    void closeSplashEFZ

    tr2

    Z

    SplashScreenActivit2$gIs'unning Q alseXinishEFX

    NNIntent intent Q neK IntentESplashScreenActivit2$this5

    CLASST%A#,$classFXNNstartActivit2EintentFX

    mVieK$removeVieKEme*VieKFX

    [ catch E,4ception eFZ

    (6+T,OC,.GI%EeFX

    [[

    3

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    28/46

    Adaptación de videojuegos en dispositivos móviles

    Wverride pu*lic void on6ac-.ressedEF

    Z closeSplashEFX[

     private void startUoutu*eEString urlFZ

    NN deault 2outu*e app

    Intent i Q neK IntentEIntent$ACGI%TVI,5 =ri$parseEurlFFXListP'esolveIno list Q get.ac-age#anagerEF$@uer2IntentActivitiesEi5

    .ac-age#anager$#AGCMT(,?A=LGT%LUFX

    i Elist$sizeEF QQ 0F

    Z NN deault 2outu*e app not present or doesnbt conorm to the standard

    Ke -noK

    NN use the Ke* *roKser i Q neK IntentEIntent$ACGI%TVI,5

    =ri$parseERhttp

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    29/46

    Adaptación de videojuegos en dispositivos móviles

     pu*lic void Launch.ac-ageEString urlF

    Ztr2

    Z Intent intent Q neK IntentEIntent$ACGI%T#AI%FX.ac-age#anager manager Q get.ac-age#anagerEFX

    intent Q manager$getLaunchIntent?or.ac-ageEurlFX

    intent$addCategor2EIntent$CAG,+'UTLA=%CM,'FXstartActivit2EintentFX

    [

    catch E,4ception eFZ

    (6+T,OC,.GI%EeFX

    [

    [

     private class gle*VieKClient e4tends e*VieKClient

    Z *oolean has,rror Q alseX

     pu*lic void pen6roKserEString urlFZ

    iEurl QQ null YY url$lengthEF PQ 0F

    returnX

    tr2

    Z

    Intent intent Q neK IntentEIntent$ACGI%TVI,5=ri$parseEurlFFX

    startActivit2EintentFX

    [catch E,4ception eF

    Z

    (6+T,OC,.GI%EeFX

    [[

    Wverride pu*lic *oolean shouldverride=rlLoadingEe*VieK vieK5 String urlF

    Z

    (6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\shouldverride=rlLoadingEF\\\\\\\\\\\\\\\\\\\\RFX

    (6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\ url< R D url D R

    \\\\\\\\\\\\\\\\\\\\RFXuser,4it Q trueX

    3;

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    30/46

    Adaptación de videojuegos en dispositivos móviles

    iEurl$startsithERpla2

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    31/46

    Adaptación de videojuegos en dispositivos móviles

    Z

    vieK$load=rlEurlFXreturn trueX

    [

    i =S,T#A'H,GTI%SGALL,' 

    iEurl$startsithERmar-et

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    32/46

    Adaptación de videojuegos en dispositivos móviles

    [

    elseZ

    i I+.TSHGiEEurl$inde4ERSHG#A'H,GRFQQ 91FYYEurl$inde4ERgameinormationRFQ 91FYYEurl$inde4ERinde4$phpRFQ 91FF NN pen lin-

    Kithout containing SHG#A'H,G

    endi Z

    NNvieK$load=rlEurlFX

    pen6roKserEurlFX[

    [

    return trueX[

     *oolean timeout Q trueXWverride

     pu*lic void on.ageStartedEe*VieK vieK5 String url5 6itmap aviconF

    Z(6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\

    on.ageStartedEF\\\\\\\\\\\\\\\\\\\\RFX

    (6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\ url< R D url D R

    \\\\\\\\\\\\\\\\\\\\RFX

    neK GhreadEneK 'unna*leEF Z

    Wverride pu*lic void runEF Z

    tr2 Z

    Ghread$sleepE3000FX[ catch EInterrupted,4ception eF Z

    e$printStac-GraceEFX

    [

    iEtimeoutFZ

    user,4it Q trueX

    closeSplashEFX[

    [

    [F$startEFX[

    Wverride pu*lic void on.age?inishedEe*VieK vieK5 String urlF

    "3

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    33/46

    Adaptación de videojuegos en dispositivos móviles

    Z

    (6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\on.age?inishedEF\\\\\\\\\\\\\\\\\\\\RFX

    (6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\ url< R D url D R\\\\\\\\\\\\\\\\\\\\RFX

    i Ehas,rrorF

    Z(6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\ has,rror

    \\\\\\\\\\\\\\\\\\\\RFX

    user,4it Q trueXcloseSplashEFX

    [

    has,rror Q alseXtimeout Q alseX

    [

    Wverride

     pu*lic void on'eceived,rror Ee*VieK vieK5 int errorCode5 String

    description5 String ailing=rlFZ

    has,rror Q trueX

    user,4it Q trueX

    (6+ERS.LASMTSC',,%R5 R\\\\\\\\\\\\\\\on'eceived,rror<\\\\\\\\\\\\\\\R D descriptionFX

    [

    [X

     pu*lic String getMttp'esponseEString 'e@uest=rlF

      Z  String responseTte4t Q nullX

    6uered'eader streamTin Q nullX

    tr2

    ZMttpClient clientQ neK (eaultMttpClientEFX

    Mttp+et re@uest Q neK Mttp+etE'e@uest=rlFX

    Mttp'esponse response Q client$e4ecuteEre@uestFXstreamTin Q neK 6uered'eader EneK

    InputStream'eaderEresponse$get,ntit2EF$getContentEFFFX

      String6uer *uer Q neK String6uerERRFX  String line Q RRX

      Khile EEline Q streamTin$readLineEFF Q nullF

      Z  *uer$appendElineFX

    ""

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    34/46

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    35/46

    Adaptación de videojuegos en dispositivos móviles

    NN N\ I device has A%('I(TI(5 use it \NdeviceI( Q getAndroidI(EFX

    iEdeviceI( Q nullFreturn deviceI(X

      return deviceI(X

      [

     pu*lic String getI#,IEF

    ZString Imei Q nullX

    tr2

    Z

    Gelephon2#anager deviceIno QEGelephon2#anagerFthis$getApplicationConte4tEF$getS2stemServiceEConte4t$G,L,.M%

    UTS,'VIC,FX

    Imei Q deviceIno$get(eviceIdEFXi EImei$lengthEF 0F

    return ImeiX

    [catch E,4ception eF Z[

    return nullX

    [

     pu*lic String getSerialEF

    Z

    String serial Q nullXi 6=IL(T?'T?I'#A',T1T!

    iE6uild$V,'SI%$S(HTI%G Q

    6uild$V,'SI%TC(,S$+I%+,'6',A(FZ

     serial Q android$os$6uild$S,'IALX

    [

    endi i Eserial Q Run-noKnRF

    return serialX

    return nullX

    [

     pu*lic String getSerial%oEF

    ZString serial Q nullX

    "8

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    36/46

    Adaptación de videojuegos en dispositivos móviles

    tr2

    ZClassP] c Q Class$or%ameERandroid$os$S2stem.ropertiesRFX

     java$lang$relect$#ethod get Q c$get#ethodERgetR5 String$classFXserial Q EStringF get$invo-eEc5 Rro$serialnoRFXiEserial$lengthEF 0 ^^ serial Q Run-noKnRF

     return serialX

    [ catch E,4ception eF Z[

    return nullX

    [

     pu*lic String getAndroidI(EF

    Z

    String AndroidI( Q nullXAndroidI( Q

    Secure$getStringEthis$getApplicationConte4tEF$getContent'esolverEF5

    Secure$A%('I(TI(FXiEAndroidI($lengthEF 0F

    return AndroidI(X

    return nullX

    [

     pu*lic String get#acEFZ

    tr2Z

    String mac Q nullXii#anager Kii#gr Q

    Eii#anagerFthis$getApplicationConte4tEF$getS2stemServiceEConte4t$I?ITS,'VIC,FX

    mac Q Kii#gr$getConnectionInoEF$get#acAddressEFXi Emac Q null ^^ mac$lengthEF 0F

    return mac$replaceAllER

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    37/46

    Adaptación de videojuegos en dispositivos móviles

    ?igura 3

    .ara ma2or un ma2or detalle se inclu2e el código$ Ever ane4o AF

    ./ A&ando al 1ido0uo la ca4acidad d uili'a& *co+ Po+P&oc++

    "

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    38/46

    $enerar un

    %&'

    Dibu(aren la

    textura

    Activarel

    )*ader

    Dibu(arla

    textura

    Adaptación de videojuegos en dispositivos móviles

    Los eectos de .ost9.rocess permiten agregar al videojuego Shaders @ue permiten modiicar los

    colores del videojuego5 con esto se pueden lograr dierentes eectos como utilizar desplegar todo en

    escala a grises 2 hacer algunas correcciones de color5 incrementar contraste5 reducir iluminación5 etc$

    Los pasos necesarios para implementarlos se pueden o*servar en la ?igura "$

    ?igura "

    Gn&a& un s di*ujarlo en pantalla aplicando el Shader$

    Rnd&Mana&.c44

    ide .SGT.'C,SS

    NN Lindor 9 .ost process eect

    e4tern const char \ccVShaderX

    e4tern const char \cc?ShaderX

    NN ?rame *uer 

    +Luint *o5 *oTte4ture5 r*oTdepthX

    +Luint v*oT*oTverticesX

    "7

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    39/46

    Adaptación de videojuegos en dispositivos móviles

    +Luint programTpostproc Q 05 attri*uteTvTcoordTpostproc5 uniormT*oTte4tureX

    +Luint vs5sX

    endi 

    ide .SGT.'C,SS

    N\ Ge4ture \N

      glActiveGe4tureE+LTG,OG=',0FX

      gl+enGe4turesE15 ^*oTte4tureFX

      gl6indGe4tureE+LTG,OG=',T3(5 *oTte4tureFX

      glGe4.arameteriE+LTG,OG=',T3(5 +LTG,OG=',T#A+T?ILG,'5 +LTLI%,A'FX

      glGe4.arameteriE+LTG,OG=',T3(5 +LTG,OG=',T#I%T?ILG,'5 +LTLI%,A'FX

      glGe4.arameteriE+LTG,OG=',T3(5 +LTG,OG=',T'A.TS5

    +LTCLA#.TGT,(+,FX

      glGe4.arameteriE+LTG,OG=',T3(5 +LTG,OG=',T'A.TG5

    +LTCLA#.TGT,(+,FX

    glGe4Image3(E+LTG,OG=',T3(5 05 +LT'+6A5 gTscreenidth5

    gTscreenMeight5 05 +LT'+6A5 +LT=%SI+%,(T6UG,5 %=LLFX

      gl6indGe4tureE+LTG,OG=',T3(5 0FX

     

    N\ (epth *uer \N

      gl+en'ender*uersE15 ^r*oTdepthFX

      gl6ind'ender*uerE+LT',%(,'6=??,'5 r*oTdepthFX

    gl'ender*uerStorageE+LT',%(,'6=??,'5 +LT(,.GMTC#.%,%G1!5

    gTscreenidth5 gTscreenMeightFX

    ";

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    40/46

    Adaptación de videojuegos en dispositivos móviles

      gl6ind'ender*uerE+LT',%(,'6=??,'5 0FX

     

    N\ ?rame*uer to lin- ever2thing together \N

      gl+en?rame*uersE15 ̂ *oFX

      gl6ind?rame*uerE+LT?'A#,6=??,'5 *oFX

      gl?rame*uerGe4ture3(E+LT?'A#,6=??,'5 +LTCL'TAGGACM#,%G05

    +LTG,OG=',T3(5 *oTte4ture5 0FX

      gl?rame*uer'ender*uerE+LT?'A#,6=??,'5 +LT(,.GMTAGGACM#,%G5

    +LT',%(,'6=??,'5 r*oTdepthFX

      +Lint statusX

      i EEstatus Q glChec-?rame*uerStatusE+LT?'A#,6=??,'FF Q

    +LT?'A#,6=??,'TC#.L,G,F Z

    G'AC,ERglChec-?rame*uerStatus< error pR5 statusFX

    returnX

    [

      gl6ind?rame*uerE+LT?'A#,6=??,'5 0FX

    +Lloat *oTvertices_` Q Z

      915 915

      15 915

      915 15

      15 15

      [X

    B0

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    41/46

    Adaptación de videojuegos en dispositivos móviles

      gl+en6uersE15 ̂ v*oT*oTverticesFX

      gl6ind6uerE+LTA''AUT6=??,'5 v*oT*oTverticesFX

      gl6uer(ataE+LTA''AUT6=??,'5 sizeoE*oTverticesF5 *oTvertices5

    +LTSGAGICT('AFX

      gl6ind6uerE+LTA''AUT6=??,'5 0FX

    i EEvs Q createTshaderEccVShader5 +LTV,'G,OTSMA(,'FF QQ 0F returnX

    i EEs Q createTshaderEcc?Shader5 +LT?'A+#,%GTSMA(,'FF QQ 0F returnX

    +Lint lin-To-5 validateTo-X

      programTpostproc Q glCreate.rogramEFX

      glAttachShaderEprogramTpostproc5 vsFX

      glAttachShaderEprogramTpostproc5 sFX

      glLin-.rogramEprogramTpostprocFX

      gl+et.rogramivEprogramTpostproc5 +LTLI%HTSGAG=S5 ̂ lin-To-FX

      i Elin-To-F Z

      G'AC,ERglLin-.rogram

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    42/46

    Adaptación de videojuegos en dispositivos móviles

      [

      char \attri*uteTname Q RvTcoordRX

      attri*uteTvTcoordTpostproc Q gl+etAttri*LocationEprogramTpostproc5 attri*uteTnameFX

      i Eattri*uteTvTcoordTpostproc QQ 91F Z

      G'AC,ERCould not *ind attri*ute snR5 attri*uteTnameFX

      returnX

      [

      char \uniormTname Q RsGe4tureRX NN Ge4ture sampler3(

      uniormT*oTte4ture Q gl+et=niormLocationEprogramTpostproc5 uniormTnameFX

      i EuniormT*oTte4ture QQ 91F Z

      G'AC,ERCould not *ind uniorm snR5 uniormTnameFX

      returnX

      [

    NN[

    endi 

    Di%u0a& n la ?u&a

    =na vez creado el ?6 se activa para @ue lo @ue se di*uje a continuación no sea mostrado en

     pantalla5 realizando todas las operaciones sólo en memoria$

    B3

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    43/46

    Adaptación de videojuegos en dispositivos móviles

    Rnd&Mana&.c44

    void 'ender#anager

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    44/46

    Adaptación de videojuegos en dispositivos móviles

    Rnd&Mana&.c44

      gl,na*leVerte4Attri*Arra2Eattri*uteTvTcoordTpostprocFX

      gl6ind6uerE+LTA''AUT6=??,'5 v*oT*oTverticesFX

      glVerte4Attri*.ointerE

      attri*uteTvTcoordTpostproc5 NN attri*ute

      35 NN num*er o elements per verte45 here E452F

      +LT?LAG5 NN the t2pe o each element

      +LT?ALS,5 NN

    05 NN e4tra data *etKeen each position

      0 NN oset o irst element

      FX

      gl(raKArra2sE+LTG'IA%+L,TSG'I.5 05 BFX

      gl(isa*leVerte4Attri*Arra2Eattri*uteTvTcoordTpostprocFX

    gl6ind6uerE+LTA''AUT6=??,'5 0FX

    .ara ma2or detalle se inclu2e el código$ Ever ane4o 6F

    . R+ulado+

    Como resultados se o*tuvo un videojuego @ue corre en Android 2 cumple con los re@uisitos

    necesarios$ ,l videjuego unciona en Android 2 tiene implementadas las mismas características @ue su

    e@uivalente en iS$

    BB

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    45/46

    Adaptación de videojuegos en dispositivos móviles

    #". Conclu+ion+

    'ealizar la adaptación de un videojuego de una plataorma a otra es una tarea @ue re@uiere

    esuerzo 2 dedicación$ ,s importante tener una comunicación eectiva con los dem&s personas @ue

    tra*ajan en el pro2ecto para garantizar @ue no se hace el mismo tra*ajo dos veces 2 a2udarse

    mutuamente$

    ##. 5i%lio&a*Ka

    6uss5 S$ '$ E300"F$ 3D Computer Graphics. San (iego5 Caliornia< Cam*ridge =niversit2 .ress$

    +oogle$ E3013F$ Android, la plataforma móvil mas popular en el mundo. *tenido de (evelopers<http

  • 8/19/2019 Informe Tecnico para adaptador de videojuegos en dispositivos móviles

    46/46

    Adaptación de videojuegos en dispositivos móviles

    #icrosot Corporation$ E3010F$ Visual Studio$ *tenido de Los productos de Visual Studio 3010<

    http