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
Top Related