Titulo Cusumbo: Video Juego Educativo Para La Exhibición Bosque Seco Del Museo De Ciencias Naturales

Titulo Cusumbo: Video Juego Educativo Para La Exhibición Bosque Seco Del Museo De Ciencias Naturales Autores Jaime Alberto Rocha, Jairo Andrés Silva

0 downloads 76 Views 2MB Size

Story Transcript

Titulo Cusumbo: Video Juego Educativo Para La Exhibición Bosque Seco Del Museo De Ciencias Naturales

Autores Jaime Alberto Rocha, Jairo Andrés Silva

Resumen Un videojuego se puede definir como una aplicación interactiva que a través de un controlador permite simular experiencias en un medio de reproducción. Gracias a sus capacidades de comunicación, un videojuego es una herramienta de apoyo para la presentación de información de un tema, en este caso sobre los bosques secos del Valle del Cauca. Un instrumento interactivo busca brindar al usuario información de forma más eficiente y didáctica, este proyecto busca implementar un nuevo instrumento basado en tecnología que brinde información a los visitantes de manera interactiva y entretenida. Como parte de un proyecto educativo, el videojuego como tecnología de la información ilustra las causas, las consecuencias positivas y negativas generadas por individuos ajenos a este; como la pérdida de flora y fauna de vital importancia para el ecosistema. Todo esto con el objetivo de despertar el interés de las personas que tienen contacto directo e indirecto con los bosques secos. El proyecto propuesto busca explorar las bondades de un videojuego como herramienta interactiva informativa. Otros proyectos están explorando otros tipos de modelos interactivos por ejemplo media interactiva, realidad aumentada, realidad virtual entre otros.

Objetivos Objetivo General Desarrollar un videojuego que sirva como herramienta de apoyo para la presentación de información sobre los bosques secos del Valle del Cauca.

Objetivos Específicos 

Analizar el bosque seco vallecaucano con el fin de identificar características que puedan ser incluidas en la historia del videojuego; por ejemplo, personajes principales, retos y metas.



Diseñar e implementar una mecánica de videojuego para incorporar de manera adecuada las características seleccionadas.



Diseñar e implementar una interfaz gráfica de usuario que permita visualizar elementos del Bosque Seco además de permitir involucrar al usuario con una situación relacionada con el mismo.

Marco teórico Para el desarrollo del videojuego se debe tener en cuenta elementos conceptuales que sirven de base en los siguientes capítulos, la mecánica juega un papel fundamental en el videojuego y su interacción con los demás elementos presentes en un videojuego.

Sprite Un sprite es un gráfico de mapa de bits que está diseñado para ser parte de una escena mayor. Puede ser una imagen estática o un gráfico animado. Ejemplos de sprites incluyen objetos en videojuegos 2D, iconos que forman parte de una interfaz de usuario de una aplicación. Los desarrolladores referencian estos sprites en el código fuente y asignan propiedades tal como cuando serán visualizados y cómo interactuar con otros sprites. También podemos afirmar en computación gráfica que un sprite es una imagen bidimensional o animación que se integra en una escena, estos fueron inventados originalmente como un método rápido de composición de varias imágenes juntas.

Colisiones – Física La detección de colisiones típicamente se refiere al problema computacional de detectar la colisión de dos o más objetos. Un tema de gran importancia es el manejo de colisiones, en el caso de los juegos en 3D sería el manejo de colisiones de modelos (Mallas) y en el caso de los juegos 2D sería el manejo de colisiones de imágenes. Dados dos objetos, estos entran en contacto cuando los puntos pertenecientes a sus fronteras ocupan el mismo espacio, es decir, las coordenadas de cada punto se encuentran en cierto sector de interferencia. Generalmente la frontera de los objetos coincide con la forma de los mismos, sin embargo esto no es obligatorio. A medida que las consideraciones geométricas se acercan cada vez más a la forma exacta de un objeto complejo la intensidad de cálculos y consideraciones en las reglas de la aplicación se hace mayor, sin embargo hay métodos muy útiles y bastante simples, usados en juegos y otras aplicaciones donde no se necesita una precisión muy alta o donde una geometría sencilla es más que suficiente. Los métodos simples se basan en el uso de áreas de contacto que poseen formas regulares, el principio se centra entonces en encerrar el objeto en una figura regular que permita hacer la detección de la intersección de forma relativamente sencilla. Los casos de consideración más simples para la detección de colecciones son áreas de contacto rectangulares y áreas de contacto circulares. La idea detrás de la detección de colisiones entre 2 imágenes consiste en que para cada píxel de la primera imagen, vamos a comprobar si se choca con un píxel de la segunda imagen. Las imágenes (sprites) son siempre rectangulares y muy pocos objetos son de forma rectangular, es por esto que la mayoría de las imágenes contienen gran cantidad de pixeles transparentes. Cuando se comparan 2 pixeles que colisionan de dos imágenes distintas respectivamente, si cualquiera de los pixeles es transparente no hay colisión, únicamente cuando el pixel de la primer imagen y el pixel de la segunda imagen no son transparentes ocurre una colisión. Colisiones y transparencias

Transparencia Pixel Imagen 1

Transparencia Pixel Imagen 2

Colisión

SI NO SI NO

SI SI NO NO

NO NO NO SI

Manejo de Matrices A través de la multiplicación de matrices se pueden transformar vectores y combinar varias transformaciones juntas. Al programar en XNA implícitamente se utilizan matrices 4X4 para representar las transformaciones. La idea es la siguiente: Se establecen las entradas de una matriz A 4X4 para describir una transformación. Luego se colocan las coordenadas de un punto, o las componentes de un vector en las columnas de un vector fila v de 1X4. El producto vA genera un nuevo vector transformado v’. Por ejemplo si A representa una traslación de 20 unidades sobre el eje X y v = [5, 7, -2, 1], el producto vA = v’ = [25, 7, -2, 1].

Transformaciones Básicas La matriz de translación

Se puede trasladar el vector (x, y, z, 1) Px unidades en el eje x, Py unidades en el eje Y, y Pz unidades en el eje z multiplicándolo por la siguiente matriz:

La inversa de la matriz de translación se encuentra simplemente negando la translación del vector p.

La matriz de rotación Se puede rotar un vector Θ radianes alrededor de los ejes X, Y, y Z. En la mecánica de un videojuego 2D las rotaciones se hacen en el eje Z. Aunque hablar de rotar con respecto al eje Z es equivalente a rotar con respecto a un punto.

XNA utiliza la función CreateRotationZ que puede ser utilizada para hacer girar un conjunto de vértices alrededor del eje z. Esta función es un método de la estructura Matrix. XNA utiliza un orden de enrollamiento en sentido horario y la rotación se da en el sentido de las agujas del reloj. Para rotar un vector con respecto al eje z debe multiplicarse por la siguiente matriz:

La inversa de una matriz de rotación R es su transpuesta 𝑅 𝑇 = 𝑅 −1 . Tal matriz se dice que es ortogonal. La inversa de la matriz de rotación con respecto al eje z, es la siguiente: CosΘ SenΘ 0 0

-SenΘ CosΘ 0 0

0 0 1 0

0 0 0 1

La matriz de escalación

Se puede escalar un vector Qx unidades en el eje x, Qy unidades sobre el eje y, y Qz unidades en el eje z multiplicando un vector con la siguiente matriz:

La inversa de una matriz de escalación se encuentra tomando el recíproco de cada factor de escala

Combinando Transformaciones A menudo se aplica una secuencia de transformaciones a un vector. Se puede por ejemplo, escalar un vector, a continuación, girarlo, y finalmente trasladarlo a su posición deseada. Ejemplo: Escalar el vector p = [5, 0, 0, 1] en una quinta parte en todos sus ejes, a continuación rotar π/4 radianes en el eje Y, y finalmente trasladarlo 1 unidad en el eje X, 2 unidades en el eje Y, y 3 unidades en el eje Z. Solución: Se debe realizar un escalado, una rotación en torno al eje y, y una translación. Se establecen las matrices de transformación S, Ry, T para la escalación, rotación y translación respectivamente, como sigue:

Aplicando la secuencia de transformaciones en el orden, escalación, rotación, y translación, se obtiene:

Transformaciones de Mundo

Las transformaciones de mundo se utilizan para posicionar y orientar los objetos individuales (imágenes) en el mundo. Por ejemplo, se puede girar, trasladar o escalar el modelo, o realizar alguna combinación de estas operaciones.

Transformaciones de Vista

Las transformaciones de vista o visualización convierten el espacio del mundo a espacio de vista (pantalla). La transformación de vista cambia la posición y la orientación del punto de vista. Siguiendo la analogía de la cámara, esta transformación posiciona el trípode de la cámara, apuntando la cámara hacia el mundo, del mismo modo a que si la cámara se moviera en cierta posición y rotara hasta que apuntara en la dirección deseada. Las transformaciones de vista se componen generalmente de traslaciones y rotaciones, asimismo para lograr una cierta composición de escena en la imagen final o fotografía se puede mover la cámara o mover todos los objetos en la dirección opuesta. Por lo tanto, una transformación de mundo que rota en sentido anti horario un objeto es equivalente a una transformación de vista que gira la cámara en sentido horario. Transformaciones de Proyección

Las transformaciones de proyección son análogas a elegir un lente de una cámara, tal transformación determina cuál es el volumen del campo de vista o visualización y por lo tanto que objetos (imágenes) están adentro y cómo se ven. La transformación de proyección determina cómo se proyectan los objetos en la pantalla, como su nombre indica. Se proporcionan dos tipos básicos, un tipo es la proyección en perspectiva, que coincide con la forma de ver las cosas en la vida cotidiana. La perspectiva hace que los objetos que están más lejos parecen más pequeños; por ejemplo, hace que las vías del tren parezcan converger en la distancia. Si se está tratando de obtener imágenes realistas, se elige la proyección de perspectiva. El otro tipo es la proyección ortográfica, que mapea los objetos directamente en la pantalla sin afectar su tamaño relativo. La proyección ortográfica se utiliza en aplicaciones de diseño arquitectónico, donde la imagen final tiene que reflejar las medidas de objetos en lugar de como lucen. En un juego en 2D la función spriteBatch.Begin de XNA, utiliza por defecto una matriz de proyección ortográfica, así que no hay que preocuparse por su manipulación. La clase SpriteBatch (XNA) tiene una matriz de proyección implícita que toma las coordenadas en el "espacio cliente" de la ventana gráfica (viewport) ((0,0) en la parte superior izquierda, una unidad por píxel) y las pone en la pantalla. La llamada a la función Begin tiene una sobrecarga que acepta una matriz de transformación, la cual es equivalente a una matriz de vista o visualización utilizada para mover la cámara alrededor. También se utiliza el llamado a la función Draw, la cual mientras no se use una matriz permite especificar la posición, rotación, escala, etcétera, equivalente a una matriz de mundo utilizada para el posicionamiento de un modelo (sprite) en el escenario. El "modelo" equivalente para SpriteBatch es un cuadrado (sprite) del tamaño de la textura. Cuando se dibuja, ese cuadrado es transformado a sus coordenadas de mundo, luego se transforma a sus coordenadas de visualización o vista, y luego, finalmente, se transforma a sus coordenadas de proyección.

Sistema de Partículas o Motor de Partículas Es una técnica usada para simular gran cantidad de efectos. Muchos fenómenos naturales se componen de gran cantidad de pequeñas partículas que se comportan de manera similar (por ejemplo copos de nieve cayendo, chispas de fuegos artificiales, las “balas” que un arma espacial futurista emite, fuego, corriente de agua, polvo o efectos abstractos como senderos brillantes o efectos de un hechizo mágico). Los sistemas de partículas se usan para modelar tales fenómenos.

Análisis Según el Instituto Vallecaucano de Investigaciones Científicas (Inciva) “El bosque seco tropical es una formación vegetal que en Colombia se presenta en sitios entre los 0 a 1200 metros de altura sobre el nivel del mar, con temperaturas promedio diaria, alrededor de 24°C y que oscila entre 12°C en la noche y 38°C en el día”. Este videojuego educativo pertenece al proyecto MOMU, está dirigido para la exhibición de bosques secos del Valle del Cauca, ubicada en el museo departamental de ciencias naturales Federico Newhman; por esta razón la temática, los personajes y los entornos están basados en el guion museográfico brindado por INCIVA. El videojuego educativo está dirigido para una audiencia objetivo de niños y niñas de primaria, con edad entre 6 y 10 años, estos niños se caracterizan por ser activos, dinámicos, curiosos y familiarizados con la tecnología.

Mecánica y situaciones La mecánica juega un papel fundamental en todos los aspectos de un videojuego, define cada una de las situaciones en la que se encuentran los personajes y los jugadores durante el videojuego, además de las interacciones y las capacidades para sortear los distintos problemas.

Nivel 1

entorno va cambiando mostrando efectos positivos de sus acciones.

En el primer nivel el jugador empieza su recorrido por el videojuego, después de Nivel 2 recibir instrucciones puede empezar a jugar y mientras va recorriendo este nivel el

los

En el segundo nivel, el jugador debe último obstáculo que consiste en esquivar las recolectar una cantidad de fuegos antes que hachas y llegar a la plataforma superior. termine el tiempo. Nivel 4 Nivel 3 El último nivel del videojuego, consiste en una Al llegar al nivel 3, el jugador debe recorrer el serie de preguntas y respuestas. El jugador debe nivel evitando los obstáculos y al final superar el elegir la respuesta correcta entre 3 opciones.

Requerimientos Para lograr las mecánicas propuestas en la sección anterior se hace necesario el uso de las técnicas descritas a continuación: Colisiones Las colisiones son de vital importancia en el video juego debido a que se necesita todo el tiempo conocer si el personaje (cusumbo) realiza un contacto o invade el espacio de determinados objetos, además en algunas circunstancias es también necesario conocer si el contacto ocurre entre diferentes objetos del juego sin involucrar al personaje. Cuando el video juego determina que ocurre una de estas situaciones se dispara un evento o suceso que corresponda con la mecánica del video juego.

Colisión Cusumbo Roca

Matemáticas La importancia de las matemáticas se ve reflejada en la computación gráfica, el video juego hace gran uso de estas, por ende son de vital importancia. Se utilizan matemáticas en las siguientes situaciones: 

Manejo de matrices para las transformaciones de mundo y de vista (cámara) en particular álgebra lineal, y el uso constante de vectores.



Uso de la función seno para describir el movimiento del agua y los troncos que flotan sobre ella en el primer nivel del juego, en el movimiento del personaje (cusumbo) cuando este salta y cae sobre un tronco que flota en la superficie del agua también en el primer nivel del

juego, en el movimiento del espíritu del bosque del primero, segundo y tercer nivel, y en el movimiento de las llamas del tercer nivel.

Comportamiento Tronco

Física La física se encuentra intrínsecamente presente en la naturaleza por ende si se quiere dar realismo en un video juego es importante su aplicación para simular o recrear diferentes situaciones o sucesos. Se utiliza física en las siguientes situaciones: 

Movimiento rectilíneo uniforme en el desplazamiento de los peces en el primer nivel, disparo de la gema y hachas lanzadas por el cazador en el tercer nivel; simulación de un péndulo aplicado a las hachas en el tercer nivel y el movimiento de la bola en la cuarta zona del mismo nivel.

Física en las Hachas Nivel 3

Sistema de partículas Se usa un sistema de partículas para elementos que utilicen características como tiempo de vida, velocidad, color, velocidad angular, tamaño, y que se originan dentro de un espacio determinado

pero cuya creación se da aleatoriamente sin salir del perímetro de dicha área o espacio. Tales elementos requieren actualizar sus características en cada ciclo de video o frame durante su tiempo de vida. Se utilizó un sistema de partículas que recreará el fuego del final del primer nivel, también en el segundo nivel para el fuego que cae del cielo se hizo uso de un sistema de partículas pero con ligeras modificaciones el cual quedó plasmado en la clase FireEngine.

Partículas Fuego Nivel 1

Parallax scrolling Es una técnica de desplazamiento usada en computación gráfica en el que las imágenes de fondo se mueven más lentamente que las imágenes en primer plano, creando la ilusión de profundidad e inmersión. Se logra esta técnica con la creación de diferentes capas que se mueven a velocidades diferentes, también se pueden crear sprites, o partes independientes de una imagen que se mueven dentro de un paisaje digital. En el nivel uno y tres se pueden ver el uso de esta técnica que permite crear el efecto de profundidad.

Parallax Scrolling Nivel 1

Diseño Después de realizado el análisis de la problemática del bosque y de la mecánica del videojuego se procede a realizar el diseño de cada uno de los niveles y del sistema general. Además, para los distintos niveles se requieren unos algoritmos generales que son modificados según los requerimientos.

Niveles A continuación se hace una descripción de cada uno de los niveles, cada nivel se encuentra acompañado de una máquina de estado que ilustra el comportamiento general del sistema y jugador. Cusumbo es un video juego educativo con 4 niveles, el jugador debe completar cada uno de los niveles para completar el juego, además en los 3 primeros niveles debe evitar ciertas situaciones para no perder el nivel. Al perder el nivel se le da al jugador la opción de repetir el nivel o salir del juego.

Máquina de Estados VJ Cusumbo

Nivel 1 – Minería y Tala El nivel 1 de “Cusumbo” consiste en recorrer un escenario caracterizado por los troncos cortados que recorren los ríos, estos ríos se encuentran contaminados con mercurio y como

consecuencia de esto los peces han sufrido mutaciones peligrosas. Durante el recorrido del personaje por el nivel las imágenes se van cambiando para mostrar la recuperación del bosque. El jugador cuenta con la capacidad de moverse en forma horizontal por el nivel y además con un botón asignado el cual le permite saltar para ir sorteando los distintos obstáculos.

cuando el personaje completa la zona de los troncos en el agua, al cambiar de zona las minas que se encuentran en la montaña del fondo también son removidas. Otro de los elementos presentes en este nivel son los mineros, para poder eliminarlos el personaje debe hacer colisión entre la parte inferior de él y la parte superior del minero, si se hace de forma correcta el minero es removido y en su lugar aparece un tótem. El personaje cuenta con 3 vidas, representadas en un corazón en la parte superior izquierda de la pantalla, si sufre algún daño la imagen del corazón se cambia. Los daños que afectan las vidas del personaje son tocar el agua y tocar el minero en un lugar equivocado.

Por último el personaje debe llegar al final del nivel y haber eliminado todos los mineros, para Mientras va recorriendo el nivel, los arboles van terminar con el nivel. En caso de no haber cambiando después que el personaje pasa por eliminado todos los mineros, el nivel no será su ubicación. Los cambios de zona se dan completado.

Máquina de Estados Nivel 1

EL jugador moviendo el personaje debe hacer Nivel 2 – Quema Bosques colisión con el fuego que empieza a aparecer El nivel 2 de “Cusumbo” es un nivel donde el por la parte superior de la pantalla, la colisión jugador tiene un tiempo límite para evitar que el debe hacerse con la parte superior del fuego queme el bosque, moviendo el personaje personaje el lugar indicado con una la vasija. La aparición de los fuegos se hace de forma aleatoria por todo el ancho de la pantalla, si el a la posición donde el fuego está cayendo evita jugador no lo alcanza a atrapar o lo toca con que este llegue al suelo. otra parte del cuerpo que no sea la vasija, se le indica al jugador que no fue atrapado, esto con El jugador después de recibir las instrucciones una imagen de un fuego pequeño. del espíritu del bosque empieza un juego contrarreloj, en este juego se deben recoger un La cantidad de fuegos atrapados se indica en la total de 50 Fuegos antes que termine el tiempo parte superior izquierda de la pantalla. Si no límite, este tiempo se indica en la parte inferior logra atrapar los 50 fuegos, el jugador podrá de la pantalla y se va vaciando conforme pasa el volver a repetir este nivel. tiempo.

Máquina de Estados Nivel 2

Nivel 3 – Cacería Al igual que en el nivel 1 de cusumbo, el nivel 3 consiste en recorrer un escenario de forma horizontal. En este nivel hay nuevos objetos relacionados con la cacería de la fauna en los bosques, estos elementos deben ser sorteados con gran habilidad para determinar el momento preciso para correr y con una nueva habilidad para agacharse, todo con la meta de llegar hasta el final del nivel y eliminar el cazador que ha puesto estas trampas. El jugador al controlar el personaje para moverlo de forma horizontal en el nivel 3, este nivel se encuentra dividido en 4 zonas y es el nivel más extenso de todos. Cada zona tiene un

su tamaño alternando entre grande y pequeño, en caso de estar en estado pequeño y presionar la tecla de salto el personaje volverá a tu mañana normal. En este nivel el jugador cuenta con nueve vidas por zona, al cambiar de zona las vidas perdidas son restablecidas, las formas de perder una de las vidas son: Tocando alguna de las trampas, las hachas o las trampas del suelo; también en caso de caer por uno de los huecos perderá una de sus vidas al hacer colisión con el fuego o con los chuzos. Las vidas se muestran en la parte superior derecha de la pantalla.

En la tercera zona de este nivel, el jugador debe tomar una gema que le permite seguir, de lo contrario hay una trampa que le impide avanzar. Por ultimo en la zona 4 se encuentra el líder de los cazadores, este personaje envía hachas a la terreno irregular y abismos por donde el personaje puede caer y perder una de sus vidas. posición a la que se encuentra el protagonista, usando el salto el jugador debe llegar a la En este nivel se cuenta con una nueva habilidad plataforma más alta y al hacerlo podrá que es de hacerse más pequeño, si el jugador completar este nivel. presiona la tecla asignada el personaje cambia

Máquina de Estados Nivel 3

Nivel 4 – Asociación de Cartas Para el nivel 4 se busca hacer un juego de Preguntas y Respuesta 1. Mineros asociación de preguntas y respuestas, estas se  Pregunta: Imagen de una mina dan durante el videojuego de diferentes formas. Hay 5 preguntas, 5 respuestas buenas y 10  Respuesta: Pez mutante preguntas malas; esto se hace mediante  Justificación: La minera asociación de imágenes; cabe resaltar que las contamina los ríos con sus preguntas y su respuesta son de forma aleatoria desechos tóxicos y estos han al igual que las respuestas incorrectas. creado mutaciones en los peces En la parte superior sale una carta con una imagen que debe ser asociada con una de las respuestas de la parte inferior, el cursor para elegir la respuesta es el personaje. Al moverlo el cambiara entre cada una de las 3 cartas que pueden ser la respuesta. Después de estar ubicado en una de las cartas el usuario deberá presionar la tecla de salto, y esa será la respuesta escogida, si es la correcta saldrá un símbolo de acierto, de lo contrario saldrá un símbolo de error. Al final del nivel se le indicara al jugador la cantidad de respuestas buenas.

del habitad. 2. Quema bosques  Pregunta: Fuego  Respuesta: Árbol Quemado y seco  Justificación: La quema de los bosques es un grave problema y es muy recurrente en la problemática del videojuego. 3. Tala de bosques  Pregunta: hacha en árbol  Respuesta: Arboles cortados  Justificación: la tala de los bosques tiene como consecuencia el porcentaje tan

bajo de bosques que nos quedan en este momento. 4. Cazadores  Preguntas: Cazador  Respuesta: Trampa  Justificación: Las trampas puestas por los cazadores han terminado con gran parte de la fauna de los bosques 5. Minería  Pregunta: Minero  Respuesta: Agua y el cartel de veneno  Justificación: El agua contaminada por los desechos resulta peligrosa para el consumo humano, animal y de las plantas. Las Respuestas Equivocadas: Árbol bonito, Espíritu bosque, Roca, Árbol bonito, Tótem, Flores, Gema, Sol, Luna, Corazón lleno.

Máquina de Estados Nivel 4

Algoritmos y su implementación A continuación se describen los algoritmos utilizados y su implementación, de acuerdo a lo descrito en la sección de requerimientos (ver sección ¡Error! No se encuentra el origen de la referencia.). Para la implementación se decidió utilizar el motor XNA 2D pues es un entorno de desarrollo que permite la integración adecuada de juegos del género plataforma, es de distribución gratis y abierta, permite multiplataforma y hay experiencias exitosas previas dentro del grupo de investigación que usaban este entorno [6] [7]. Cabe anotar que durante el desarrollo del proyecto aparecieron nuevos motores que no fueron considerados por ser propietarios o porque en ese momento el estado de avance de este proyecto no ameritaba una migración.

Clase GameplayObject Existe en el video juego la clase GameplayObject la cual representa los objetos colisionables en el video juego incluyendo por supuesto al personaje (cusumbo) lo cual ya sugiere que están presentes en todos los niveles del video juego.

Diagrama de Componentes GameplayObject

Los objetos que tienen un comportamiento que debe personalizarse (customize) heredan de esta clase como es el caso del personaje (Character), o minero (Minero) en el primer nivel, aunque este no es el caso de todos los objetos colisionables ya que algunos no heredan de esta clase es decir no tienen una clase derivada representativa la cual deba personalizarse, por ejemplo el pasto en el primer nivel del video juego, dado que no existe una clase pasto sino que sencillamente se representa como un objeto GameplayObject. Es importante anotar que al momento de crearse un objeto GameplayObject este recibe un atlas de textura, lo cual es una colección de mapas de textura, es más eficiente poner diversas texturas juntas en una gran textura porque se trabaja sobre un solo archivo.

Atlas de Texturas

Este atlas de textura contiene 16 frames (cuadros) diferentes de un personaje a pie. El frame 1 se sitúa en la esquina superior izquierda; los frames van de izquierda a derecha, luego baja a la próxima fila cuando el final de la fila es alcanzado, como se muestra a continuación: 1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

Frames atlas de texturas

Un atlas de textura con una sola textura es una situación muy recurrente en el videojuego la cual contiene 1 fila y 1 columna para un total de un solo frame.

Comportamiento parallax scrolling Para el uso de esta técnica en el método GetViewMatrix de la clase cámara se pasa como parámetro un vector de dos coordenadas. El código del método es el siguiente:

Función: GetViewMatrix public Matrix GetViewMatrix(Vector2 parallax) { //Dos sprites con diferente parallax se moverán a velocidades distintas, si por ejemplo un //sprite tiene parallax (1.0, 0.0) y otro tiene parallax (0.5, 0.0) el primero de ellos se //moverá al doble de velocidad que el segundo en el eje X, y ninguno de los dos tendrá //movimiento en Y. return Matrix.CreateTranslation (new Vector3 (-Position * parallax, 0.0f)) * Matrix.CreateTranslation (new Vector3 (-OffsetBegin, 0.0f)) * Matrix.CreateRotationZ (Rotation) * Matrix.CreateScale (Zoom, Zoom, 1.0f) * Matrix.CreateTranslation (new Vector3 (Origin, 0.0f)); }

Se utilizó una clase Layer (capa) la cual reúne todos los sprites con un parallax común, así los sprites de dos capas distintas con diferente parallax se moverán a velocidades distintas. El parallax de una capa se asigna en el momento de creación de dicha capa. El video juego utiliza parallax en el nivel uno y tres y su aplicación está enfocada en los desplazamientos en el eje x, debido a la mecánica del video juego. Muchos sprites en los que no interesó o no se requería el efecto de profundidad se dejaron sin pertenecer a una capa y con un parallax (vector) por defecto igual al del personaje (cusumbo), en el cual sus 2 coordenadas contienen el valor flotante uno. Los sprites que requerían del efecto de profundidad se asignaron a las diferentes capas dependiendo de la velocidad de movimiento requerida, para esto se hizo uso de una lista de capas y cada capa contiene una lista de sprites, de esta manera los sprites con una misma velocidad pertenecen a una misma capa y cada capa contiene su correspondiente lista de sprites. Así, para dibujar los sprites de las diferentes capas primero se recorren todas las capas. Y luego para cada capa se recorre su lista de sprites dibujándose un sprite en cada iteración. for (int i = 0; i < _layers.Count; i++) { _layers[i].Draw (_spriteBatch); } foreach (Sprite sprite in Sprites) sprite.Draw(spriteBatch);

Cámara La cámara se utiliza en todos los niveles del video juego y su andamiaje se plasma en la clase Camera; el efecto parallax scrolling que también está asociado a ella se percibe en el primer y tercer nivel debido a que el tamaño del mundo en los otros niveles es igual al campo de visión o viewport del juego. Al constructor de la clase Camara se le debe pasar el viewport que se ha definido previamente en el constructor de la clase principal (ParallaxScrollingGame) y se asigna al atributo _viewport de la clase Camera, dentro del constructor hay 2 atributos más de la clase. Origin es un atributo con dos componentes (X, Y) al cual se le asigna la mitad del tamaño del viewport (ancho y alto de la pantalla asignada para el juego) tanto en X como en Y respectivamente y Zoom al que se le asigna el factor de escalación por defecto. //Constructor de la clase Camera. public Camera(Viewport viewport) { _viewport = viewport; Origin = new Vector2 (_viewport.Width / 2.0f, _viewport.Height / 2.0f); Zoom = 1.0f; }

Para hacer que la cámara siga al personaje se debe centrar alrededor de él, esto se logra ajustando la posición de la cámara igual a la del personaje y restándole la mitad del tamaño de la pantalla (viewport) dividido el zoom (factor de escalación). El objeto Viewport se guardó en una variable miembro llamada _viewport. public void LookAt(Vector2 posicionPersonaje) { //Position es la propiedad que me guarda la posición de la cámara. Position = posicionPersonaje - new Vector2 (_viewport.Width * 0.5f / Zoom, _viewport.Height * 0.5f / Zoom); }

Para hacer que la cámara siempre siga al personaje se deben añadir el siguiente par de líneas en el bucle de actualización (función Update) en las clases principales de cada nivel. //Actualiza la posición del personaje. _character.Update (gameTime); // Actualiza la cámara para seguir al personaje. _camera.LookAt (_character.Position);

Resultados y pruebas Como resultado, se logró implementar un juego educativo estilo ecléctico que utiliza la fantasía para crear conciencia sobre el bosque seco. Consta de cuatro niveles, el primer nivel trata de superar la amenaza de la minería, el segundo trata de superar la amenaza de la quema, el tercero trata de superar la amenaza de la cacería. Finalmente, el cuarto evalúa el conocimiento adquirido.

Este juego se probó con 5 estudiantes de la Pontificia Universidad Javeriana, Cali entre 18 y 23 años. Los estudiantes jugaron todos los niveles. Al final, se midieron el número de respuestas

correctas, evidenciando un aprendizaje del 87% con el uso del juego. (Ver Tabla 1 Resultados Nivel 4). Tabla 1 Resultados Nivel 4

PREGUNTA P1 1 2 3 4 5

O X O O O

P2

P3

P4

P5

O O O O O

X X O O O

O O O O O

O O O X O

80%

100%

75%

100%

80%

Además, a los participantes se les aplicó el siguiente cuestionario: Califique de 0 a 5, en donde 0 significa totalmente en desacuerdo y 5 totalmente de acuerdo (Ver Tabla 2 Resultados Encuesta): 1 -El juego es entretenido. (0= Poco entretenido…5=Muy entretenido) 2 - Aprendí acerca del bosque seco y sus amenazas. (0= Nada Aprendido… 5= Mucho Aprendido) 3 - El nivel de dificultad del juego es alto. (0= Muy Fácil… 5= Muy Difícil) 4 – La interfaz gráfica del juego es clara. (0=Poco Clara… 5= Muy Clara) Tabla 2 Resultados Encuesta

PREGUNTA 1 -El juego es entretenido. 2 - Aprendí acerca del bosque seco y sus amenazas.

P1

P2

P3

P4

P5

4 5

5 3

3 4

5 4

Promedio 5 4,4 5 4,2

3 - El nivel de dificultad del juego es alto.

4

2

4

3

3

3,2

4 – La interfaz gráfica del juego es clara.

4

5

4

4

4

4,2

Conclusiones y trabajo futuro Se logró realizar una abstracción de la problemática de los bosques, esto se refleja en los personajes, retos y metas, además de características del bosque seco vallecaucano. El modelo de

diseño orientado a objetos facilitó la inclusión de estos elementos en el videojuego. Además, resultó adecuado para incluir las máquinas de estado que se usaron para representar la mecánica nivel. Gracias al uso de las máquinas de estado se logró diseñar una mecánica de juego para cada nivel. Las máquinas de estado permitieron entender cómo se relacionaban entre sí todos los elementos involucrados en cada nivel del videojuego, por ejemplo, los personajes, el entorno del bosque seco, los antagonistas, entre otros. Se diseñó e implementó una interfaz gráfica de usuario que permitió mostrar mensajes asociados al bosque seco y sus amenazas. Las pruebas preliminares realizadas con los usuarios evidencian que la interfaz fue clara y adecuada y que se logró un nivel de aprendizaje (87%). Varios de los algoritmos como el Parallax scrolling y la detección de colisiones se desarrollaron basados en algoritmos fundamentales que tuvieron que ser modificados y adaptados al video juego Cusumbo. Cada situación de juego particular debe ser estudiada y los algoritmos ajustados de acuerdo a la misma. Queda como trabajo futuro: Incorporar y probar con usuarios otros mecanismos de interacción, como por ejemplo el Kinect, para validar la posible incorporación del proyecto en un museo. Realizar pruebas con un mayor número de usuarios (al menos 30), enfocándolas a la edad objetivo (niños de primaria). Las pruebas realizadas con estudiantes universitarios, dan idea del impacto que podría tener el juego. Sin embargo, es necesario probar con el público objetivo pues hubo dificultades en términos del tiempo y los recursos requeridos para probar con niños entre 6 y 10 años así como en términos de la consecución de consentimientos por parte de sus padres. Aun así, el sistema también se probó con un usuario (familiar de uno de los desarrolladores) de esa edad. Aprovechar el potencial multiplataforma del motor para crear una versión móvil del juego en Windows Phone. También sería posible migrar a Linux u OSX. A mediano plazo, sería posible buscar recursos para implementar el proyecto en un museo y para comparar este juego con otros proyectos del grupo DESTINO. Esto permitiría contrastar por ejemplo, juegos basados en fantasía, como Cusumbo, con otros juegos que siguen lineamientos psicológicos estrictos o que siguen un seguimiento museográfico riguroso.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.