Está en la página 1de 10

Diseo y desarrollo de un juego 3D interactivo Squash con herramientas de

realidad virtual y la librera OpenSceneGraph

Charles Miguel Prez Espinoza, Carlos Luis Landvar Borja, Ivn Fabricio Salguero Snchez, Phd. Sixto Garca
Facultad de Ingeniera en Electricidad y Computacin
Escuela Superior Politcnica del Litoral
Km. 30.5 Va Perimetral, Campus Gustavo Galindo Velasco, Guayaquil, Ecuador
Apartado 09-01-5863. Guayaquil Ecuador
e-mail: iperez@espol.edu.ec, clandiva@espol.edu.ec, isalguer@espol.edu.ec, sgarcia@espol.edu.ec

Resumen

El actual trabajo presenta una breve descripcin del desarrollo y diseo de un juego 3D interactivo utilizando
la tecnologa de realidad virtual. Para desarrollar un juego de cualquier tipo es necesario usar las herramientas,
ecuaciones fsicas y matemticas, y reglas bien definidas para obtener un buen resultado, que permita que ste sea
emocionante, divertido y variado con diferentes niveles de dificultad. Lo nico que se agrega o aumenta al crear un
juego en 3D es la parte inmersiva que es la ms importante porque gracias a sta aumenta la diversin y los
deseos de jugar una y otra vez. Adems estos tipos de proyectos en 3D ofrecen a los estudiantes de Ingeniera en
Computacin una tecnologa completamente nueva para el mercado ecuatoriano, y se abren nuevas oportunidades
de trabajo. La creacin de este juego ayuda a aprender a tomar en cuenta lo importante que es optimizar y a
utilizar las diferentes herramientas para crear ambientes en realidad virtual.

Palabras claves: Realidad Virtual, Juego 3D, inmersin, Software, Ingeniera, OpenSceneGraph

Abstract

The present work present a brief description of the development and design of an interactive 3D game using
virtual reality (VR) technology. In order to develop a game of any type it is necessary to use the right tools, exact
physical and mathematical equations, and well-defined rules to obtain good results, allowing it to be exciting,
funny and diverse, they should have different difficulty levels. But, when creating a 3D game, the only thing added
is the importance of how immersive it is, for that increases its fun factor and the need to play it again and again.
Also, this kind of project offers a completely new technology to the Ecuadorian market, and new opportunities. The
creation of this game helps us to learn how important is to optimize and use different tools to create VR
environments.

Keywords: Virtual Reality, 3D Game, immersive, Software, Engineering, OpenSceneGraph

1. Introduccin alcanzado un desarrollo impresionante en las ltimas


Actualmente el mundo es altamente competitivo dcadas. Es as que su apoyo a las diferentes reas ha
y se mueve en un ambiente de cambios tecnolgicos permitido la consecucin de metas que parecieron
acelerados. En este contexto se explica el desarrollo inimaginables y consideradas como parte de la
y diseo de un juego en realidad virtual, el cual abre ciencia ficcin hace muchos aos atrs.
las puertas a una nueva tecnologa dentro del Este es el caso de la Realidad Virtual (RV), que
mercado ecuatoriano. Adems en los ltimos aos en estos tiempos que es considerada como una de las
los avances tecnolgicos en muchas reas han tecnologas ms sorprendentes e innovadoras. Su fin
facilitado el desenvolvimiento de las actividades es producir una apariencia de realidad que permite al
cotidianas, y muchos de estos avances han tenido usuario tener la sensacin de estar presente en ella.
como pilar fundamental, la Computacin, la cual ha Este ambiente se consigue mediante la generacin
por computador de un conjunto de imgenes, que son puede rebotar en el suelo una vez antes de que se
contempladas por el usuario a travs de un casco considere un punto para el contrincante [1]. Las
provisto de un visor especializado (ver Figura 1), o reglas fueron definidas en este juego para un solo
ltimamente los tipos de televisores con esta jugador y poder practicar en la cancha definida en el
tecnologa incluida. Algunas aplicaciones se ambiente de realidad virtual.
completan con trajes y guantes equipados con En la Seccin 4 del artculo se detalla la
sensores diseados para simular la percepcin de metodologa de la aplicacin. En la Seccin 3, se
diferentes estmulos, que intensifican la sensacin de explica el diseo de la misma. En la Seccin 4, se
realidad. Su utilidad, aunque centrada inicialmente listan las herramientas usadas para la creacin e
en el terreno de los videojuegos, se ha extendido a interaccin con el ambiente virtual. En la Seccin
otros muchos campos, como la medicina, Error! No se encuentra el origen de la
simulaciones de vuelo, etc. referencia., se detalla la implementacin. Luego se
incluyen las conclusiones en la Seccin 6, y se
especifican las referencias en la Seccin 7.

2. Metodologa

2.1. Alcance
Figura 1. Visor para uso de la realidad virtual
El juego ha sido diseado para que un jugador
pueda practicar, demostrando de esta manera el uso
En este artculo se habla sobre el desarrollo y de distintos dispositivos de entrada para realidad
diseo de un juego especfico llamado Squash. El virtual, y la interaccin con el ambiente virtual en
Squash es un deporte de raqueta que se practica en que se desenvuelve el juego.
interiores con 2 o 4 jugadores, con una pelota de
goma que puede tener distintos grados de velocidad o 2.2. Requerimientos Funcionales
rebote. Los jugadores golpean la pelota con sus
raquetas (ver Figura 2) hacindola rebotar en la pared Se requiere el desarrollo de una aplicacin de
frontal de la cancha (ver Figura 3). software que simule por medio de dispositivos de
realidad virtual el funcionamiento de una prctica del
juego Squash de un solo jugador.

Se cre un escenario virtual en tres dimensiones,


en el cual deben constar los siguientes objetos de
entrada importantes y funcionales:
Figura 2. Raqueta y pelota para jugar Squash
-Raqueta de Squash
Usada para golpear la bola.

-Bola
Usada para jugar el squash.

-Tiempo
Figura 3. Personas jugando Squash Un control que indica el tiempo restante que le
queda al jugador para seguir en la prctica y ver si su
marcador debe estar en los mejores puntajes.
La pelota puede rebotar en todas las paredes
cuantas veces sea necesario y en cualquier orden,
Y obtener la salida:
siempre que golpee en la pared frontal, pero slo
7. La aplicacin permitir al jugador
observar los diez mejores marcadores
-Marcador de aciertos obtenidos hasta ese
instante.
Un marcador utilizado para mostrar en el
momento del juego cuntas veces se ha fallado y 2.3. Requerimientos no funcionales
cuntas veces se ha acertado en el golpe de la bola.
Estos son los requerimientos no funcionales
del sistema pero que son importantes para el
2.2.1. Funciones desarrollo del mismo los cuales incluyen:

Para esto se requieren diferentes funciones que 2.3.1. Facilidad de uso


nos ayudarn, por medio de los objetos de entrada,
llegar a las salidas del sistema. Estas funciones son: El sistema debe ser de fcil uso y
entrenamiento de los usuarios del juego, as como de
1. La aplicacin debe verificar si estn fcil adaptacin de la entidad con el mismo. Adems
conectados los sensores, de otra el sistema no debe permitir el cierre de una operacin
manera se utilizar el teclado para hasta que todos sus procesos, subprocesos y tareas
poder jugar el Squash. que se relacionen, se terminen y cierren
satisfactoriamente.
2. La aplicacin debe permitir al jugador
escoger las opciones que estn dentro
2.3.2. Rendimiento y escalabilidad
del men principal.

3. Al momento de jugar, la aplicacin El sistema est en capacidad de permitir en el


debe saber si el golpe de la bola contra futuro el desarrollo de nuevas funcionalidades,
la pared es correcto o no lo es, y modificar o eliminar funcionalidades despus de su
aumentar el marcador de aciertos o construccin y puesta en marcha inicial, ya que
fallas correspondientemente. dejamos ciertos parmetros dentro del cdigo para
que se pueda seguir incrementando ciertas funciones
4. La aplicacin permitir al jugador en el mismo.
mover la raqueta del juego segn como
tenga la posicin y orientacin del 2.3.3. Normas tcnicas y reglas del juego
sensor.
Las reglas y tcnicas del juego son otra parte
5. La aplicacin permitir grabar el importante dentro del mismo. Son las que se deben
nombre del jugador si es que este ha cumplir para saber si al momento de jugar fue una
superado a uno de los marcadores falla o un acierto, segn en el lugar donde haya
anteriores y aparecer en los diez pegado la bola. Indican tambin el nmero de rebotes
mejores marcadores. que dar la bola al estar jugando, antes de que se
declare una falla.
6. La aplicacin debe parar el juego
cuando el cronmetro de la prctica 2.3.4. Percepcin de la distancia en la
haya acabado, sea este de un minuto o
cancha
de tres, dependiendo de lo que el
jugador haya escogido.
Es otro requerimiento no funcional, ya que si
no se percibe la profundidad del lugar donde se
encuentra la bola o la raqueta, se har muy difcil
poder pegarle con precisin a la misma. Por ende la
creacin de sombras y sonidos fue lo que solucion e
hizo que esta parte sea ms sencilla.

3. Diseo de la aplicacin

En s, el diseo de la aplicacin fue


evolucionando a lo largo del desarrollo de la misma.
Al inicio se definieron los distintos casos de uso (ver
Tabla 1), y se tuvo una idea muy general sobre cada
uno.

Tabla 1. Casos de uso


Caso de uso 1 Comenzar la prctica de Squash
Caso de uso 2 Colisin entre la raqueta y la bola
Caso de uso 3 Colisin entre la bola y la pared
Caso de uso 4 Ver puntajes altos

Al ir especificando los mdulos que iban


formando la aplicacin, la interaccin entre ellos
pudo ser entendida lo suficiente para plasmarla en
diagramas (ver Figuras 4, 5, 6 y7). Esto fue de gran
ayuda, pues se pudo eliminar mdulos innecesarios,
incluso redundantes, simplificando la
implementacin.

Figura 4. Diagrama de interaccin de objetos del caso de uso 1


Figura 5. Diagrama de interaccin de objetos del caso de uso 2

Figura 6. Diagrama de interaccin de objetos del caso de uso 3

Figura 7. Diagrama de interaccin de objetos del caso de uso 4


4. Herramientas usadas para la creacin datos de entrada son la posicin y orientacin de la
e interaccin de la realidad virtual. raqueta, obtenidos del sistema de captura de
movimiento Polhemus Liberty.
Todos los parmetros son calculados en cada
Para poder crear el ambiente virtual del juego
cuadro de la animacin. Adems, siempre se tiene en
Squash fue necesario tener diverso hardware y
cuenta la tasa de cuadros por segundo (framerate),
software para obtener los datos necesarios para la
pues se necesita la duracin de cada cuadro para el
buena inmersin del juego. A continuacin se
correcto clculo de los parmetros.
detallan las herramientas usadas:
Software
5.1. Movimiento de la bola
a. Librera grfica OpenSceneGraph [3]
b. Microsoft Visual .NET 2008 SP1
El movimiento de la bola siempre est
c. 3D Studio Max 2010
influenciado por la gravedad, simulada como una
d. Librera SDL v1.2 [4]
aceleracin que apunta permanentemente hacia
e. Librera SDL_mixer v1.2 [5]
abajo. Esto para evitar que la bola rebote sin parar
Hardware
hacia todos lados, como si estuviera en el espacio. De
a. Proyector DepthQ con frecuencia de
ah, el movimiento de sta slo es alterado cuando
actualizacin de 120 Hz
golpea contra una pared o el piso, o cuando le pega la
b. Tarjeta Grfica Nvidia QUADRO
raqueta.
FX4700
c. Sistema de captura de movimiento
5.2. Movimiento de la raqueta
Polhemus Liberty
d. Gafas activas NuVision 60GX (ver
A la raqueta modelada en el juego se le tiene
Figura )
definido dos puntos principales: el pivote y el centro
de la malla (ver Figura 4).

Figura 8. Gafas activas NuVision 60GX

Figura 4. Componentes de la raqueta en el juego

5. Implementacin
El pivote est ubicado en la punta del mango, y es
En la aplicacin se usaron ciertas ecuaciones, el punto de referencia para el movimiento y
algoritmos de simulacin fsica para el clculo de: la orientacin de la raqueta. Es decir, la posicin dada
velocidad y aceleracin de la bola, el rebote de la por el sensor de movimiento est representada en el
misma en el piso y paredes, el golpe en la raqueta, la ambiente virtual por este punto. Lo mismo para la
velocidad y aceleracin de la raqueta, y por ltimo la orientacin, la cual es alrededor de este mismo
gravedad, que influye slo en la bola. punto, en direccin del mango de la raqueta.
Para la implementacin de la bola definimos El centro de la malla est, como dice, en el centro
diversos parmetros tomando en cuenta su de la malla donde la bola debe golpear. Se usa como
comportamiento de acuerdo a la fsica, estos son: el centro de una esfera virtual, que contiene a toda la
masa, posicin, velocidad y aceleracin. La raqueta malla, y es usada para el clculo de la interseccin
tiene los mismos, ms la orientacin. Los nicos entre la bola y la raqueta. Tambin se lo usa para
dibujar las normales de los planos virtuales, usados
para el rebote de la bola con la raqueta. Tanto las (Ec. 3)
normales como la esfera virtual son visibles slo con
fines de prueba. stas no son visibles en la versin Donde Vpiv es la velocidad del pivote de la raqueta,
final. Vrm es la velocidad dada por la rotacin en torno al
mango, y Vrp la velocidad dada por la rotacin en
5.3. Rebote con las paredes y piso torno al pivote. Cada uno se calcula de acuerdo a la
velocidad lineal y angular de la raqueta en el frame
Dado que las paredes y piso estn todas en planos dado. Y esta velocidad es luego descompuesta de la
ortogonales respecto al origen, el rebote de la bola se misma manera que la bola en la Ec. 2 (normal y 2
simplifica significativamente. De los 3 componentes tangentes no paralelas del plano), para as poder
de la velocidad de la bola (uno para cada eje en el obtener un nuevo vector de velocidad de la bola muy
espacio), slo el que es perpendicular al plano de realista. Cabe recalcar que el componente normal de
colisin, cambia de sentido, los otros dos siguen la nueva velocidad de la bola es calculado con
igual. coeficiente de restitucin, tomando en cuenta la masa
Cabe recalcar que s se toma en cuenta el de la raqueta y de la bola. Pero slo la bola es
coeficiente de restitucin del impacto entre dos afectada por el cambio de velocidad y no la raqueta,
objetos inelsticos. Considerando que la masa de la por motivos de simplicidad y rendimiento. Entonces:
bola es despreciable con respecto al piso o pared, la
nueva magnitud de cada componente de la velocidad (Ec. 4)
queda as:
(Ec. 1)
Donde Vnb2 es la velocidad normal final de la bola,
Donde CR es el coeficiente de restitucin, un valor Vnb1 es la velocidad normal inicial de la bola, Vnr1 es
entre 0 y 1. As, con cada rebote, la bola va la velocidad normal inicial de la raqueta, Mb es la
perdiendo un poco de su velocidad. masa de la bola, Mr es la masa de la raqueta, y CR es
el coeficiente de restitucin.
5.4. Rebote con la raqueta
5.5. Creacin del escenario y los objetos
Para detectar la colisin entre la bola y la raqueta, usando 3D Studio Max
se utiliza la esfera de interseccin descrita en 5.2. Si
la bola est dentro de sta, entonces se calcula la Para crear los escenarios del juego fue necesario
distancia entre el centro de la bola y el plano de saber las medidas exactas de la cancha del Squash,
colisin, paralelo a la malla de la raqueta. Cuando de qu color normalmente son las paredes,
esta distancia pasa de ser positiva a negativa, materiales, lneas, cuadros, etc. Tambin la distancia
indicando que la bola traspas el plano, la bola es entre donde est el jugador la pared en donde choca
reposicionada pegada al plano antes de ser dibujada la bola (ver Figura 5).
en ese frame, y ah es calculada la nueva direccin y
magnitud de la velocidad de la bola. Adaptando el
procedimiento dado en [2] para una colisin
tridimensional, entonces la velocidad de la bola tiene
3 componentes:

(Ec. 2)

Donde V es el componente perpendicular al


plano de colisin, y Vtang1 y Vtang2 son tangentes al
plano, y no paralelos. En el caso de la raqueta, la
velocidad del punto de impacto en s es dada por:
Figura 5. Medidas de la cancha de Squash
El modelado se lo hizo en 3D Studio Max y se
escal por cada 10 pixeles = 1 cm. Usamos imgenes
de textura de madera y el smbolo de la ESPOL para
el piso y las paredes de color gris con las rayas rojas
(ver Figura 6).
Figura 7. Pantalla inicial del juego

6. Conclusiones y Recomendaciones

Se pueden apreciar las dificultades que aparecen


al desarrollar una aplicacin utilizando este tipo de
tecnologas, como son el caso de utilizar leyes de la
fsica necesarias para poder recrear lo ms fiel
Figura 6. Nuestra cancha de Squash
posible la realidad.

La raqueta de igual forma fue modelada en 3D A diferencia de los objetos reales los objetos
Studio y fue escalada para que pueda entrar en la modelados no actan como tales, estos se traslapan y
cancha. cruzan y esto es un problema. Lo que se trata de
Por ltimo, la pelota es slo una esfera creada decir es que para el uso de esta tecnologa todo
dentro de OpenSceneGraph de color negro, que es el comportamiento hasta el ms sencillo como la
color normal de la bola que se utiliza dentro del colisin de dos cuerpos debe ser programado como
Squash. tal.

5.6. Sonido en la aplicacin El juego consiste en solo prcticas de un jugador,


ya que nuestro objetivo principal era el uso de
Consiste en un par de pistas musicales, y efectos dispositivos para la realidad virtual y no el juego de
de sonido para las diversas acciones en el juego. Se dos jugadores, pero se podra extender an ms la
utiliz la librera SDL, [4], junto con la librera SDL aplicacin dedicndola al estudio de movimientos de
Mixer 1.2, [5], para fcilmente controlar los sonidos. los jugadores de este deporte con el objetivo de
Todos ellos dados como archivos OGG WAV, estudiar sus rutinas de entrenamiento encontrando
gracias a que son soportados directamente por las errores y mejorando su rendimiento en la cancha.
libreras, sin necesidad de plugins adicionales.
Todo parece indicar que la evolucin de sistemas
de Realidad Virtual, se esforzar en permitir una
mejor participacin del usuario no especializado.
5.7. Men principal
Adems de centrarse en el desarrollo y aplicacin de
habilidades y de conocimientos orientados a la
Al iniciar el juego, el men principal es lo
concepcin, diseo y construccin de mundos
primero que nos aparece. Slo muestra las opciones
virtuales.
para Prctica 1 minuto, Prctica 3 minutos,
Mejores Puntajes y Salir (ver Figura 7). Se usa el
ratn para seleccionar la deseada. El juego en s es 7. Referencias
con el sensor de movimiento.
[1] Hickok, Ralph. "Squash Rackets Rules". Hickok
Sports. Fecha de consulta: 25 de febrero de 2010.
Disponible en http://www.hickoksports.com/
rules/rsquashr.shtml
[2] Berchek, Chad. 2-Dimensional Elastic
Collisions without Trigonometry.
http://www.vobarian.com/collisions/. Fecha de
consulta: 17 de noviembre de 2009.
[3] OpenSceneGraph: open source 3D graphic
toolkit. ltima revisin el 17 de enero de 2010.
http://www.openscenegraph.org/projects/osg
[4] SDL: Simple DirectMedia Layer. ltima revisin
el 21 de enero de 2010. Disponible en:
http://www.libsdl.org/
[5] SDL_mixer 1.2. ltima revisin el 21 de enero de
2010. Disponible en:
http://www.libsdl.org/projects/SDL_mixer/

También podría gustarte