villagra-abp / Iki

[ABP16] Juego de puzzles y sigilo que hace uso de la perspectiva.
GNU General Public License v3.0
0 stars 1 forks source link

Entrega V2 Hito Final - Ikigai #53

Open Juansanalme opened 7 years ago

Juansanalme commented 7 years ago

Información general:

Entrega del hito final para la asignatura de videojuegos 2.

Antes de nada decir que en este issue se incluyen los entregables de todos los hitos, estuviesen retrasados para este hito final, o ya terminados en otros hitos. Estos últimos se adjuntan para poder tener acceso a ellos de manera inmediata pero su desarrollo e implementación están igual que en las anteriores entregas, dado que se daban por terminados. En cada entregable se indicará si su versión es la misma que en anteriores entregas.

Los ítems 9,10,12 y 13, se tratan en un mismo vídeo explicativo para hacer mas cómoda la entrega y la evaluación. Ademas de eso en el apartado de cada uno se incluye una breve explicación. Los items 24, 25 y 26 se entregan como uno solo en un archivo de drive. Más información en el item 24.

Todos los entregables se prueban en el mismo archivo ejecutable, por lo tanto el mismo archivo de proyecto. En caso de que algún entregable tenga una variación para la ejecución, se indicará en la descripción del mismo y se adjuntará el ejecutable y el proyecto con dicha variación.

Aunque todo el código fuente se encuentra en la carpeta "Proyecto", en cada entregable se adjuntará el código fuente que le corresponde, si es posible.

Entrega general Aquí un enlace al archivo comprimido que contiene, por un lado, el proyecto para compilar; y, por otro, el ejecutable ya compilado para probar.

Controles del Juego

Entregables:

Ítem V2.01 - Diseño e implementación de la arquitectura basada en objetos

Sin cambios: Se han añadido más clases, aunque la arquitectura sigue siendo la misma Esta es la parte que más tiempo nos ha llevado en el proyecto, ya que hemos pasado de tener un juego sin estructura ni arquitectura aparente, a algo semi-decente en cuanto a arquitectura y estructura. Hemos perdido demasiado tiempo con esto, porque hemos rehecho el juego prácticamente (con una base) y añadiendo algunas pocas cosas. La arquitectura se puede ver en el código fuente enlazado anteriormente, y consta de una estructura organizada de la siguiente forma:

Ítem V2.03 - Control del player por motor de físicas 2D, dynamic o kinematic

El control del player se hace con el motor de físicas a través de impulsos, de esta manera el jugador se chocará con los muros o las puertas cerradas, y con los enemigos.

Ítem V2.04 - Utilización de propiedades físicas en las mecánicas jugables

Las físicas se utilizan sobretodo para comprobar si hay muros entre el jugador y el enemigo, de esta manera saber si nos está viendo o no. Más información en el vídeo del sistema de percepción sensorial de los NPCs

Vídeo explicativo en YouTube

Ítem V2.05 - Uso de trazado de rayos y otros tests de las físicas

Se utiliza un trazado de rayos para detecar los muros entre un enemigo y el jugador, de esta manera podemos saber si hay obstáculos en su campo de visión.

Ítem V2.06 - Sistema de depuración visual de las físicas

No realizado

Ítem V2.09 - Mecánicas básicas entidades sin IA

Como se ha explicado en la informacion general, los items 9,10,12 y 13 se ven resumidos en un único vídeo. Vídeo explicativo en YouTube

Tenemos distintos tipos de triggers: -Puertas -Torreta -Apisonadora -Recogibles (vida++, velocidad++, munición++, llave++)

Ítem V2.10 - Mecánicas de acción

Como se ha explicado en la informacion general, los items 9,10,12 y 13 se ven resumidos en un único vídeo. Vídeo explicativo en YouTube

Como mecánicas de acción tenemos para el jugador: -Movimiento lento -Movimiento normal -Disparo -Golpear

Las mecánicas de los enemigos están mejor explicadas en el documento del entregable de V1: Enlace al .pdf ubicado en google drive

Ítem V2.12 - Mecánicas de puzzle

Como se ha explicado en la informacion general, los items 9,10,12 y 13 se ven resumidos en un único vídeo. Vídeo explicativo en YouTube

Ítem V2.13 - Power-ups y elementos adicionales

Como se ha explicado en la informacion general, los items 9,10,12 y 13 se ven resumidos en un único vídeo. Vídeo explicativo en YouTube

Ítem V2.14 - Formato propio para la definición de los niveles (documento con la especificación del formato

Enlace al pdf en Google Drive

Ítem V2.15 - Creación de un cargador de niveles

La clase Map.cpp carga los niveles creados leyendo los .tmx. Le cada capa y posiciona cada objeto según los datos, crea los enemigos, etc. Al cambiar de nivel, borra todos los elementos del nivel actual y carga el siguiente. Más específico en el documento de especificación del formato propio,

Ítem V2.16 - Creación de un editor de niveles

No realizado

Ítem V2.17 - Diseño y creación de niveles

Se han realizado dos niveles en ficheros .tmx de Tiled, los cuales se leen ingame al cargar el nivel correspondiente. Los niveles se pueden encontrar en el directorio Juego/resources/Mapas

Ítem V2.19 - Implementación de cámara de seguimiento

Sin cambios La única cámara del juego sigue constantemente al jugador desde una vista aérea. La cámara se crea en la clase Scene.cpp al cargar el nivel, y se updatea en el bucle del juego dentro de la misma clase.

Ítem V2.24 - Creación de un sistema propio de GUI

Sin cambios El código fuente adjunto pertenece a los items 24,25 y 26, y se engloban todos en una sola entrega dado que se encuentram estrictamente relacionadas https://drive.google.com/open?id=0B39aFPRKKoO_MmZrTkJDQzlRTWs

Nuestro GUI se inicializa desde la clase GraphicsFacade, por tanto, en el código fuente específico del entregable lo incluiré también, tan solo para que se vea esta inicialización. Además, se incluirá también la clase Image de la Fachada de gráficos también, que es donde tenemos las llamadas para cargar y pintar las imágenes, de momento llamando a Irrlicht. El GUI está dividido principalmente en 2 partes:

Ítem V2.25 - Implementación de menús

Sin cambios: Destacar que ahora contamos con una pantalla de carga. El Menú, como he dicho en el anterior entregable, está compuesto por GUI_Components, con lo que está estrechamente ligado al GUI.

Nuestro Menú está disponible tanto antes de comenzar el Juego como In-Game (pulsando la tecla ESC), con la única diferencia entre ambos de que el botón de Nueva Partida se convierte en uno de Continuar.

Nuestro Menú, por tanto, nos permite empezar una nueva partida o continuar en la que estamos, salir del juego y ver una serie de opciones:

Cabe destacar, que el sonido del menú ya está 100% funcional y disponible, teniendo música de fondo y sonido en los botones. Esto ayudará a ver si el volumen general se está subiendo o bajando utilizando la funcionalidad que hemos realizado.

Ítem V2.26 - Implementación del HUD

Sin cambios El HUD de nuestro juego solo está disponible mientras jugamos y, de momento, dispone de un cuadro informativo del rayo láser con su cuadro de diálogo que aparece o no dependiendo de si está el cursor encima y una barra de vida. No hemos priorizado en completar el HUD, porque pensamos que como es algo más visual, hemos priorizado otros entregables, dejando este ser completado para la presentación. En un principio, lo que se añadirá de cara a la presentación serán más cuadros informativos, con la información del ataque y de andar en sigilo, un overlay para estos cuadros informativos, una pantalla de Game Over cuando nos maten y unos mensajitos de qué hemos recogido cuando recojamos o munición o vida o una tarjeta para abrir una puerta.

Ítem V2.27 - Implementación de clipping (comparativa de FPS con/sin oclusiones)

No realizado

Ítem V2.33 - Implementación de cesped y vegetación

No realizado

Ítem V2.35 - Implementación de sistemas de partículas

No realizado