domingo, 17 de marzo de 2019

Leap of Faith


Desarrollado por: Rubén Quintas, Iago Pena, David Lago y Daniel Conde.


Concepto:

Se trata de un juego de plataformas para realidad virtual en el que recorreremos una
ciudad haciendo acrobacias en carreras contrarreloj o compitiendo contra otro jugador.

Referencias:


Como referencia jugable hemos utilizado el juego para Playstation VR, To the Top.










Para el apartado visual tomamos como referencia la ambientación futurista de Mirror's Edge y la temática cyberpunk.

Arte Conceptual y Prototipo:











Decidimos escoger a un robot como protagonista. Con las referencias en mente realizamos varios bocetos de lo que sería el diseño del nivel y el personaje. Mientras, creamos un prototipo en Unity para establecer cómo sería el movimiento, los obstáculos que tendríamos que esquivar, la dificultad, el objetivo, etc.

Gameplay:


El objetivo principal es superar los obstáculos y recorridos de la ciudad para así llegar a una meta designada en el menor tiempo posible, recibiendo recompensas, en forma de medallas, por lograrlo.

Tendrá un modo para un jugador donde realizaremos pruebas contrarreloj y un modo multijugador donde competiremos para llegar al final del circuito antes que otro jugador.
 
El jugador principal utilizará las gafas de realidad virtual HTC Vive para moverse y el segundo jugador lo hará con el teclado y el ratón.

El Escenario:


Los diferentes niveles del juego estarán ubicados en una ciudad nocturna con estilo cyberpunk. Nos moveremos haciendo parkour por la cima de los diferentes edificios.

El Personaje:




Controlaremos a un robot compuesto por cabeza, torso y dos manos (jugador principal) o un gancho (jugador secundario), los cuales utilizaremos para desplazarnos.

Interfaz: 
 














Durante el juego tendremos un cronómetro en nuestro brazo izquierdo que nos indica el tiempo transcurrido. Manteniendo pulsado el botón central de PAD volveremos al menú después de 5 segundos y cuando consigamos llegar a la meta nos aparecerá un indicador del tiempo invertido y la recompensa obtenida.

Proceso de Construcción del Juego:

Después de tener claro el concepto del juego y haber buscado referencias. Mientras una parte del equipo realizaba bocetos del nivel y personaje, el resto se centró en el desarrollo de un prototipo con Unity:


La mitad del equipo se encargó del modelado del personaje y los diferentes edificios con Cinema 4D. Se montó el nivel en el mismo programa y se exportó todo a Unity sustituyendo elementos del prototipo. Mientras, se siguió programando el juego (proceso que duró durante todo el desarrollo) añadiendo nuevas funciones y mejorando otras:











Una vez programado el movimiento del personaje se procedió a realizar el multijugador y el menú principal:



Por último se sonorizó el juego añadiendo varios efectos de sonidos y música para el menú y los niveles.

La versión Demo del juego se puede jugar en Windows 10:


martes, 18 de diciembre de 2018

Impy Runner


IMPY RUNNER

Este juego se trata de un Infinity Runner 2D de estética Pixel Art donde tendremos que saltar en el momento adecuado para esquivar los diferentes obstáculos que se nos presenten.


Referencia:



Una vez tenía el personaje diseñado (Impy, el Dinosaurio travieso) buscaba un juego de plataformas 2D simple y divertido donde pudiera encanjar. Me topé con el famoso juego de Google Chrome y decidí hacer uno similar adaptando la estética al estilo visual de dicho personaje.


Thumbnails:


 Antes de diseñar el juego establecí las mecánicas principales y secundarias del juego mediante algunos bocetos. Cómo se iba a mover el personaje, cómo serían los obstáculos que tendría que esquivar, cómo sería la difícultad, de qué forma se iba a generar el nivel, etc


Gameplay:


El objetivo principal del juego es aguantar sin morir para conseguir la mayor cantidad de puntos posibles. Por tanto, tendremos vidas que perderemos cuando chocamos contra un obstáculo y recuperaremos cuando recogemos ciertos objetos. 

Recibiremos más puntos con el paso del tiempo, por esquivar correctamente los obstáculos y por recolectar objetos.

El único control sobre el personaje es el salto que variará en altura según la intensidad del pulsado.


Prototipo:


Con el prototipo he conseguido ver como funcionaba el sistema de generación aleatoria e infinita de escenarios así como el aumento de los puntos al esquivar obstáculos.



Creación de Niveles:

Los escenarios los cree por trozos separando, fondos y suelos, dando un total de 45 combinaciones diferentes.


Sprites Personajes:




Para el personaje pricipal tendremos varias animaciones: Idle, correr y dormir. Siendo la de correr la que utilizaremos durante el juego.

Para el enemigo principal la de volar. Se comporta como otro obstáculo más, con la diferencia de que te resta puntos si impactamos contra el.



Interfaz:




Para la interfaz tendremos un contador de vidas, hasta un máximo de 6, y un contador de puntos simple.


Proceso de Construcción del Juego:


Lo primero que hice fue el personaje. Fue diseñado, adaptado a versión Pixel y animado con Photoshop:



Realicé un prototipo del juego en Unity 2D. En esta fase establecí la mecánica de salto, generación de escenarios y contador de puntos:


Diseñé los diferentes trozos de escenarios con Tiled siguiendo una serie de reglas para evitar que la aletoriedad del generador no provocara un nivel imposible de superar:


Inserté todos los sprites en Unity; tanto los escenarios como los diferentes objetos recolectables y el enemigo, previamente diseñado con Photoshop:


Programación y mejora del código del prototipo para cada uno de los nuevos elementos introducidos y creación de nuevas mecánicas como por ejemplo el sistema de vidas.

 
Creación de menús y sonorización:





Por último realicé una versión tanto para Windows como para Mac que se puede disfrutar con el teclado o con el mando de Xbox 360.


 
 

lunes, 26 de noviembre de 2018

Práctica Diseño de Nivel





Nivel Super Mario Bros.

En esta práctica utilizando como referencia el videojuego de Super Mario Bros. realicé un diseño de un nivel con algunos de los componentes y mecánicas del juego original.


Thumbnails


Antes de decantarme por la temática del nivel (Superficie, acuático, aubterráneo...) y sin saber muy bien cuantas mecánicas sería capaz de implementar realicé algunos conceptos muy generales del nivel: Escaleras con saltos, zonas de doble camino, plataformas aéreas...


Retícula de Construcción y Trayectoria del Jugador


Después de decantarme por la temática subterránea dibujé en una hoja cuadriculada los diferentes sectores del nivel y las posibles trayectorias del jugador dentro de cada uno.


 Sectores

Cómo se puede ver en la imagen anterior marqué con flechas las posibles trayectorias del jugador dentro del nivel y dividí el nivel en 5 sectores de diferente tamaño y dificultad progresiva. Todo el nivel está basado en las 4 mecánicas que fui capaz de implementar: Movimiento y salto, aplastar enemigo Goomba y perder vidas.

En el sector A tenemos un inicio sencillo con 3 saltos cortos seguido de 3 enemigos intercalados por saltos medios y largos (sector B). Aumentando la dificultad el sector C tiene 5 saltos consecutivos, donde si fallas uno caerías al vacío. El sector D es el más largo del nivel con un inicio sencillo con dos saltos y un enemigo, una zona intermedia con dos posibles caminos y un salto final complejo donde tenemos que saltar lo justo para no caer. Por último tenemos la zona final con un pequeño reto de escaleras quebradas.

*El tamaño de algunos saltos y número de enemigos representados en la hoja de construcción fueron modificados en la versión final.
 

 Proceso de Construcción del Videojuego

El diseño del nivel y sprites los realicé con Photoshop y Tiled. El resto del videojuego fue hecho con Unity 2D. Mediante imágenes enumeraré los diferentes pasos seguidos para realizar el juego:


1. Programación de mecánicas (Visual Studio 2017).


Fue el proceso más largo y está dividido en varios scripts que controlan a Mario, los enemigos, la cámara, las vidas y los cambios entre escenas. La programación duró durante todo el proceso de desarrollo. Realicé una escena prototipo para probar mecánicas antes de implementar el nivel final.

2. Creación del nivel en Tiled.


Con Tiled apoyado de una hoja de sprites, previamente realizada con Phosothsop, cree el nivel junto a todos sus zonas de colisión.

3. Implementación del nivel en Unity 2D.



Una vez tube todo diseñado fui insertando en Unity cada una de las partes del nivel, animaciones del jugador, controles del jugador, enemigos y sonidos; exactemente por ese orden. Cada cosa que iba añadiendo fui programando su correspondiente script para que funcionara correctamente.