Skip to content

Proyecto final de Desarrollo de Aplicaciones Multiplataforma del curso 2022/23. IES Luis Vives. Sp4ce Survival

License

Notifications You must be signed in to change notification settings

Mario999X/ProyectoFinalDAM_MarioResa

Repository files navigation

ProyectoFinalDAM_MarioResa

Proyecto final de Desarrollo de Aplicaciones Multiplataforma del curso 22/23. IES Luis Vives.


Attention: The Readmes are translated in English in the official wiki of the project.


Índice

Introducción

LICENSE

El gran proyecto es un videojuego con capacidades competitivas online (sin ser multijugador) usando una tabla de puntuaciones que cualquier usuario registrado pueda ver dentro de este.

Este proyecto se encuentra formado por dos partes, clásicas en un desarrollo de software, backend y frontend.

¿Y el nombre elegido? ¡Sp4ce Survival!

Se trata de un bullet hell orientado a la supervivencia del jugador donde su principal objetivo será obtener la mayor puntuación posible.

Descarga Oficial

Si se quiere descargar el videojuego en formato de ejecutable, deberá hacerlo desde la respectiva página de itch.io, pulsa sobre el icono de la aplicación para navegar hasta ella:

Plataformas Soportadas

Windows

Linux

Requisitos

Videojuego

Se recomienda un monitor que proporcione una resolución de 1920×1080 o como mínimo de 1280x720 para así garantizar un visionado al completo de todos los elementos de una manera cómoda.

Servicio Backend

Para ejecutar el docker-compose de producción, y así tener el servicio de forma local en ejecución se necesitarán las siguientes herramientas:

Windows

Linux

En caso de no disponer de un entorno de escritorio, existe la alternativa de instalar los componentes necesarios por separado.

Tecnologías Aplicadas

PostreSQL

Spring v3.0.4

Kotlin v1.7.22

JWT

Godot v3.5.2

Docker

Postman

Diseño

Diagrama de Clases

Se observan dos elementos principales del proyecto, Usuario y Puntuación.

La relación es sencilla, un usuario puede no tener una puntuación asociada, o una como máximo.

Además, exiten dos roles para los usuarios:

  • USER
  • ADMIN

Diagrama de Entidad-Relación

Un usuario obtiene una puntuación y la puede almacenar/actualizar.

Funcionamiento de la aplicación

Realmente ambas partes son elementos individuales que forman parte de algo mayor, aunque el videojuego podrá ser disfrutado de manera individual debido a que se ofrece soporte offline.

Dejando eso de lado, la ejecución del programa se produciría en el siguiente orden, en especial, refiriéndome a los posibles menús que puede acceder el usuario, y a las capacidades que ofrecen:

Menú de bienvenida

El usuario podría iniciar sesión, registrarse o jugar offline; si decidió jugar online, y una vez verificada la acción realizada con el backend, este pasaría al menú principal.

Además, cuenta con el menú de opciones y la posibilidad de cerrar la aplicación.

Menú principal

El usuario podrá jugar, con la capacidad de elegir un nivel de dificultad; ver su perfil y ver una tabla de puntuaciones.

Además, cuenta con el menú de opciones y la posibilidad de cerrar la aplicación (además, si la última vez que salió se encontraba en modo online, se realizará una comprobación del estado de la cuenta y si todo es correcto, se pasará automáticamente a este menú sin pasar por el de bienvenida, si no, el estado online se pasará a offline y se dejará al usuario en el menú de bienvenida).

Menú de perfil - [Solo Online]

El usuario podrá ver la información más relevante sobre su cuenta:

  • Nombre de usuario.
  • Correo electrónico.
  • Fecha de creación.
  • Puntuación más alta registrada.
  • Fecha de obtención de aquella puntuación.

Además, se le permitirá hacer dos acciones:

  • Cambiar la contraseña.
  • Borrar la cuenta.

Menú tabla de puntuaciones - [Solo Online]

El usuario podrá ver las puntuaciones registradas de otros jugadores con un sencillo menú.

Podrá visualizar 10 puntuaciones por página, y se mostrará la siguiente información:

  • Posición global.
  • Nombre de usuario.
  • Puntuación.
  • Fecha de la puntuación.

Menú de opciones

Es un sencillo menú que permite ajustar ciertos valores del juego y es accesible desde tres localizaciones diferentes:

  • Menú de bienvenida
  • Menú principal
  • Menú de pausa en el nivel jugable

Nivel Jugable

El usuario podrá jugar una partida, y al finalizarla obtendra cierta puntuación, si se encuentra en modo online, se obtendrá la puntuación actual de este, y se comparará, si la antigua es superior a la nueva, no se hará nada, pero si la obtenida es superior, esta será almacenada en la base de datos. Este proceso se realizará de forma automática.

Según la dificultad seleccionada, la puntuación final será multiplicada por un valor distinto.

Siempre que finalice una partida, se le mostrará un sencillo menú donde se permitirá, o bien jugar de nuevo, o volver al menú principal.

Autor

Mario Resa