Giter Site home page Giter Site logo

godslayer.github.io's Introduction

GodSlayer

Grupo 7: Grisucios.

Integrantes: Daniel Hernández Martínez , Pablo Imbert Fernández, Julián Moreno Bellaneda, Juan Coello Fernández.

Juego: https://dahermar.github.io/GodSlayer.github.io/

Juego Juego Juego

GDD

Género:

Metroidvania y plataformas 2D

Plataforma:

Página Web

Pegi:

PEGI 7, debido a la inclusión de violencia no gráfica.

Descripción

Juego de plataformas y acción lateral en 2D para web. Vive una experiencia centrada en la exploración, combate y plataformeo en una aventura épica a través de un mundo medieval. Explora un mundo oscuro lleno de secretos y coleccionables y obtén habilidades únicas que te harán avanzar a nuevas partes del mapa. Experimenta un combate centrado en el uso de la espada y la movilidad del personaje.

Historia:

Tras años de terror bajo la tiranía del dios Haldohr, su implacable ejército alcanza las tierras del norte. Destruyendo todo a su paso, las tropas arrasan con una oculta aldea en el bosque. Entre los restos se vislumbra una figura. La diosa Axelia observa a la joven junto a los cuerpos inertes de sus padres. Conmovida por su dolor, le ofrece su guía en la misión de devolver la paz a su reino.

Contexto Cultural:

Ha habido muchos aspectos de la cultura del videojuego que nos ha influenciado a la hora de desarrollar nuestro proyecto. Juegos como Hollow Knight u Ori and the Blind Forest han sido nuestra inspiración a la hora de establecer la jugabilidad. Una de las sagas que más nos han influenciado a los integrantes del grupo ha sido el Dark Souls. De esta saga hemos sacado dos aspectos importantes. El primero es el ritmo pausado a la hora de atacar. Esto obliga al jugador a elegir correctamente el momento de efectuar un ataque, ya que si lo hace precipitadamente puede ser fácilmente castigado por el enemigo. La segunda es la ambientación y lore, lo cual se ve reflejado en el videojuego.

Mecánicas:

Ataque

Ataque con espada y lanzar daga.

Movimiento

Dash, Doble salto y rebotar en la pared.

Otros

Revivir en las estatuas, obtener poderes después de superar cada boss, recoger coleccionables, usar una poción para curarse, los pinchos matan instantáneamente.

Mecánicas de los jefes:

El primer jefe es invulnerable y corre hacia el jugador. El segundo jefe tiene 4 vidas pero se hace invulnerable durante 2 segundos una vez es atacado. Tiene 2 tipos de ataques entre los que alterna que se realizan de forma aleatoria y son una bola grande o 3 pequeñas. El tercer jefe tiene 4 vidas y una vez es atacado se teletransporta a otro lugar. Con más de la mitad de la vida realiza 2 tipos de ataques, uno simple y otro fuerte que ocurre cada menos tiempo. Cuando tiene la mitad de la vida o menos cambia su ataque simple por 3 individuales en la dirección a la que se mueve el jugador. Los esqueletos muertos de la zona de este jefe son revividos por este cuando pasas cerca de su zona.

Dinámicas:

Usar doble salto con el dash para llegar más lejos. Usar el dash para esquivar ataques enemigos. Usar el doble salto para esquivar habilidades enemigas. Atacar en el aire a enemigos que vuelan. Usar los rebotes en la pared para recuperar el doble salto y mantenerse en el aire. Los jugadores deberán evitar usar las pociones si están con toda la vida puesto que las perderán al cogerlas. Aprenderse los ataques de los bosses para crear estrategias. Aprenderse el “timming” de los arqueros y gusanos para esquivar sus proyectiles en el plataformeo.

Controles

Teclado
Movimiento WASD
Salto W
Ataque básico J
Lanzable L
Dash Shift

Resumen de dirección artística

Es un mundo oscuro y apagado, ya que se quiere representar un mundo devastado por Haldohr. A su vez, la historia está centrada en la venganza y la tristeza de la protagonista y estos colores lo representan. Al tener temática medieval y fantástica, los sprites están relacionados con elementos típicos como: armaduras, armas a melee, magos, esqueletos, criaturas fantásticas, animales hostiles de bosques y cuevas, etc... Los sprites de los enemigos están relacionados con el bioma en el que se encuentran, así en el bosque podremos encontrar lobos por ejemplo y en la cueva murciélagos.

Paleta de colores

paleta de colores

Diagramas UML

Sistema de escenas del juego:

UML1

Boot:Escena en la que se carga el mapa, imágenes, audio y animaciones del juego.

Main_menu: Menu principal del juego.

Lore: texto con la historia del juego.

Level: Nivel principal del juego.

Menu: Menú de pausa del juego mediante el cual se puede ver los coleccionables.

Credits: Créditos del juego.

Herencia Container:

UML2

Sistema de herencia entre los enemigos:

UML3

Importante remarcar que el boss Árbol no funciona como un enemigo corriente, por lo que no hereda de la clase Enemy.

Además la clase necromancerSkeleton es una especialización de los Skeleton, ya que estos aparecen sólo en la batalla final cuando estás a cierta distancia y son revividos por el Necromancer.

Enemy(scene, x, y, lives, speed, jumpSpeed, numJumps, fieldOfView, rangeAttack, attackSpeed, sprite_x, sprite_y , scale, damage)

fieldOfview: Rango de visión, la mayoría de enemigos se acercan hacia ti una vez estás en este rango (exceptuando el gusano y el arquero).

rangeAttack: Rango de ataque, este es mayoritariamente menor que el fieldOfview (excepto el arquero) y una vez el player se encuentra en este se realiza el ataque.

attackSpeed: Cooldown entre ataques.

sprite_x: Valores para centrar las animaciones mal centradas

sprite_y: Valores para centrar las animaciones mal centradas

scale: Valor para el tamaño del sprite

damage: daño del enemigo, si este tira proyectiles no se usa.

Sistema de herencia entre ataques a distancia:

UML4

Projectile(scene, x, y, sizeX, sizeY, direction, isLeft, distance_x, distance_y, scale, speed, damage, destroyTime, spriteName)

direction: valor negativo para cuando se quiere ir a la izquierda y positivo a la derecha

isLeft: Indica si el png del proyectil está a la izquierda , para darle la vuelta o no

distance_x: Valores para ajustar el tamaño de la hitbox

distance_y: Valores para ajustar el tamaño de la hitbox

destroyTime: Tiempo a partir del cual el proyectil desaparece

El resto de clases no han sido incorporadas en diagramas, dado su papel más secundario y/o predecible.

Pruebas con usuarios

Hemos realizado pruebas del videojuego con una gran cantidad usuarios. Todos nos dieron feedback, pero expondremos las opiniones de cuatro usuarios, ya que las del resto coinciden con las suyas.

Usuario 1: Jugador habitual de videojuegos sin mucha experiencia en juegos de plataformas y metroidvanias. Al ser el primer usuario que probó el juego, lo encontró en un estado menos balanceado y pulido. Debido a ello, nos fue muy útil para balancear los niveles.

  • Encontró difícil y frustrante algunas zonas de plataformeo.

    Solución: Ajustamos ciertas zonas de plataformas para reducir su dificultad

  • No le gustó el mensaje de muerte.

    Solución: Teníamos un debate interno sobre si quitarlo o dejarlo. Al ver que a personas ajenas tampoco les gustaba, decidimos quitarlo.

  • Le costó pasarse una zona que no tenía un punto de control cerca. Encontró frustrante que si se moría más adelante tenía que volver a pasársela. Esto mismo le ocurrió a algún usuario más.

    Solución: Decidimos añadir un punto de control en un camino paralelo al principal. De esta forma si el usuario decide explorar los caminos encontrará el punto. Así conseguimos reducir la frustración del jugador y, a su vez, recompensar la exploración.

  • Debido a la gran cantidad de enemigos en algunas zonas, el usuario optó por pasarse ciertas zonas ignorándolos.

    Solución: Redujimos la cantidad de enemigos en ciertas zonas con una alta densidad de ellos.

  • Pese a encontrar el juego difícil en general, se pasó el boss final de manera muy sencilla. Esto se debió a que si te movías muy rápido por el escenario era muy sencillo esquivar sus ataques.

    Solución: Ajustamos la dificultad del boss final, incrementando su velocidad de ataque y dividiendo el combate en dos fases. La primera fase tiene los mismos ataques, pero añadimos uno nuevo más difícil de esquivar en la segunda.

Usuario 2: Jugador habitual de videojuegos sin ninguna experiencia con juegos de plataformas.

  • Murió muchas veces y nos dimos cuenta que el juego lageaba cada vez más con cada muerte del jugador.

    Solución: Buscamos posibles causas del lageo. Nos centramos en el reseteo del mapa al morir y nos dimos cuenta de que al morir las pociones no se eliminaban, por lo que al reaparecer se generaba otra poción encima de las existentes, lo que generaba el lag.

  • Por otra parte, debido a que fue el primer usuario probando el segundo bioma, vimos que la dificultad de determinadas zonas era excesiva.

    Solución: En aquellas zonas en las que el jugador se quedaba atascado miramos si había alguna forma de reducir un poco la dificultad. Esto es o reducir el número de enemigos de la zona o hacer el tema de plataformeo más fácil (Por ejemplo en alguna zona subiendo un poco el techo para hacer el salto más fácil).

  • Por último descubrimos un bug con el cúal podía pasarse el segundo boss sin matarlo.

    Solución: Modificamos el código del boss para que no se pudiera usar este bug. Para ello creamos una hitbox extra en el cuerpo del boss y le pusimos colisión con el jugador evitando así el error.

  • Descubrió que había un salto que no se podía realizar y te impedía volver atrás en el endgame.

    Solución: Ajustamos una plataforma para permitir el salto.

Usuario 3: Experiencia baja en este género. Fue el primer usuario en pasarse el juego completo pasando por todos los caminos opcionales.

  • Nos dio feedback de algunas zonas que nadie había probado.

    Solución: Realizamos un ajuste a ciertas zonas.

Usuario 4: Estudiante de la carrera de desarrollo de videojuegos y jugador habitual. Debido a su experiencia desarrollando videojuegos, nos dio algún consejo útil.

  • Nos hizo ver que la primera vez que presentamos a los murciélagos, aparecían una cantidad demasiado elevada de ellos. Esto resultaba frustrante ya que todavía no conoces sus mecánicas y te puedes sentir abrumado. Además nos dijo que algunos enemigos más no estaban correctamente presentados, ya que los introducimos en sitios muy complicados en los que aprender sus mecánicas se hace realmente difícil

    Solución: Redujimos el número de murciélagos la primera vez que te los encuentras.

  • Nos dijo que los murciélagos quitaban demasiada vida.

    Solución: En el grupo había división de opiniones sobre si bajar la dificultad, ya que de dos ataques te mataban. Como más gente opinaba que quitaban demasiado, les bajamos el daño.

  • Al igual que otros usuarios, encontró alguna zona con demasiados enemigos.

    Solución: Redujimos el número de enemigos en algunas secciones.

  • Como valoración personal recalcó que los pinchos suelen quitar toda la vida del personaje, aunque fue más un gusto propio por lo que no lo tuvimos demasiado en cuenta.

godslayer.github.io's People

Contributors

dahermar avatar pabloimbert avatar jm012 avatar juancoello avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.