Programa un juego estilo Endless Runner lateral en Unity [Nivel básico]

in Develop Spanish4 years ago


bannergoojump.png

Hoy me situé con la idea de terminar un proyecto sobre un videojuego de hacer Tap en la pantalla y que salte un personaje, para que así logre saltar obstáculos y obtener puntos por saltar o con monedas, todo el proyecto será de código libre y con derechos de modificación.

Explicaré paso a paso, aunque ciertos parámetros los omitiré o los definiré un poco por sentado para no aburrirlos, siempre pueden revisar la documentación de Unity para mas información.

Aclaratoria:
Este proyecto no está totalmente terminado, pero esta en una fase funcional, yo estaré mejorándolo con el paso de los días y si es requerido hare una futura explicación de los cambios. Sean libres de comentar dudas.


Preparativos

Estoy utilizando la versión de Unity 2019.4.18f1 y en teoría cualquier versión mayor a esta funcionara de manera correcta. Este será un proyecto totalmente 2D así que pueden elegir esa plantilla desde el Unity Hub.

Unity_Hub_XS61ZsBRU4.png

En el proyecto final que estará disponible en GitHub encontraran toda la configuración y elementos que utilice para realizar el videojuego.

¿De que trata el juego?

Sera un plataformas en desplazamiento horizontal automático, en donde solo debemos hacer Tap a la pantalla para saltar y esquivar obstáculos que aparecen cada cierto tiempo.

El objetivo es obtener el mayor número de puntos ya sea saltando y esquivando o coleccionando monedas HBD 💰. Unity_4e5iZ8lzUg.png
Aclaro que esto no es un proyecto final, es una practica de como funcionaria un juego similar.

Estructura del juego

Se divide en múltiples objetos los cuales contienen dos Administradores (Managers) de condiciones y elementos del juego. Uno se encarga de contener todo lo que son los elementos de la UI mientras el Game Manager se encarga de calcular cuando saltar, el puntaje e incluso cuando se pierde.

Seguidamente están los objetos que contienen la cámara principal, todo el UI que se define como Canvas el cual posee los botones, texto y el panel para dar clic (que cubre toda la pantalla y es invisible al ojo humano). Luego viene el EventSystem que retiene todas las interacciones que uno hace, ya sea por teclas o por el touch en la pantalla.

Luego se ubican los elementos como el Jumper (personaje que controlamos), el Floor que son todos los elementos que conforman el suelo, un obstáculo, una moneda y una colisión que reiniciara el suelo a su posición inicial y dar la sensación que el suelo avanza infinitamente.
Unity_eGYtoB0YOn.png
Cada uno de estos elementos se les define como GameObjects, es una especie de contenedor de Scripts y componentes predefinidos que le dan características especiales en la escena, para mas información lea la documentación.

Flujo del juego

El concepto es simple, solo debemos obtener puntos y sobrevivir, para ello debemos programar una pequeña serie de mecanismos los cuales se reducen a estos.

goojumpdiagram.png


Fase de armado
El proceso llevo a crear una serie de Scripts y componentes que separan como se llevan las mecánicas y manejadores del modo de juego partiendo por un componente para el jugador, otro para el suelo, un comportamiento para los objetos, el ya definido para la UI y el general para el Gameplay que maneja los puntos, cuando se debe pausar el juego, el inicio y el final.

El arte que utilice es totalmente hecho por mi al igual que el código suministrado.
Game Resources


Resultado final


Final Result

Codigo fuente



Pueden editar el código a su gusto, al igual que los recursos gráficos.
Si deseas contribuir al código puedes hacer un pull request.


Gracias por leerme, puedes ubicar más de mi contenido en las redes...

Sort:  

Congratulations @aesthezel! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You got more than 10 replies.
Your next target is to reach 50 replies.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Feedback from the March 1st Hive Power Up Day
Hive Tour Update - Financial stages
 4 years ago  

Orale que genial post, aunque estaria genial post con cada parte del proceso para los que andamos mas perdidos jaja

Si, ya estoy viendo como mejorar la dinámica y hacer mejores detalles del proceso, quizas un proyecto más básico para ir calentando