Diseño de nivel Super Mario Bros


Empleando como base el famoso juego Super Mario Bros de la NES, elaboré un diseño de nivel, donde se pone a prueba la habilidad del jugador, así como su dominio de las mecánicas que ofrece. Traté de diseñar un nivel relativamente sencillo, pero con zonas algo más complejas donde el jugador deberá emplear algo de su ingenio para superarlas de la forma más optima posible.




Sabiendo que me decantaría por la zona temática de la superficie, elaboré el diseño en Photoshop, empleando las mecánicas más básicas del título. Más adelante, cuando elaboré otras mecánicas más complejas del título, fui creando más partes del nivel enfocadas a exprimir dichas mecánicas.




En base a dicho diseño, elaboré y expandí la retícula del nivel, planteando también las diferentes rutas que podría llegar a emplear el jugador. Desde un inicio quise hacer que cada obstáculo se pudiese superar de dos formas distintas en base a la decisión que tomase el jugador; puede tomar una ruta tradicional, saltando encima de enemigos y recogiendo los premios de los cubos especiales, o puede tratar de pasarse el nivel por una ruta superior o inferior a la normal, donde con un poco de precisión en el salto puede esquivar el enfrentamiento.




La trayectoria del jugador puede variar según como enfoque el nivel. Tras ver como otras personas pasaban los desafíos se puede comprobar que existen rutas bastante distintas, pese a que el nivel sea completamente lineal, como siempre ha ocurrido con los primeros juegos de Mario.

A continuación explicaré detalladamente los sectores en los que se divide el nivel.


Sector 1

En este primer sector dejo que el jugador se adapte un poco a los controles; sin enemigos que le compliquen las cosas en un primer momento. De esta forma puede practicar libremente el desplazamiento y el salto, así como probar a golpear los cubos dorados, donde encontrará la seta que le dará una oportunidad extra si no logra pisar al Goomba que le espera después del tubo.




Sector 2

En esta zona, el jugador debe aprender a saltar, así como darse cuenta de que según cuanto tiempo mantenga el salto apretado, saltará más o menos. En el primer obstáculo no hay ninguna clase de penalización en caso de que el jugador no salte las plataformas, sin embargo en el siguiente obstáculo le espera una planta piraña, de modo que si falla el salto perderá una vida. Siempre puede pasar por los cubos superiores, que sería la zona más óptima.




Sector 3

Este sector es el que de verdad pone a prueba al jugador por primera vez. Como antes, puede tratar de ir por la zona superior, evitando los Goombas, sin embargo, si consigue acabar con ellos se puede llevar una seta como recompensa.




Sector 4

La finalidad y funcionamiento de este sector viene a continuar la fórmula del anterior, expandiendo ligeramente el concepto y consolidando ideas.




Sector 5

Con las plantas piraña como principal amenaza, el jugador debe superar esta prueba de salto sin recibir daño. También puede optar por llegar a la zona superior y pasar de una manera más fácil esta sección.




Sector 6

Es posiblemente el sector más complejo del nivel. A estas alturas el jugador ya conoce a los dos tipos de enemigos a los que se enfrenta, al igual que ha descubierto el funcionamiento de los bloques. Si llega siendo Super Mario tendrá que enfrentarse a tres Goombas y pasar por debajo de una planta piraña antes de que salga de nuevo del tubo. Sin embargo, si llega siendo Mario pequeño, puede ir por la zona inferior, deshaciéndose de los Goombas saltando bajo los bloques donde se encuentran y recibiendo una seta que podrá recoger una vez haya acabado con los enemigos.




Sector 7

Tras todos los retos que ha superado el jugador, este sector se concibe casi como un paseo o una transición. Si logra el primer salto puede avanzar directamente a a siguiente zona, pero si se cae le esperan plantar piraña que le complicarán algo las cosas.




Sector 8

Este sector continúa la estructura de los sectores 3 y 4, sin embargo tiene una peculiaridad, al final del sector, el jugador se encontrará un vacío del que saldrá una planta piraña gigante, evitando así que llegue al castillo. Se trata de un pequeño giro de tuerca que le quería dar a este juego, de modo que planteo la pregunta de si de verdad has pasado el nivel o no. Al ser tan ajustado el salto habrá quien trate de llegar al final repetidas veces, sin éxito alguno, lo cual me resulta divertido.



A continuación explicaré los procesos de creación del vídeo juego:



Para crear este juego, comencé elaborando el comportamiento de Mario; su movimiento, su derrape, su salto, su transformación, etc. Fue la parte más complicada de la elaboración de este proyecto, y donde más tiempo tuve que emplear. Traté de emplear varios tutoriales, pero ninguno me llegaba a convencer del todo, además de que empleé una ingente cantidad de tiempo en reestructurar el proyecto cuando me quedaba atascado, así que me decidí a hacerlo todo según mis propios métodos, lo que a la larga me hizo mucho más sencilla la programación.


Esto es parte del script de Mario. Uno de los 20 scripts que emplea el juego.



Tras acabar con el comportamiento base de Mario, comencé a desarrollar al Goomba, que también se llevó una enorme parte del proyecto, dado que tenía que emplear raycasts, colliders y triggers para simular la IA del juego original de NES, así como sus animaciones, su muerte cuando Mario le pisa o está sobre un bloque que salta, su interacción con el jugador (haciéndose inmortal cuando Mario recibe daño o parando el tiempo). En resumen fue un proceso bastante tedioso el copiar todas sus mecánicas. 



También tuve que programar el comportamiento de los distintos bloques del juego, así como las setas y las monedas. Como responden cuando les golpea por la zona inferior el Mario pequeño y como se destruyen con Super Mario.



La interfaz también es una parte importante del juego, así que tuve que investigar como emplear el canvas y como reescalarlo según el monitor, así como recoger la score y las monedas, o el tiempo, que va bajando hasta que finalmente Mario muere.



El siguiente paso fue crear la transición entre escenas del juego (El menú, la pantalla de carga, de game over y la de "victoria"). Dado que prácticamente todo se lleva a cabo mediante script no hay mucho de que hablar al respecto.



Para la incorporación del audio en el juego emplee un Audio Manager que tuve que se trata de un solo objeto al que se le incorporan todas las pistas del juego y se le asigna el volumen, si hace loop, etc. Después, desde cada uno de los scripts que lo necesite, se le llama para que reproduzca el sonido.




Finalmente monté toda la escena según mi diseño previo y terminé el desarrollo del juego. Tan solo faltó crear las distintas builds según el sistema operativo y configurar los inputs de los mandos de Xbox y PlayStation.



Las hojas de sprite las cree para organizar mejor el trabajo dentro de Unity, puesto que las que teníamos de base no eran muy prácticas para trabajar.



Debido a los diversos objetos dentro de objetos de cada prefab del juego, el empleo de Tiled me resultaba completamente inútil, ya que pese a tener la capacidad de importar el sprite y un collider, no era suficiente para la cantidad de mecánicas que tiene el juego. Por ejemplo, el bloque sorpresa tiene el sprite dentro del objeto padre; el padre contiene un collider y el trigger para matar al Goomba, el hijo, que contiene el sprite y el animador, también contiene otro collider y un script a mayores. Pasando los sprites desde Tiled tendría que hacer el triple de trabajo para construir el nivel.



La organización del nivel dentro de Unity es bastante básica. Sencillamente se encuentran el jugador, los bloques especiales del nivel, los enemigos, el suelo, las decoraciones, el canvas y el audio manager.


Dado que logré implementar una enorme cantidad de mecánicas trataré de enumerarlas todas, puesto que explicarlas una por una me llevaría varias páginas de texto.

Mecánicas Principales:

*Desplazamiento derecha-izquierda de Mario
*Salto de Mario gradual según se mantenga pulsado el botón de salto.
*Desplazamiento lateral de los Goombas
*Cambio de dirección de los Goombas cuando chocan entre sí o contra una pared
*Desplazamiento vertical de las plantas
*Muerte de Goombas al saltar encima de ellos
*Muerte de Mario al golpearse lateralmente con los Goombas
*Muerte de Mario al golpearse con una Planta Piraña
*Muerte de Mario al caerse al vacío
*Muerte de Mario al acabarse el tiempo
*Transformación en Super Mario al recoger una seta
*Transformación en Mario pequeño al recibir daño siendo Super Mario

Mecánicas Secundarias:

*Derrape de Mario al cambiar de dirección tras coger de aceleración
*Tiempo parado para Mario y los Goombas al recibir daño
*Tiempo parado para Mario y los Goombas al recoger una seta
*Invulnerabilidad de Mario durante cierto tiempo tras haber recibido daño de un enemigo
*Invulnerabilidad de los Goombas mientras Mario es invulnerable
*Salto de bloques de ladrillos cuando Mario pequeño salta bajo ellos
*Destrucción de bloques de ladrillos cuando Super Mario salta bajo ellos
*Muerte de Goomba cuando está encima de un bloque en el momento en el que Mario lo golpea
*Pequeño rebote de Mario cuando cae contra un Goomba
*Aparición y recolección de monedas procedentes de los bloques sorpresa
*Aparición de setas procedentes de los bloques sorpresa
*Recuento y aparición de puntos cuando Mario mata a un enemigo, recoge una moneda, etc.
*Transición entre las distintas escenas del juego (Menú, pantallas de carga, etc.)

Comentarios

Entradas populares de este blog

Dark Souls - Low Poly

Fotomontaje - Photoshop

The Last Days of August - Proyecto de Animación 2D

Bender dance

Diseño de Personaje

Ilustración - Illustrator

La Gran Pirámide

The End Of Time