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.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 💰.
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.
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.
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.
Resultado final
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.
Congratulations @aesthezel! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :
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:
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