scieee Science in your language
[Es] (orig)

Desarrollo de un videojuego empleando RT-DESK con XNA y C#

Abstract

Mediante la creación de un videojuego y su adaptación a la tecnología RT-DESK, basada en la simulación discreta de eventos y creada en la universidad politécnica de Valencia, se ha buscado tanto formarse en la creación de los mismos como en contribuir a la investigación de la nueva tecnología y su aplicación a los videojuegos. La descripción del trabajo realizado en la programación del videojuego y que se encuentra en esta memoria puede servir de ayuda para aquellos que tengan intención de iniciarse en la creación de videojuegos. Por su parte, la posterior adaptación a la tecnología RT-DESK y el análisis comparativo entre ambas versiones del videojuego han revalidado la capacidad de dicha tecnología y sus posibilidades frente al bucle principal convencional.

Read accessible full text

Desarrollo de un videojuego empleando RT-DESK con XNA y C#

Author: Torres Martínez, Carlos
Publisher: Universitat Politècnica de València
Year: 2015
Source: https://riunet.upv.es/bitstream/10251/55230/1/Memoria.pdf
Escuela Técnica Supe io de Ingenie ía In o má ica
Uni e sidad Poli écnica de Valencia
Desa ollo de un ideojuego
empleando RT-DESK con XNA y C#
P oyec o inal de ca e a
Licencia u a en ingenie ía in o má ica
Sep iemb e 2015
Au o : Ca los To es Ma ínez
Di ec o : Ramón Mollá Vayá
2
A odos los que han omen ado y apoyado
mi pasión po los ideojuegos.
3
Índice
Resumen ................................................................................................................................... 5
Es uc u a de la memo ia........................................................................................................... 6
In oducción ............................................................................................................................... 7
¿Qué es un ideojuego?..................................................................................................... 7
La indus ia del ideojuego ................................................................................................. 8
El auge del ideojuego independien e................................................................................. 9
Obje i o.................................................................................................................................10
C eación de un ideojuego ................................................................................................10
Po a la ecnología RT-DESK............................................................................................10
Mo i ación.............................................................................................................................10
Me odología ..........................................................................................................................11
Es ado del a e..........................................................................................................................13
Es ado del a e..........................................................................................................................13
El bucle p incipal ...................................................................................................................13
Mo o es y lib e ías.................................................................................................................14
P eceden es, el géne o shoo ‘em up ....................................................................................15
Análisis .....................................................................................................................................16
Requisi os .............................................................................................................................16
Plani icación empo al ...........................................................................................................17
Tecnología escogida..........................................................................................................18
O as he amien as ............................................................................................................19
Diseño ......................................................................................................................................22
Diseño UML...........................................................................................................................22
Menú p incipal.......................................................................................................................23
Implemen ación.........................................................................................................................24
Ca ga de asse s ....................................................................................................................24
Sp i es...................................................................................................................................25
Sp i e shee ........................................................................................................................25
Dibujado de sp i es ............................................................................................................26
O den de dibujado .............................................................................................................27
Colo key............................................................................................................................27
Animación..........................................................................................................................27
P oblema al dibuja sp i es: A e ac os...............................................................................29
Ges ión de la en ada ............................................................................................................30
Colisiones..............................................................................................................................32
Pe sonaje con olado po el jugado ......................................................................................33
Desplazamien o.................................................................................................................33
Dispa o ..............................................................................................................................33
Escudos, abso ción y sob ecalen amien o.........................................................................34
Tele anspo e....................................................................................................................34
Somb a..............................................................................................................................35
Fondos..................................................................................................................................36
4
Mapa de iles .....................................................................................................................36
Animación..........................................................................................................................37
Lec u a de un ondo de iche o...........................................................................................37
Fondo p ocedu al...............................................................................................................37
Ni eles ..................................................................................................................................39
Ni el p ocedu al.................................................................................................................39
Ni el c eado a mano..........................................................................................................39
Subsis ema de audio.............................................................................................................40
AudioManage ...................................................................................................................41
E ec o de ade....................................................................................................................42
Cadencia de sonidos .........................................................................................................43
Menús ...................................................................................................................................44
Diseño ...............................................................................................................................44
Fuen e ...............................................................................................................................45
Simulación disc e a desacoplada..............................................................................................46
RT-DESK ..............................................................................................................................46
E olución de RT-DESK......................................................................................................46
Funciones p incipales ........................................................................................................47
El bucle p incipal en RT-DESK..............................................................................................47
Acople de RT-DESK y XNA...................................................................................................48
Adap ación C# y C++.........................................................................................................48
Adap ación de la clase Game ............................................................................................48
P uebas.................................................................................................................................49
En o no de p uebas ...........................................................................................................49
Diseño de las p uebas .......................................................................................................49
Resul ados.........................................................................................................................50
Conclusiones ............................................................................................................................52
Relación del abajo con es udios cu sados...........................................................................52
T abajos u u os........................................................................................................................54
Ag adecimien os .......................................................................................................................55
Glosa io ....................................................................................................................................56
Fuen es.....................................................................................................................................57
Anexo A: GDD ..........................................................................................................................58
5
Resumen
Median e la c eación de un ideojuego y su adap ación a la ecnología RT-DESK, basada en la
simulación disc e a de e en os y c eada en la uni e sidad poli écnica de Valencia, se ha
buscado an o o ma se en la c eación de los mismos como en con ibui a la in es igación de
la nue a ecnología y su aplicación a los ideojuegos.
La desc ipción del abajo ealizado en la p og amación del ideojuego y que se encuen a en
es a memo ia puede se i de ayuda pa a aquellos que engan in ención de inicia se en la
c eación de ideojuegos.
Po su pa e, la pos e io adap ación a la ecnología RT-DESK y el análisis compa a i o en e
ambas e siones del ideojuego han e alidado la capacidad de dicha ecnología y sus
posibilidades en e al bucle p incipal con encional.

6
Es uc u a de la memo ia
En p ime luga se puede encon a una in oducción al p oyec o, donde se desc ibe
b e emen e y jus i ica su desa ollo y la mo i ación de ás del mismo, además de desc ibi el
con ex o en el que se ealiza y acla a algunos concep os básicos y necesa ios pa a la
comp ensión de los siguien es apa ados.
A con inuación se analiza el es ado del a e, an o de los ideojuegos como de la c eación de
los mismos y las ecnologías que los apoyan, así como los p eceden es que sen a on las bases
y ue on inspi ación del p oyec o.
En el apa ado de análisis se analiza el p oblema y se plani ica el abajo que conlle a y hab á
que ealiza , así como una jus i icación de las he amien as a usa .
En el siguien e apa ado, implemen ación, se de allan las di e en es soluciones lle adas a
cabo pa a las di e en es pa es del ideojuego.
En RT-DESK se a a la segunda pa e del p oyec o, la adap ación a RT-DESK, donde se
explica de qué a a la ecnología así como el p oceso ealizado al adap a el juego a la nue a
ecnología, y además se apo a un análisis compa a i o en e ambas e siones.
Pa a acaba , en conclusiones se encuen an la alo ación y conside aciones inales, an o
ace ca del abajo ealizado como de la u ilidad de las ecnologías usadas y su aplicación en
u u os p oyec os.
La memo ia se cie a con un pequeño glosa io, la bibliog a ía consul ada y el documen o de
diseño de juego, anexo A, del ideojuego implemen ado.
7
In oducción
¿Qué es un ideojuego?
Un ideojuego (A eces ab e iado simplemen e como “juego”) es un juego elec ónico en la
que el jugado , a pa i de una in o mación p incipalmen e isual y sono a, oma decisiones y
las ansmi e median e un disposi i o de en ada.
La c eación de un ideojuego es á muy elacionada con a es como la música, la pin u a o la
esc i u a, pe o es esa in e acción en e juego y el jugado la que lo de ine y di e encia del es o
de medios de exp esión.
Lanzado po la compañía Nin endo pa a la consola NES en 1988,
Supe Ma io B os. 3 se a a de uno de los ideojuegos de mayo éxi o.
8
La indus ia del ideojuego
El o igen de los ideojuegos se emon a a la década de los cincuen a, pe o no ue has a los
se en a cuando el descenso en los cos es del ha dwa e pe mi ió su come cialización y
expansión en e el público, p opiciando la c eación de una indus ia y su desa ollo.
Además de unciona sob e o denado es pe sonales, su gie on ideoconsolas, sis emas
ce ados pensados pa a la ejecución de ideojuegos, lo cual pe mi ió an o educi los cos es
de ab icación y en a de los sis emas, así como acili a su uso, ace cando los ideojuegos a
un mayo núme o de pe sonas.
De en e las di e en es indus ias en ocadas al en e enimien o, los ideojuegos ha sido la que
más ha c ecido en los úl imos años, llegando a supone un olumen de negocio supe io al del
es o de indus ias
1
. Po o o lado, la llegada y expansión del sec o mó il y el ideojuego social
ha hecho que la can idad de clien es po enciales aumen e d ás icamen e, y las nue as
gene aciones nacen y c ecen conociendo el concep o de ideojuego.
Así pues, es amos en un pun o en el que los ideojuegos se han con e ido en un medio de
exp esión y una o ma de ocio eno memen e acep ada y ex endida.
Miles de millones en en as de ideojuegos en Es ados Unidos
2
.
El diseño de ideojuegos ha es ado in luenciado po las limi aciones que imponía la ecnología
de cada época, como limi aciones de memo ia o de p ocesamien o. El a ance ecnológico ha
ido acabando con dichas limi aciones y pe mi iendo, po ejemplo, el sal o de los ideojuegos en
2d a los 3d. El mayo de alle en la ec eación que la ecnología a pe mi iendo es á
es echamen e elacionado con los cos es de desa ollo necesa ios pa a ap o echa la, los
cuales se han is o inc emen ados de o ma d ás ica
3
.
1 h p://www. as company.com/3021008/why- ideo-games-succeed-whe e- he-mo ie-and-music-
indus ies- ail
2 h p://www. heesa.com/wp-con en /uploads/2015/04/ESA-Essen ial-Fac s-2015.pd
3 h p://ko aku.com/how-much-does-i -cos - o-make-a-big- ideo-game-1501413649
9
El auge del ideojuego independien e
Si bien el aumen o en los cos es que suponía desa olla pa a una ecnología más a anzada
p opició, en las décadas de los ochen a, no en a y el nue o siglo, que cada ez más pequeñas
emp esas no pudiesen compe i en el sec o come cial, ha sido ese mismo a ance en las
ecnologías, de comunicaciones en es e caso, lo que pe mi ió la c eación de webs donde colga
juegos (Newg ounds, Kong ega e, e c.) aunque con escasa o nula epe cusión come cial, y
pos e io men e pla a o mas de dis ibución y en a digi al, las cuales han pe mi ido disminui
esos cos es de dis ibución y llega a un mayo público, así como da le a los desa ollado es
más pequeños la posibilidad de dis ibui come cialmen e sus juegos, dando luga a un nue o
auge del ideojuego independien e.
Algunas de las p ime as pla a o mas de dis ibución digi al de ideojuegos ue on S eam
4
,
c eada po la compañía Val e en el año 2004, o el se icio Xbox Li e A cade pa a consolas de
Mic oso .
El auge del ideojuego independien e y su p esencia en la p ime a línea de la indus ia ha
omen ado an o la inno ación como la ecupe ación de di e en es ipos de ideojuegos que se
ue on dejando a ás según la ecnología a anzaba, debido a la mayo opo unidad de es os de
encon a su público y al meno iesgo económico que supone lanza un juego en una
pla a o ma de dis ibución digi al.
Ca e S o y, c eado po Pixel
5
en el 2004, se a a de uno de los p ime os
y mejo alo ados juegos de es e nue o auge del ideojuego independien e.
4 h p://s o e.s eampowe ed.com/
5 h p://s udiopixel.saku a.ne.jp/
16
Análisis
Requisi os
Los equisi os que debe cumpli el p oyec o son:
 Ges ión de los g á icos.
El juego debe á ca ga los asse s g á icos que se usa an en el juego, así como con ola
la co ec a isualización y animación de es os.
 Subsis ema de con ol de Audio.
Debe pe mi i ges iona los e ec os y la música y pe mi i con ola su ep oducción
(Rep oduci , pausa , co a , aplica e ec os de undido y con ola la epe ición de
sonidos.)
 Subsis ema de con ol de la en ada.
Debe p o ee de un con ol y ges ión de los disposi i os de en ada usados en el juego,
mando y eclado, pa a acili a el manejo de la in e acción del jugado .
 Menús.
Implemen a un sis ema pa a in oduci un menú de juego con di e en es pan allas y
di e en es opciones, así como pe mi i hace uso del mismo APRA cambia di e en es
ca ac e ís icas del juego (como pod ía se el idioma, el ni el a juga , e c.).
 Ges ión de pan allas de a anque.
P o ee de un sencillo sis ema que pe mi a con ola las pan allas de a anque del
juego, ya sea pa a mos a el nomb e del es udio c eado , de las ecnologías empleadas
y demás in o mación necesa ia.
 Ges ión de pun uaciones.
Como en la mayo ía de juegos del géne o, la compe ición en e jugado es po alcanza
las máximas pun uaciones es uno de los pun os ue es que in i a a ejuga y mejo a .
El juego pe mi i á in oduci a los jugado es su pun uación, si es a se encuen a en e
las diez mejo es, así como sus iniciales. Además, el menú de opciones con a á con una
opción pa a ese ea la abla.
 Pe sonaje p incipal.
El pe sonaje p incipal pod á mo e se lib emen e en cualquie di ección usando el s ick
analógico del mando, lo cual es un pun o ue e espec o al mo imien o disc e izado a 8
di ecciones de o os juegos, especialmen e en PC al es a pensados pa a se jugados
median e un eclado y que el mayo núme o de pe sonas puedan juga lo. También
pod á dispa a en di e en es di ecciones, no solo en una como es habi ual, y es a
di ección de dispa o se á independien e de la di ección del mo imien o de la na e,
como se puede e en juegos como Geome y Wa s o Smash TV.
 Ges ión de enemigos e inclui di e en es ipos.
 Ges ión de dispa os e inclui di e en es ipos.
 Fondos y ges ión de es os.
No an o po una decisión de diseño como po el ánimo de ap ende , el juego con a á
con al menos dos ipos de ondos, uno c eado a pa i de un mapa de iles y o o
gene ado p ocedu almen e.
 Ges ión de ni eles.

17
El juego con a á con di e en es ases y je es, el jugado pod á juga los en o den en el
modo his o ia o selecciona uno de ellos en el modo de p ueba. Se ha incluido es á
opción pa a acili a mos a el abajo ealizado en el PFC a aquellas pe sonas que no
cuen en con la habilidad o el iempo su icien e pa a a anza en el modo his o ia.
Pa a más de alle sob e los equisi os del ideojuego consul a el GDD en el Anexo A.
En cuan o a equisi os ecnológicos, básicamen e se necesi a que la ecnología escogida como
base del juego debe de se compa ible con RT-DESK.
Plani icación empo al
La plani icación empo al ealizada a pa i de los equisi os del juego así como de las ases
necesa ias en la c eación de un ideojuego:
18
No a: Aunque no es á indicado en el diag ama y como se ha mencionado an e io men e,
du an e los meses an e io es se ealiza on una se ie de p o o ipos que concluye on con un
b ains o ming inal pa a decidi qué en aba y qué no y la desc ipción inal del ideojuego en un
GDD.
Diag ama de Gan .
He amien as
Tecnología escogida
A la ho a de escoge la ecnología que se i ía de base al ideojuego se u ie on en men e una
se ie de conside aciones:
Pa i de un ni el más bajo usando lib e ías como XNA o SDL pa a cons ui uno mismo la base
sob e la que unciona del ideojuego iene dos p incipales en ajas: El mejo ap endizaje del
uncionamien o in e no de un ideojuego y la libe ad que o ece no es a limi ado a las
posibilidades de un mo o conc e o. Sin emba go, pa a que esa “libe ad” ex a que se iene
pueda da sus u os es necesa io un g an abajo y no suele me ece la pena: Hoy en día los
mo o es de juegos o ecen opciones más que su icien es pa a desa olla casi cualquie
ideojuego y el aho o en iempo esul a eno me. Así pues, una de las p incipales azones po
las que se op ó po pa i de una lib e ía es la olun ad de ap ende y hace se una idea, al da
el sal o a un mo o en un u u o, del uncionamien o in e no de es os.
De en e las lib e ías que se conside a on, como SDL, SFML o XNA, inalmen e se op ó po
XNA, en su úl ima e sión 4.0, po los conocimien os p e ios que se enían del lenguaje C#
eque ido po es a así como po expe iencias p e ias con ella que acili a ían el desa ollo del
p oyec o. Además, la ecnología XNA cumple el equisi o de se compa ible con RT-DESK,
compa ibilidad que ue u o de un abajo de inal de ca e a an e io y del que se pa e y busca
expandi su documen ación.
19
O as en aja, compa idas po las o as lib e ías mencionadas, es que odas son de uso
g a ui o. Las p incipales des en ajas de XNA en e al es o son, en p ime luga , que su uso se
educe a disposi i os Mic oso , al con a io que las demás que uncionan en una a iedad más
amplia de disposi i os. Sin emba go, no siendo el obje i o el lanzamien o come cial del juego y
no que iendo cen a se en el desa ollo de e siones pa a di e en es sis emas sino en el
ap endizaje en sí, no esul ó un incon enien e. El o o incon enien e es que su desa ollo se ha
descon inuado, y no se pa ece que Mic oso aya a da más sopo e a es e ecnología.
Aún así, cabe des aca como en aja de XNA el desa ollo pa alelo que se ealizó de o ma
lib e pa a adap a la a di e en es pla a o mas, dando como esul ado la ecnología MonoGame
10
.
De es a o ma, una ez comple ado su desa ollo la compa ibilidad del código ealizado con
XNA se á o almen e compa ible con MonoGame pe mi iendo, hipo é icamen e, lanza
e siones del p oyec o pa a sis emas ope a i os como Linux o consolas que no sean de
Mic oso .
O as he amien as
Pa a el desa ollo del p oyec o se ha op ado po el uso de he amien as g a ui as, con la
excepción de Mic oso O ice y RT-DESK. La lis a de he amien as usadas es la siguien e:
10 h p://www.monogame.ne /
20
Visual S udio, el IDE (In eg a ed de elopmen en i onmen ) de Mic oso con in eg ación con
XNA, lo que lo con ie e en la opción ideal. Uno de sus pun os ue es sob e sus compe ido es
es su obus ez y su depu ado .
RT-DESK
11
(Real Time Disc e e Simula ion Ke nel) es una lib e ía desa ollada en la UPV y
diseñada pa a la ges ión empo al de e en os disc e os en iempo eal. O ece odas las
en ajas de la simulación disc e a pe o además sinc oniza la simulación con el iempo eal
du an e su ejecución. Es una he amien a en ocada an o pa a el desa ollo de aplicaciones en
iempo eal como pueden se ideojuegos, simulado es de en enamien o, ealidad i ual o
ealidad aumen ada, como pa a modela sis emas que es én desc i os como una colección
masi a de obje os simples que in e ac úen unos con o os como pueden se la simulación de
pa ículas o los au óma as celula es. En es e p oyec o, conc e amen e, se usa á una e sión
pa a C# y p e iamen e p obada con XNA.
Google Docs y Mic oso Wo d, edi o es de ex o usados pa a la c eación de oda la
documen ación ela i a al p oyec o. Si bien Google Docs pe mi e copias de segu idad en la
nube que pueden se modi icadas desde cualquie luga con in e ne usando una in e az
cómoda y simple, la ausencia de algunas opciones (Po ejemplo, índices que e e encien el
núme o de página de cada apa ado ) hacen que sea necesa io e mina los documen os
usando Mic oso Wo d.
Se ha u ilizado OpenO ice Calc, una he amien as g a ui a pa a la edición de hojas de cálculo,
pa a la manipulación de los da os ecogidos de los es s y su ep esen ación en g á icas.
A goUML
12
, edi o UML lib e usado en la c eación de algunos de los diag amas usados en la
documen ación. Una de las en ajas en e a sus compe ido es es que no equie e de una
insc ipción pa a su uso ni limi a su uncionalidad en su e sión g a ui a. La e sión pa a
esc i o io o ece las he amien as necesa ias pa a es e p oyec o.
Tiled
13
, un edi o de mapas de iles, se usa á pa a acili a la gene ación de mapas de iles
usados pa a p oba dicha uncionalidad del p oyec o.
Pain y Gimp
14
, edi o es de imágenes u ilizados en la c eación y edición de los asse s g á icos
necesa ios pa a el juego. Pain o ece una solución ápida y cómoda de edi a imágenes a ni el
de píxel, ideal pa a ideojuegos sencillos en 2D a baja esolución, pe o lo limi ado de sus
opciones hacen que pa a ealiza una edición más compleja, si es a uese necesa ia, se op e
po Gimp.
11
h p:// desk.blogs.up .es/
12
h p://a gouml. ig is.o g/
13
h p://www.mapedi o .o g/
14
h p://www.gimp.o g/
21
Además, ambién se ha á uso de G aphicsGale
15
pa a acili a la animación de los mismos al
pe mi i e el esul ado y modi ica lo en iempo eal, además de ae una se ie de opciones
pensadas especí icamen e pa a c ea y p oba animaciones, como el e ec o cebolla en e
ames o modi ica pa áme os como la elocidad de cada ame de o ma cómoda pa a
hace se una mejo idea de cómo queda á la animación den o del juego.
Pa a la c eación de e ec os de sonido, apa e del uso de e ec os y música lib e, B x
16
o ece
una solución ideal, pues pe mi e c ea sonidos de di e en es ipos (de sal o, de dispa o, e c.)
o ma alea o ia has a encon a uno que sea adecuado pa a el juego, sin necesidad de ene
conocimien o alguno ace ca de la c eación de sonidos. Además, ambién pe mi e a ia
algunos pa áme os a aquellas pe sonas que sepan algo o simplemen e quie an cu iosea .
Pa a la edición de los sonidos, como eco a o edi a pa a acili a su ep oducción en bucle, se
u iliza á Audaci y
17
, un edi o g a ui o de sonido que des aca po su sencillez y a iedad de
opciones y que además ue el usado du an e la ca e a en di e en es asigna u as de sonido.
15
h p://www.humanbalance.ne /gale/us/
16 h p://www.b x .ne /
17 h p://audaci y eam.o g/

22
Diseño
Diseño UML
Diag ama UML.
23
Menú p incipal
Esquema del menú p incipal del juego.
T as pasa las pan allas de in oducción (Desa ollado , ecnologías empleadas, e c.) la pan alla
en la que el jugado ecibe el con ol del juego es la pan alla de í ulo de juego, ambién llamada
pan alla de “p ess s a ”, en la que se mues a el í ulo del juego.
Desde ella se accede únicamen e a la pan alla p incipal, desde donde puede comenza una
pa ida en al juego en el modo his o ia, accede a las ablas de pun uaciones y a los menús de
p uebas y opciones.
El menú de p uebas pe mi e al jugado juga una ase cualquie a, además de pe mi i le
selecciona qué ondo quie e usa pa a la pa ida.
En el menú de opciones se encuen a la opción de bo a la abla de pun uaciones y de ol e la
a su es ado o iginal, además del u o ial donde se explica el uncionamien o del juego y los
c édi os, que incluyen el nomb e del alumno, del di ec o de p oyec o, ecnologías empleadas y
ag adecimien os.
Además, la opción de bo a pun uaciones lle a a una pan alla de con i mación, pa a e i a que
el jugado pueda bo a sus pun uaciones po equi ocación.
T as acaba una pa ida (Juga ) el juego uel e a la pan alla de pun uaciones.
24
Implemen ación
Ca ga de asse s
Los asse s de un ideojuego son sus ecu sos isuales y sono os, ales como ex u as,
modelos o e ec os de sonido. Pa a que el juego pueda hace uso de ellos XNA p o ee de un
con en pipeline
18
, que en el momen o de la compilación se enca ga de p ocesa los asse s a
un o ma o que el juego pueda econoce y accede a ellos median e un con en loade en el
amewo k.
Diag ama del p oceso de ca ga de asse s en XNA.
El p opio Visual S udio se enca ga de, al gene a una nue a solución de XNA, c ea dos
p oyec os dis in os, uno pa a la lógica de juego y o o pa a el con enido, donde a su ez c ea
una ca pe a pa a los iche os de audio, pa a los iche os de imagen, e c. que el juego a a
accede pos e io men e y añadi los es an sencillo como copia los en su ca pe a
co espondien e e indicá selo a isual S udio usando su na egado de a chi os (o e esca la
ca pe a).
Pa a accede a ellos u ilizamos el mé odo load de la clase Con en Manage , una ins ancia de la
cual, Con en se encuen a en la clase Game, po ejemplo:
Con en .Load<Tex u e2D>(@"Images/ ex u a")
Nó ese que hace al a indica el ipo de o ma o del asse a ca ga (Tex u e2D pa a imágenes o
SoundE ec pa a e ec os de sonido), además de que no se indica la ex ensión del iche o. Es o
se debe a que en XNA los asse s se e e encian median e una cadena iden i icado a que po
de ec o es el nomb e del iche o sin la ex ensión, no po el nomb e de iche o.
Los o ma os acep ados po XNA son limi ados, aunque o ece la posibilidad de añadi sopo e
pa a nue os o ma os. En es e p oyec o sin emba go se ha limi ado su uso a los p ime os, .png
o .bmp pa a las imágenes y .wa pa a los e ec os de sonido y música.
18
h ps://msdn.mic oso .com/en-us/lib a y/bb447745.aspx
25
Sp i es
Un sp i e es un g á ico 2d usado pa a ep esen a isualmen e los elemen os del juego.
Obje os, enemigos o el pe sonaje p incipal en e o os. Po ejemplo:
Sp i e de Ma io del juego Supe Ma io b os.
Sp i e shee
Los sp i es se almacenan en una Imagen donde se gua dan los di e en es ames que o man
las animaciones de los elemen os de un juego. Qué se gua da en cada sp i e shee puede
a ia según las p e e encias de cada uno, pe o una p ác ica ex endida suele se c ea un sp i e
shee po elemen o (Po ejemplo, uno solo pa a el pe sonaje p incipal), poniendo en cada ila
los ames co espondien e a una acción o es ado (Po ejemplo, es a quie o, co e o sal a ):
Pa e del sp i e shee de Ma io del juego Supe Ma io b os.
Pa a acili a su uso gene almen e cada ame se gua da y sepa a del es o usando un amaño
no malizado, de o ma que se pueden dibuja en pan alla haciendo uso del mismo a ibu o de
posición.
Se conside a po de ec o el inicio del sp i e su esquina supe io izquie da, pa a accede a un
sp i e enemos que conoce dicha posición y el amaño del sp i e. Al se los sp i es de un
amaño ijo ob iamen e conocemos dicho amaño y a pa i de él ob enemos la posición del
sp i e:
Posición X en el sp i e shee = ame de la animación * ancho de sp i e
Posición Y en el sp i e shee = ID del es ado del sp i e * al o de sp i e
32
Colisiones
Algunos de los elemen os del juego pueden colisiona en e ellos, po ejemplo, las balas de la
p o agonis a con las na es enemigas. Pa a comp oba las colisiones exis en di e en es
écnicas, siendo la colisión po cajas y la colisión po píxel las más usadas en los juegos en 2D
del géne o.
La colisión po cajas consis e en asigna una o más cajas de colisiones a los obje os, y calcula
la colisión en e es as cajas. Al asigna las cajas se a a de ajus a a la o ma i egula del
sp i e una o ma sencilla (un cuad ado o un cí culo, po ejemplo), simpli icando el p oblema de
las colisiones.
Ejemplo de caja de colisiones ec angula pa a el sp i e de Ma io.
A un mismo obje o se le pueden asigna a ias cajas, ya sea po que una única o ma básica no
es su icien e o po que di e en es pa es del obje o ienen compo amien os di e en es. Un
ejemplo de es o úl imo se ía un enemigo al que puedes daña y des ui di e en es pa es, de
o ma que cada pa e necesi a su p opia caja de colisiones.
Pa a calcula la colisión en e dos cajas ec angula es, las únicas usadas en el p oyec o, se usa
la siguien e ó mula:
i (A.x + A.cajaAncho >= B.x + B.cajaInicioX && A.x + A.cajaInicioX <= B.x + B.cajaAncho &&
A.y + A.cajaAl o >= B.y + B.cajaInicioY && A.y + A.cajaInicioY <= B.y + B.cajaAl o)
colision = ue;
else
collision = alse;
En algunos casos en los que se busca una mayo p ecisión se emplea la écnica de colisión po
pixel, que consis e en de ec a pixel a pixel (o pixel con una caja de colisiones) si dos obje os
colisionan en e sí. Aún así, se a a de una écnica que equie e de un g an cos e de cálculo,
así que en la p ác ica, de usa se, p ime o se desca a la colisión median e la écnica de caja de
colisiones. Po ejemplo, se calcula la colisión del pe sonaje con odas las balas enemigas, y
únicamen e si se de ec a colisión con una, se mi a la colisión po píxel en e dicha bala y el
pe sonaje.

33
Pe sonaje con olado po el jugado
El jugado con ola un único pe sonaje, una na e espacial. La especi icación de dicho
pe sonaje se encuen a en el anexo, la implemen ación de la cual se de alla a con inuación.
Sp i e de la na e con olada po el jugado .
Desplazamien o
El desplazamien o de la na e puede se en cualquie di ección (360º) y a di e en es
elocidades. Pa a consegui es o se hace uso de uno de los s icks del mando (conc e amen e
el izquie do), ya que pe mi e la en ada de la di ección (s ick analógico de 360º, como el
mo imien o que se busca pe mi i ealiza ) y di e en es g ados de inclinación pa a cada
di ección, lo cual se usa pa a con ola la elocidad del pe sonaje.
En XNA el es ado del s ick iene dado po coo denadas den o un cí culo uni a io. Así, en
eposo el s ick se encuen a en la posición (0,0), y si se inclinase po comple o hacia la
de echa, se encuen a en la posición (1,0). De es a o ma, la elocidad de la na e en el juego
es á con olada po la posición del s ick en cada coo denada, en an o que es a ep esen a la
inclinación del s ick. A más p esión del jugado sob e el s ick, más inclinación y, po an o, más
elocidad.
Sin emba go, se ha es ablecido una mínima inclinación del s ick a pa i de la cual se empieza a
mo e la na e, pa a e i a que es a lo haga debido a posibles le es inclinaciones causadas po
p esión eje cida po el pulga del jugado al eposa sob e el s ick.
Además, la elocidad máxima a la que puede mo e se la daba es supe io al máximo alo de
inclinación (1), así que es e se ex apola de [0,1] al ango [ elocidad mínima, elocidad
máxima].
Dispa o
Al con a io que el mo imien o analógico de la na e, se ha disc e izado las di ecciones a las
que puede dispa a , limi ándose a 8 (a iba, abajo, izquie da, de echa y las cua o diagonales
en e ellas).
El jugado escoge en qué di ección quie e dispa a usando los cua o bo ones pos e io es, los
cuales gene almen e se disponen o mando un “ ombo”, quedando uno a iba, uno abajo, o o a
la izquie da y el úl imo a la de echa. Así, cada uno de es os bo ones si e pa a dispa a en la
di ección en la que se encuen an. Po ejemplo, con el bo ón supe io el jugado puede dispa a
hacia a iba, y con el de echo hacia la de echa, además de pode pulsa dos bo ones
adyacen es pa a dispa a en diagonal, po ejemplo, pulsando los bo ones supe io y de echo
dispa a en diagonal la diagonal o mada po ambos bo ones, a iba hacia la de echa.
Debido a la di icul ad de pulsa dos bo ones al mismo iempo al a a dispa a en diagonal, se
ha dejado un iempo, muy pequeño, desde que se pulsa uno de los bo ón de dispa o has a que
la na e dispa a en el juego, e i ando que al dispa a en diagonal la mayo ía de eces dispa e
unas pocas balas en una di ección que no es la deseada.
34
Una ez se ha pulsado un bo ón de dispa o, la na e dispa a. Es o implica que desde que la
na e empieza a dispa a has a que se suel a se c ean balas en un in e alo p ede e minado
(dos balas en pa alelo en cada in e alo) cuya di ección es la di ección de dispa o desc i a
an e io men e, sob e las cuales el jugado ya no iene con ol alguno y sob e las que se en a
en de alle más adelan e.
Además, hay que ene en cuen a que al dispa a en una di ección se o a el sp i e de la na e
p o agonis a pa a que enca e dicha di ección, la cual no cambia has a que no se dispa e en
o a di ección.
Escudos, abso ción y sob ecalen amien o
La na e cuen a con dos escudos, de colo e de y azul, usados pa a abso be las balas de su
mismo colo al en a en con ac o con ellas y e i a el daño.
Al pulsa el bo ón asignado a un escudo, es e se ac i a. Apa ece al ededo de la na e
p o agonis a sua emen e, de se in isible a o almen e isible, e ec o pa a el cual se ha usado
la unción de dibujado D aw desc i a en el apa ado de dibujado de sp i es. Básicamen e, el
pa áme o Colo indica el colo del que se in a la imagen a dibuja (Whi e pa a usa el colo
o iginal), y si es e pa áme o es mul iplicado po un loa en e 0 y 1 se puede al e a la
anspa encia de lo que se dibuja.
De es a o ma mul iplicamos dicho Colo po una a iable de ipo loa donde almacenamos el
ni el de anspa encia, los alo es de la cual pa en de 0 (o el alo ac ual de la anspa encia,
si dejamos de pulsa y los encendemos ápidamen e an es de que se apaguen) al encende el
escudo has a que alcanzan su alo máximo 1. Al sol a los escudos se apagan, con un e ec o
de desapa ición opues o al mencionado.
Los escudos se gua dan como un sp i e que almacena el con o no de la na e en el colo del
escudo, de o ma que bas a con dibuja lo en la misma posición en la que se dibuja la na e.
Como dice la especi icación del juego, si se man iene encendido el escudo cie o iempo la
na e se sob ecalien a. Se a isa poco an es de que es o ocu a cambiando el colo del escudo a
ojo (además de con a con una señal sono a).
En caso de que se sob ecalien e no se pe mi e ol e a ac i a los escudos has a que pase el
e ec o, el cual isualmen e se ha ep esen ado “ in ando” el sp i e de colo ojo usando la
uncionalidad que pa a ello o ece la unción D aw desc i a en el apa ado de dibujado de
sp i es, conc e amen e haciendo uso del pa áme o Colo , asignando Colo .Red.
Tele anspo e
O a de las habilidades con las que cuen a el jugado es la posibilidad de ele anspo a se una
dis ancia ija en cualquie di ección, esqui ando los elemen os que haya en e la posición
o iginal y la posición des ino. La na e se ele anspo a en la di ección del mo imien o, po lo
an o al igual que el desplazamien o básico se a a de un mo imien o que puede ealiza se en
cualquie a de los 360º. Sin emba go, al a a se de una dis ancia ija, es a no depende de
cuando se p esione el s ick, con lo cual hay que saca el ec o uni a io que de ine la di ección
del pun o en el que se encuen a el s ick. Pa a ello es su icien e con di idi cada componen e
35
del pa de componen es X e Y que de inen la posición del s ick po el módulo del ec o que a
del o igen a dicho pun o.
E ec o isual al ele anspo a se.
Visualmen e se ha c eado un e ec o de ele anspo e que consis e en que la na e deje un
as o, in en ando simula un e ec o de desplazamien o a g an elocidad. Dicho as o consis e
en una se ie de imp esiones en pan alla del mismo sp i e de la na e, pe o más anspa en es
cuan o más lejos se encuen an.
Las posiciones de es as imp esiones, al encon a se en la misma línea que a del pun o o iginal
al pun o des ino de ele anspo e se calculan, pues, de la misma o ma que se calcula es e
úl imo, pe o dec emen ando el alo de la dis ancia de ele anspo e po el in e alo que sepa a
las di e en es imp esiones (Así como el p opio alo de la anspa encia).
Somb a
Exis e un e ec o me amen e isual, que no epe cu e en la jugabilidad, que consis e en la
p oyección de una somb a sob e el suelo o los elemen os que se encuen en po debajo de la
na e p o agonis a. Dicha somb a consis e simplemen e en un sp i e de colo oscu o que se
imp ime de o ma semi anspa en e sob e los elemen os co ec os. Dichos elemen os son
aquellos que, al encon a se po debajo de la na e, se dibujan con un alo de p o undidad (o
laye dep h) mayo , y po an o au omá icamen e XNA se enca ga á, al o dena e imp imi en
pan alla, de dibuja la somb a únicamen e sob e es os.
La somb a se mue e po una sub egión de la pan alla, la cual se encuen a en el cen o y iene
la misma o ma de la pan alla de juego (equidis ando los lados de es a sub egión de los lados
de la pan alla). Dicha posición depende de la posición de la na e, conociendo es a sacamos la
posición de la somb a con la siguien e ó mula:
Somb a.pos.X = sub egión.posInicial.X + na e.pos.X * (sub egión.ancho / pan alla.ancho)
Somb a.pos.Y = sub egión.posInicial.Y + na e.pos.Y * (sub egión.al o / pan alla.al o)
36
Fondos
Qué es un mapa o ni el en un juego depende de cada juego, de su de inición y equisi os. En
es e p oyec o no exis e in e acción en e los obje os (Pe sonaje p incipal, enemigos, e c.) y el
escena io, de o ma que se han a ado de o ma independien e, educiendo el concep o de
escena io al de ondo, un elemen o pu amen e es é ico.
Exis en di e en es opciones a la ho a de c ea ondos pa a ideojuegos: Imágenes ijas, ondos
3D, ondos hechos a base de iles, ondos con di e en es planos de Scholl, en e o as.
En es e p oyec o se han usado las écnicas de mapa de iles y la gene ación p ocedu al.
Mapa de iles
Los mapas c eados a pa i de iles ienen su o igen en la necesidad de almacena una g an
can idad de mapas sin que epe cu a nega i amen e en el peso del juego.
Las iles son pequeñas piezas de mapa de un amaño gene almen e ijo que se almacenan una
única ez en un ile se y pueden se usadas an as eces como haga al a pa a o ma mapas
más complejos, los cuales se de inen gene almen e como una ma iz de en e os, cada uno de
los cuales es el iden i icado de la ile a usa , el cual si e pa a encon a dicha ile den o del
ile se . Po ejemplo:
Tile se
A la izquie da emos el mapa como una ma iz y a la de echa al se dibujado.
37
Accede a la ile co espondien e en el ile se en unción de su iden i icado es sencillo.
Suponiendo un amaño de ile amañoTile X amañoTile, y un ile se con ilesAncho iles de
ancho, accedemos a la posición o igen de la ile a pa i de la cual se a a dibuja con la
siguien e ó mula:
ileX = ( ileID % ilesAncho) * amañoTile
ileY = ( ileID / ilesAncho) * amañoTile
Animación
El mapa no se encuen a ijo, sino que se desplaza pa a simula el mo imien o a a és del
mismo. No malmen e la po ción de mapa que se dibuja depende de la cáma a, que a su ez
suele depende de la posición del jugado . En el caso de los shoo ‘em up, sin emba go, la
cáma a no suele es a ija sob e el jugado sino que se desplaza de o ma au omá ica y
cons an e.
Así, a cada ins an e ac ualizamos la posición del mapa en unción de la cáma a, y dibujamos el
ozo de mapa que se a a mos a en pan alla, e i ando así el cos e innecesa io de dibuja lo
que queda ue a de cáma a.
Escoge qué ozo de mapa en unción de la cáma a es sencillo, suponiendo un amaño de iles
de amañoTile X amañoTile, dibuja íamos an as iles como cupiesen en pan alla
(anchoPan alla / amañoTile, al oPan alla / amañoTile) a pa i de la posición de la ma iz de
iles cama aX % amañoTile, cama aY % amañoTile.
Lec u a de un ondo de iche o
Los mapas usados han sido almacenados en un iche o de ex o y pa seados al se leídos y
usados po el juego.
El o ma o es simple, la p ime a línea del iche o mapa con iene dos en e os con el ancho y al o
del mapa en iles, y a pa i de la siguien e línea se encuen a la ma iz de iden i icado es de ile
que de inen dicho mapa.
Fondo p ocedu al
La gene ación p ocedu al
19
hace e e encia a la gene ación de con enido, en es e caso el
ondo, no de o ma manual sino median e algo i mos. O a o ma de explica la gene ación
p ocedu al es como “alea o iedad con olada”.
Dicha écnica se ha aplicado a la c eación de un ondo pa a el juego, c eando un cielo a pa i
de di e en es nubes. Dichas nubes pueden mo e se a di e en es elocidades dependiendo de
su al u a, simulando así su mayo o meno dis ancia espec o a la cáma a. Además, las nubes
más ce canas (y po an o las que se dibujan más g andes y a mayo elocidad) se dibujan los
obje os del juego y de o ma anspa en e sob e es os, de o ma que solo se aplique el e ec o
de anspa encia, simulando en a en la nube, a los elemen os del juego y no al ondo.
Así, a cada ipo de nube se le ha asignado una p obabilidad y un iempo alea o io en e nubes,
de o ma que aunque se ayan c eando de o ma alea o ia en iempo de ejecución las
can idades y posiciones se mue en den o de unos pa áme os que hacen que el ondo
19 h ps://en.wikipedia.o g/wiki/P ocedu al_gene a ion

38
siemp e luzca co ec amen e, sin escasez ni exceso de nubes, ni es as apa eciendo siguiendo
pa ones no deseados.
Además, se han usado ambas écnicas conjun amen e pa a o ma mapas con mayo de alle.
En conc e o, usando la écnica del mapa de iles se ha c eado el ondo de un bosque y po
encima de es e se gene an p ocedu almen e las nubes.
39
Ni eles
Pa a p oba la uncionalidad implemen ada, se han c eado dos ni eles (sin con a los ni eles de
los je es), uno gene ado p ocedu almen e y o o c eado a mano.
Como se ha mencionado en el apa ado an e io , en es e p oyec o en conc e o no exis e
in e acción en e los elemen os del juego, como puedan se lo el p opio jugado o los enemigos,
y el escena io, y po an o se han almacenado po sepa ado, pe mi iendo además cualquie
combinación de ambos.
Así pues, en es e p oyec o un ni el se de ine exclusi amen e po la se ie de enemigos que lo
o man, y an apa eciendo secuencialmen e en pan alla.
Ni el p ocedu al
El p ime ni el se enca ga de c ea p ocedu almen e los obs áculos que o man dicho ni el.
Conc e amen e, ilas o columnas de enemigos o balas de di e en es colo es se escogen
alea o iamen e con un in e alo de iempo egula en e ellas y apa ecen de cualquie ex emo
de la pan alla.
La en aja de c ea ni eles gene ados p ocedu almen e es la apidez con la que, a base de
unas pocas eglas, se pueden c ea un núme o in ini o de ni eles de longi ud in ini a. Sin
emba go, exis e el iesgo de que el ni el esul e soso y no c ee ni eles in e esan es, pa a lo
cual no suele bas a con unas pocas eglas sino que se debe p o undiza y en ende
co ec amen e qué pa ones puedan da luga a ni eles in e esan es y como mezcla los, así
como con ola la cu a de di icul ad.
Ni el c eado a mano
El segundo ni el de p ueba se ha c eado a mano. Pa a acili a su c eación y modi icación y
debido a la limi ación de iempo, en ez de lee se el ni el de un iche o y a pesa de que exis e
dicha uncionalidad, el ni el es á c eado den o del p opio código.
La des en aja es el iempo que equie e c ea un ni el así, además de que el es ue zo in e ido
esul a en un ni el ini o, además de la di icul ad que a eces puede aca ea ealiza
modi icaciones sob e el mismo, al ene que ees uc u a odo el ni el. Sin emba go, al ene
con ol o al de los elemen os que o man el ni el y como se desa olla es e, es más ácil
con ola y c ea amos in e esan es, e i a la epe ición y ges iona la cu a de di icul ad.
40
Subsis ema de audio
El p oyec o equie e de una o ma de ges iona los e ec os de sonido y pis as de audio, así
como con a con di e en es o mas de con ola su ep oducción y aplica e ec os. Dicha
uncionalidad ha sido encapsulada en un manage de audio.
XNA o ece dos al e na i as pa a implemen a el apa ado sono o de un juego:
XACT(C oss-pla o m Audio C ea ion Tool):
Se a a de un engine de sonido que o ece una se ie de uncionalidades ya implemen adas,
como e ec os, c ea colas de sonidos y asigna les p io idad a cada elemen o de la misma,
comp imi pis as, e c que pueden se u ilizados desde una aplicación independien e al código.
También cuen a con una api, incluida en Xna.F amewo k.Audio, con una se ie de clases y
unciones que pe mi en ealiza acciones básicas como ep oduci sonido, pausa lo o cambia
el ni el de olumen. Es es a al e na i a la que se u iliza á en el desa ollo de es e p oyec o.
Es e amewo k cons a de una clase básica, SoundE ec , pa a almacena una pis a de audio
.wa , que únicamen e puede se ep oducida usando el mé odo de clase Play();
SoundE ec soundE ec ;
soundE ec = Con en .Load<SoundE ec >(@"Audio/ iche o");
soundE ec .Play();
Pa a ene con ol de la ep oducción esa pis a debe se ins anciada en una a iable de ipo
SoundE ec Ins ance, que además de ep oduci la pis a de audio pe mi e pausa , pa a ,
eanuda , "loopea " y con ola el ni el de olumen du an e la ep oducción de la misma.
Pa a ins ancia y ep oduci usamos el mé odo C ea eIns ance() de la clase SoundE ec .
SoundE ec Ins ance ins ance;
ins ance = Con en .Load<SoundE ec >(@"Audio/ iche o").C ea eIns ance();
ins ance.Play();
La p incipal en aja en cuan o a uncionalidad de SoundE ec espec o a SoundE ec Ins ance
es que es a úl ima no pe mi e ep oduci su sonido a ias eces de o ma pa alela.
Pongamos de ejemplo el sonido al dispa a una me alle a. Usando un único sonido de dispa o,
y si se dispa a una a aga SoundE ec nos pe mi i ía ep oduci el sonido an as eces como
dispa os, pe o al usa SoundE ec Ins ance se debe ía c ea an as ins ancias como dispa os, lo
cual esul a innecesa io.
Añadi que XNA ambién cuen a, en Xna.F amewo k.Media, con las clases Song y la clase
MediaPlaye , usadas pa a almacena pis as de audio en .mp3 y pa a ep oduci las,
espec i amen e.
Song song;
41
song = Con en .Load<Song>(@"Audio/p ueba");
MediaPlaye .Play(song);
La p incipal des en aja es que solo puede ep oduci se únicamen e una pis a de audio al
mismo iempo (no malmen e se ese a su uso pa a ep oduci música de ondo), limi ación que
no exis e en las clases SoundE ec y SoundE ec Ins ance. En el p oyec o se usa án
únicamen e es as dos úl imas, debido a la libe ad de de ep oduci di e en es pis as de audio
de ondo al mismo iempo (po ej, música de ondo y llu ia).
El subsis ema de audio implemen ado se enca ga de odo lo elacionado con el audio del juego
y se compone de las siguien es clases:
AudioManage
La clase p incipal enca gada de ges iona y maneja el es o de clases, así que como de
o ece una se ie de mé odos de con ol de las di e en es pis as de audio.
Funciona como una caja neg a que puede se usada po los demás obje os del juego, los
cuales le indican que acción quie en ep oduci en un sonido en conc e o de los almacenados
po el manage .
Pa a pe mi i es o se ha ealizado la siguien e implemen ación:
Debido a la pequeña can idad de sonidos que equie e el juego, en ez de ca ga los y libe a los
según sea necesa io se dejan ca gados desde el inicio. Así, la clase AudioManage cuen a con
un ec o pa a sonidos de ipo SoundE ec y uno pa a los sonidos de ipo SoundE ec Ins ance:
El ec o usado pa a almacena los SoundE ec es únicamen e del ipo soundDa a, que
con iene el SoundE ec y a iables pa a el con ol de su cadencia, en los que se p o undiza á
más adelan e. Pa a con ola la ep oducción de los mismos se cuen a únicamen e con un
mé odo:
● playSound(id, ol, pan):
Rep oduce el sonido id (coincide con su posición en el ec o de SoundE ec s) con un
olumen ( ela i o al olumen global) indicado po ol y un pano ama indicado po pan.
Vol es un alo en e 0 y 1000 que se no maliza al in e alo 0..1 que maneja uni y, y
pano ama un alo en e -1 y 1 que indica la posición del sonido. Po ejemplo, 0 hace
que suene cen ado (mismo olumen po ambos al a oces en es é eo), mien as que -1
hace que únicamen e suene po el izquie do.
El ec o pa a almacena los sonidos de ipo SoundE ec Ins ance es lige amen e más complejo
y equie e de una es uc u a auxilia debido a la posibilidad de con a con más opciones pa a su
ep oducción y a la necesidad de gua da cie a in o mación ela i a al es ado y con ol de cada
ins ancia. Dicha es uc u a se ha llamado ins anceDa a, en la cual almacenamos:
48
la CPU cuando es e sea necesa io, no usando un iempo que queda lib e pa a o os
menes e es como puede se la incu sión de más obje os o en iempo de GPU, en e o os, o
simplemen e libe a lo pa a educi el consumo.
Acople de RT-DESK y XNA
Es e p oyec o usa RT-DESK en o ma de DLLs, las cuales se incluyen en el p oyec o
pe mi iendo accede a oda la uncionalidad de RT-DESK.
De la c eación de es as DLLs se enca gó Da id Pé ez Climen en su p oyec o “c eación de un
ideojuego en XNA usando RT-DESK”, en cuya memo ia desc ibió el p oceso, el cual a
con inuación se esume b e emen e.
Adap ación C# y C++
O igina iamen e RT-DESK se p opo cionaba en o ma de una biblio eca esc i a en C++
compilada a código máquina. XNA, sin emba go, únicamen e abaja usando el lenguaje C#, el
cual compila a código in e medio CIL(Common In e media e Language
20
), ejecu ado po la CLR
(Common Language Run ime
21
), impidiendo que lib e ías de C++ sean llamandas di ec amen e
desde C#.
C# pe mi e llama a unciones de biblio ecas na i as median e el se icio PIn oke, pe o no así
la c eación y u ilización de clases na i as, lo cual es un equisi o pues RT-DESK necesi a c ea
clases que he eden de RTDESK_CEn i y y sob esc iban el mé odo Recei eMessage, el cual es
llamado di ec amen e desde el código na i o. La solución a es e p oblema pasó po usa el
lenguaje C++/CLI pa a c ea una clase puen e. Así, se c ea on di e en es clases C++/CLI, una
po cada una de las clases de RT-DESK que se necesi aban u iliza (RTDeskEngine,
RTDeskEn i y y RTDESK_CMsg).
Adap ación de la clase Game
RT-DESK sus i uye al núcleo de un ideojuego, el bucle p incipal. El segundo p oblema que
su gió ue que el bucle que p o ee la clase Game de XNA, ocul o al diseñado , y que además
de enca ga se de ac ualiza y dibuja los elemen os del juego ambién se enca ga de o as
como la ges ión de la en ana de juego o la comunicación con los disposi i os g á icos de
salida. De es a o ma, pa a pe mi i que el con ol de bucle p incipal pasase a RT-DESK se c eó
una nue a clase Game que se enca gase de esas a eas que has a aho a ealizaba XNA en su
bucle p incipal:
Se c eó un p o eedo de se icios, implemen ando la in e az ISe iceP o ie y, y el se icio
G aphicsDe iceSe ice, implemen ando IG aphicsDe iceSe ice, que p opo ciona el disposi i o
g á ico.
Se ges ionó la c eación de la en ana de juego, median e la clase o m de
Sys em.Windows.Fo ms.
20 h ps://en.wikipedia.o g/wiki/Common_In e media e_Language
21 h ps://msdn.mic oso .com/es-es/lib a y/8bs2ec 4%28 = s.110%29.aspx

49
Apa e de los mencionados an e io men e, la adap ación de RT-DESK a XNA ha p esen ado
o os p oblemas. El o igen de es os es el mismo, no usa el bucle p incipal que o ece XNA y
que se enca gaba de algunas a eas esenciales:
P oblemas con la en ada, la cual no unciona co ec amen e debido a que el bucle p incipal de
XNA no es á ahí pa a asegu a se que la en ada se ac ualiza a la misma elocidad que el
juego, que es algo que no se pe mi e ealiza desde ue a. Se ha in en ado ejecu a el bucle de
XNA en pa alelo al de RT-DESK pa a asegu a esa ac ualización pe iódica de los pe i é icos de
en ada, an o usando hilos como ejecu ando el bucle de -desk desde den o del bucle de xna
pe o no se llegó a una solución. Una solución segu a pasa ía po usa o as lib e ías ajenas a
XNA pa a ges iona la en ada.
P oblemas de audio. En pa icula , con el ipo “sound” (Ve la sección de audio) que pe mi e
ep oduci sonidos sin con ola los. Si no es á el bucle de XNA uncionando, se lanza una
excepción a isando explíci amen e de es o mismo y e minando la ejecución. Una solución
pasa ía po usa únicamen e SoundIns ances o, de nue o, usa una lib e ía ajena a XNA como
puede se FMOD, en ocada a la ep oducción de audio.
P uebas
En o no de p uebas
Un compu ado o mado po p ocesado In el Xeon CPU E5-2620 2GHz, 16 GB RAM, a je a
g á ica NVIDIA GeFo ce GTX 760, con Windows 7 P o essional 64 bi s como sis ema ope a i o,
usando se ice pack 1, Mic oso Visual S udio C# Exp ess 2010 y XNA 4.0.
Diseño de las p uebas
En cada una de las e siones del juego (Con inua y disc e a, usando RT-DESK), se han
ealizado dos es s dis in os, uno con enemigos “no males” y o a con je es (Es os dispa an
balas). En ambos casos es aban ac i ados los ondos po iles y el pe sonaje p incipal (sin
en ada). La ejecución de odos los elemen os es de e minis a (No se han usado elemen os
p ocedu ales, ni alea o ios ni en ada del jugado ).
En cada es se a ia la can idad de enemigos (De 1000 en 1000 en el caso de la p ueba con
enemigos no males y de 100 en 100 en el de los je es), y po cada can idad se han ealizado
cinco p uebas dis in as pa a un mayo igo en la medida y compa ación. Cada una de es as
p uebas du a 30 segundos y se con abiliza qué acción se des ina a cada una de las siguien es
ases:
 Fase de dibujado (D aw), en la que se dibujan los obje os.
 Fase de ac ualización (Upda e), en la que se ac ualizan los obje os.
 Fase de idle, iempo es an e no usado.
50
Resul ados
En ambos es s los esul ados han sido muy simila es, a iando únicamen e la magni ud (El je e
es más pesado compu acionalmen e que el enemigo no mal, además de dispa a , y po an o
hacen al a menos pa a sa u a el sis ema). Los siguien es da os pe enecen a la p ueba con
je es.
En p ime luga , los esul ados de la e sión con inua:
Se puede obse a que el sis ema se sa u a con casi 600 obje os c eados, que es cuando la
ase de upda e y de d aw suman un iempo o al supe io al iempo de i e ación, y po an o el
iempo de idle es 0. Al sa u a se ob iamen e el iempo de upda e y de d aw deja de c ece ,
aunque en cada i e ación si es mayo , p opiciando una caída de ames ( alen ización de la
ejecución).
51
En la e sión con RT-DESK se puede obse a en la g á ica supe io como el iempo de
ac ualización y dibujado es meno que en la e sión con inua, esul ando en un mayo iempo
de idle y po lo an o equie e de mayo ca ga pa a sa u a se (Unos 700 elemen os).
En la in e io se mues an los ames po segundo, los cuales empiezan a cae al alcanza el
es ado de sa u ación, de nue o necesi ando pa a ello más ca ga que en la e sión con inua.
La di e encia en e una e sión y o a se ía la posibilidad de con a con unos 100 je es ex a en
la e sión de RT-DESK (o unos 2000~ enemigos no males, según la p ueba con enemigos),
aunque dicho iempo ex a pod ía se usado pa a cualquie a ea.
52
Conclusiones
El uso de RT-DESK ha sido más sencillo y ápido de lo espe ado, además de habe quedado
pa en e sus en ajas en e al bucle p incipal adicional.
Po o a pa e el desa ollo del ideojuego, pa iendo de ce o y ealizando odo el diseño, la
plani icación e implemen ación ha sido de g an ayuda pa a en ende y pe mi i me p o undiza
en una de las aplicaciones de la in o má ica que más in e és me despie an y que apenas se ha
ocado en la ca e a, la c eación de ideojuegos.
La lección más aliosa que he sacado en es a pa e es sob e la impo ancia de la plani icación.
Como medio de exp esión, es di ícil sabe desde el p incipio cómo a a se el ideojuego que
se a a hace po que siemp e hay cosas que depu a o cambia , cosas que sob e la ma cha se
descub en, o algunas que simplemen e se an a qui a . Sin emba go, como p oyec o y como
p og ama que es, g an pa e del mismo sí se puede (Y debe ía) de plani ica .
La p ueba de es o es que po muchas semanas que dediqué a hace p uebas pensando ace ca
del diseño del juego, buscando algo que uese una base sólida, a la ho a de implemen a lo
cambié cosas. Y además, en el momen o en que empecé a plani ica lo, a ma ca me me as
obje i as a dis in os plazos, desa olla lo se hizo más sencillo, y eniendo con ol de esos
aspec os que si se pueden plani ica puede uno ácilmen e ealiza cambios, si uesen
necesa ios, en esos o os aspec os más “a ís icos”.
En cuan o a la plani icación empo al y del es ue zo que asumí me lle a ía, en gene al he
a dado lo que asumí o un poco menos, en pa e po que a ias de la a eas se simpli icaban al
habe ealizado algunas p e ias (Po ejemplo, el p ime Boss cos ó más que los siguien es, que
se bene icia on de su código). Una de mis p eocupaciones al empeza el p oyec o ue el cos e
de hace la adap ación a RT-DESK. Sin emba go, y como he comen ado an es, esul o sencillo
y di ec o. La abla y el diag ama de Gan ac ualizados se encuen an en la siguien e página.
Relación del abajo con es udios cu sados
La ealización del p oyec o ha esul ado bene iciosa de ca a a pone a p ueba lo ap endido en
la ca e a, y especialmen e en mi especialidad de ingenie ía del so wa e. Se ha aplicado muy
especialmen e cues iones e e en es a la p og amación, g á icos po compu ado y écnicas de
diseño y ges ión de p oyec os, es as úl imas se han e elado muy ú iles como se ha comen ado
en el p oyec o an e io .
La ingenie ía in o má ica es muy amplia y en la ca e a se han ocado muchas amas. No las
pond é en p ác icas odas, y no odas me gus an, pe o en é en la uni e sidad buscando pode
hace juegos, y he ap endido lo su icien e como pa a pode hace lo.
Y des aca especialmen e la des eza gene al como ingenie o ob enida a lo la go de la ca e a,
que me han pe mi ido coge una ecnología comple amen e desconocida pa a mi como es RT-
DESK y comp ende la y aplica la de o ma sencilla, así como aplica lo es udiado a algo que no
se ha es udiado explíci amen e, como son los ideojuegos. Un compañe o suele deci que en la
uni e sidad lo más impo an e que se ap ende es a ap ende , una base sob e la que cons ui
el es o de conocimien os, con lo que es oy muy de acue do.
53
Se ha pin ado en osa el iempo eal sob e el iempo es imado, pin ado en azul.

54
T abajos u u os
La ecnología RT-DESK es á alidada po di e en es p oyec os, el siguien e paso debe ía de
se puli la y acili a su uso a un mayo núme o de desa ollado es. Sin emba go, los p oblemas
an e io men e desc i os (adap a el bucle p incipal, maneja la en ana, p oblemas de inpu ,
limi aciones en el audio) que hacen que pa a usa RT-DESK jun o con XNA haya que enuncia
a muchas de las posibilidades de es a (En pa e po unciona como una caja neg a) y
sus i ui las po o as opciones me hacen pensa en si no se ía más adecuado adap a RT-
DESK a o a ecnología que sí pe mi a una acople pe ec o en e ellos. De que e con inua po
es a linea, se ía ecomendable cen a se en MonoGame una ez es é comple a, la adap ación
lib e de XNA, y e si se iene acceso al código del bucle p incipal y se puede ealiza esa mejo
in eg ación.
Apa e de las e siones ya exis en es que hacen uso de OpenGL, o o buen candida o y con las
en ajas de XNA se ía SFML, al usa C++ y no p o ee de un bucle p incipal ce ado la
adap ación se ía i ial, pe o si el p oyec o de adap a RT-DESK al mo o Uni y salie a adelan e
es a se ía la opción ideal, an o po se uno de los más usados como po con a con una ienda
desde la cual se pod ía dis ibui (incluso ende ) RT-DESK a una g an can idad de usua ios,
pe enecien es además de una comunidad conocida po su g an can idad de documen ación y
ecu sos, lo cual sin duda se ía de ayuda pa a e oalimen a la di usión y comp ensión de RT-
DESK.
55
Ag adecimien os
Me gus a ía ag adece la posibilidad que me ha dado Ramón Mollá, di ec o del p oyec o, de
hace como p oyec o inal de ca e a lo que he que ido hace desde que empecé es a, un
ideojuego, así como po oda la ayuda y consejos du an e el desa ollo del mismo.
También, además, a odos los compañe os que han abajado en los di e en es p oyec os de
RT-DESK, especialmen e a Da id Pé ez, cuya adap ación de XNA a RT-DESK y
documen ación de la misma han sido imp escindibles pa a es e p oyec o.
Y pa a acaba a mis pad es, po “aguan a me en casa”, poniéndome las cosas, o a ez,
bas an e más áciles.
56
Glosa io
Bucle p incipal:
Núcleo del juego enca gado de ges iona la en ada y ac ualiza y dibuja los elemen os que lo
o man.
GDD:
Game Design Documen (Documen o de diseño del ideojuego). Se a a de un documen o que
desc ibe los di e en es aspec os del ideojuego y que si e como guía de e e encia pa a odo
el equipo.
HUD:
Heads up display, la in e az g á ica que se mues a du an e el juego pa a mos a el alo de
di e en es a ibu os de la pa ida como ene gía del pe sonaje, idas, iempo, e c
RT-DESK:
Real Time Disc e e Simula ion Ke nel, es una lib e ía diseñada pa a la ges ión empo al de
e en os disc e os en iempo eal.
Shoo ‘em up:
Géne o de ideojuegos donde p ima la acción, habilidad con el mando y los e lejos.
Sp i e:
Asse g á ico 2d usado pa a ep esen a isualmen e los elemen os del juego.
Sp i e shee / Sp i e se :
Imagen donde se gua dan los di e en es sp i es que o man las animaciones de los elemen os
de un juego.
XNA:
Conjun o de he amien as c eadas po Mic oso pa a acili a y apoya la c eación de
ideojuegos.
57
Fuen es
h ps://en.wikipedia.o g/wiki/Video_game
h p:// desk.blogs.up .es
h p://www.s a is a.com/ opics/868/ ideo-games
h p://en opyin e ac i e.com/2011/02/game-engine-design- he-game-loop/
Bibliog a ía:
Jesse Schell, A o game design: a book o lenses.
Aa on Reed, Lea ning XNA 4.0.
Da id Pé ez Climen , C eación de un ideojuego en XNA usando RT-DESK.
Pablo de la Ossa Pé ez, Zen ac : Engine con simulación disc e a pa a ideojuegos 2D.
64
Bala explosi a
Se mues a como un pequeño pun o ijo que si e de a iso, ya que momen os después le sigue
una explosión en esa misma posición. Únicamen e es de colo ojo.
Láse
El láse pa e de la na e enemiga has a el bo de de la pan alla. Puede se de colo azul, e de
o ojo, además de pode al e na en e ambos siguiendo di e en es pa ones.
Onda
Simila al láse pe o en ez de se lineal iene o ma ci cula y se expande desde su o igen (el
enemigo que la dispa a). Puede se de colo azul, e de o ojo, además de pode al e na en e
ambos siguiendo di e en es pa ones.

65
Tipos de enemigos
Enemigos
En el diseño de los enemigos no males (no con los je es) no sigue un pa ón conc e o sino que
se an a c ea enemigos básicos cuyo compo amien o se pueda modi ica ácilmen e pa a
c ea un g an núme o de enemigos di e en es, asignando di e en es pa ones de mo imien os y
de dispa os, así como a ibu os (como ene gía, nº de pun os).
Po ejemplo, un enemigo que apa ezca po la un lado de la pan alla y a ance dispa ando hacia
el o o. Un enemigo que apa ezca po un lado de la pan alla, dispa e y uel a po donde ha
enido. Enemigos que puedan apa ece espon áneamen e en el in e io de la pan alla, o de
o ma a la posición del p o agonis a. También enemigos que dispa es siguiendo di e en es
pa ones de ipo, colo , di ección y demás a ibu os.
Je e 1
Es e je e pe manece en la pa e cen al supe io de la pan alla sin mo e se mien as dispa a
achas de balas ojas en odas di ecciones. La elocidad de las balas oscila en e un mínimo y
una máximo. T as acaba con ⅔ de su ida alen iza las balas po debajo del mínimo y empieza
a añadi más balas, y cuando es á a pun o de mo i a aumen a su elocidad y añadi ambién
balas g ises.
66
Je e 2
Es e je e se desplaza po la pan alla siguiendo un eco ido ijo y sol ando ondas de cualquie a
de los es colo es de o ma alea o ia. Poco a poco el in e alo en e ondas se a es echando y
las ondas son más ápidas. Llegado cie o pun o, las ondas se limi an a los colo es azul y ojo.
Además, una onda puede se de di e en es colo es (po que es á di idida a ozos o po que se
a al e nando).
Je e 3
Es e je e se mue e po la pan alla ebo ando en sus esquinas. Cuen a con un escudo que lo
en uel e p o egiéndolo de dispa os y que no puede se des uido, pe o que iene una abe u a
po la que pode dispa a le. El escudo gi a, la di ección del gi o cambia de an o en an o.
Desde el escudo salen dispa adas bolas ebo an es, y cuan o más ce ca se es á de ence al
je e, más balas hay en pan alla.
Además, de ez en cuando se lanzan balas des uc ibles en odas di ecciones.
67
Je e 4
Es e je e se encuen a en el cen o de la pan alla, no se mue e po ella pe o o a
cons an emen e. Dispa a lase s con inuos que o an jun o a él. Con o me se le a qui ando
ida, la elocidad de gi a aumen a, así como el núme o de lase s y sus pa ones, además de
añadi algunos dispa os ex a.
68
Escena ios
A pa e de un simple colo de ondo, muy p ác ico pa a e i a dis acciones isuales, el juego
cuen a con o os dos ipos de escena ios, los basados en mapas de iles y los gene ados
p ocedu almen e.
Mapa de iles
Son escena ios c eados a mano a pa i de un conjun o de iles. Se aplica un sc oll pa a que de
sensación de a ance y se c ea un loop pa a que esul e in ini o mien as du e la ase.
Usando es a écnica se c ea á el escena io del bosque.
Mapa p ocedu al
Aunque un mapa p ocedu al puede se un mapa de iles, en es e caso la écnica se usa á pa a
c ea un escena io basado en el cielo donde se c een sob e la ma cha di e en es elemen os de
di e en es ipos (po ejemplo, nubes) y elocidades (pa a simula p o undidad) siguiendo unas
eglas y es icciones.
En el caso de las nubes además se aplica á un shade o alguna écnica de o ma que se
imp iman de o ma semi anspa en e sob e los o os elemen os (p o agonis a, enemigos, balas,
e c.) pe o no sob e el p opio ondo (de o ma que se man engan blancas).