Prototype Dungeon (Entrada 1)

Este proyecto de videojuego lo inicie el día 12-07-2021. Hasta el momento sigue en desarrollo pero gran parte de las funciones principales están completas. La idea general es crea un First Person Shooter al estilo de Doom o Heretic, aunque para mantener las cosas sencillas y poder crear el juego a tiempo, utilizare solo dos modelos de personajes y las mismas animaciones para ambos. También me estoy ayudando de distintas herramientas para construir los niveles y paquetes de sprites gratis para poder configurar el inputTouch.

Vista de la pantalla de juego y el HUD.
 

Originalmente la idea era crear este juego para Pc pero debido a que mi cuenta de desarrollador de Google esta a punto de caducar y no he publicado nada, decidí modificar este proyecto y hacerlo para Android. 


Hasta ahora las cuestiones del input, movimientos y animaciones del Player están superadas. Me falta construir el primer nivel completo, agregar los enemigos, items, trampas y otras cosas como puertas y portales que conduzcan a otras áreas.


Este proyecto lo estoy creando en el motor Unity versión 2020.3.13f1. Al principio había descargado Unreal Engine pero decidí quedarme en Unity por la facilidad de configuración que tiene y porque es muy fácil encontrar temas de ayuda sobre este motor.

Vista del proyecto en el entorno del motor.

Vista del personaje en animación con "Espada corta".

Vista del personaje con "Espada larga" y pantalla de juego.

Hasta el momento estos son los avances del proyecto. Me estoy divirtiendo mucho y disfrutando ya que es gratificante ver como tu aprendizaje se traduce en algo que tiene movimiento y que lo puedes exportar a android y probar en cualquier dispositivo. 

Dejo aquí el diario de trabajo del proyecto hasta este momento. En otra ocasión publicare el mismo con imágenes de los avances que se fueron realizando. 


Diario de Trabajo. (No tomen en cuenta las faltas de ortografía)

12-07-2021
Este dia inicio con este proyecto. Se comienza creando el escenario que era un plano verde y una capsula con una caja para representar al juagdor y al enemigo.
Tambien creo los materiales y descargo el ScriptInspector3, es muy util. 

13-07-2021
Escribo el codigo de enemigo basico y el codigo del objeto que provoca daño. Tambien se realizo el codigo basico para mover al player.

15-07-2021
Hoy se hizo correcciones en el codigo del enemigo, en la creacion del objeto que causa daño al Player. Tambien se realizo el codigo de las CharacterVariables. Se aprovecho para crear el objeto que contiene una camara y dar la impresion que cuando muere el jugador queda tirado con los ojos abiertos. 

16-07-2021
Se modifica el codigo del DañoEstatico para que baje la vida que se encuentra en el codigo de CharacterVariables de cada personaje

***Cuando el Player muere, los enemigos se quedan dando vueltas en su posicion y siguen atacando. No quiero que hagan eso, quiero que se regresen a sus lugares de inicio.

17-07-2021
Hoy realice cambios en los codigos del enemigo, del ctlPlayer, del objetoAtaque. 
El player ya no es destruido y sustituido por otro objeto, al quedar con vida 0 se detienen los controles. Los enemigos siguen atacando al jugador, aunque tenga vida menor a cero. tanto enemigo como jugador tienen sus propios codigos de armas. 
Le asigne el boton ControlIzquierdo al jugador para que se pueda hacer un ataque al presionarlo, asi te puedes defender de los enemigos. 

18-07-2021
Escribi un pequeño codigo para contar cuantos objetos hay en escena que contengan un tag. 

22-07-2021
Modifique el codigo el player para que pueda dar saltos.

***Cuando el player salta y hay una dama, la dama queda debajo del jugador y el player queda sobre ella. La dama no puede atacar y el player nunca muere. 
Si el player esta sobre un puente y la dama queda debajo, al moverse el player a una rampa. la dama se cae del escenario.

23-07-2021
escribi el codigo de la torre. A partir del codigo de Ataque del enemigo cree el codigo del proyectil del enemigo para que pueda lanzar proyectiles la torre. 

24 al 27-07-2021
No he avanzado. Me detuve a probar codigos que implemente NavMesh, esto para solucionar el error que daban los enemigo cuando pasaban debajo de una rampa y tambien para solucionar el detalle que se quedaba atrapados en los cuartos.
Despues de varios intentos y de intentar basarme en el codigo EnemigoBasico y fracasar, decidi iniciar desde cero. Esa fue la solucion. el codigo de enemigo que sigue ahora funciona con NavMeshAgent. Se deben pulir algunas cosas pero en general hace lo que debe. 
Ahora el Player tiene un codigo que determina si esta vivo o muerto.
Los enemigos buscaran o atacaran al player dependiendo si esta vivo o muerto. 

01-08-2021
Estos dias he estado probando una herramienta gratuita llamada YuME(Yuponic Map Editor). Sirve para construir escenarios al estilo Minecraft.
El dia de hoy escribi el codigo del enemigo tipo Torre pero con NavMeshAgent. Funciona bien, tiene un error que no me parece tanto un error; cuando te persigue y se aleja de ti te dispara, y sigue disparando mientras se esta alejando, hasta que salgas de su rango. 
Tambien los enemigos con codigo BasNVM1 tienen el error que cuando estan lejos de ti, se regresan a su posicion inicial, pero si al hacerlo tienen que pasar por un camino que vuelve a quedar en tu rango, vuelven a perseguirte, lo que hace que se queden bloqueados en esa posicion, esperando hasta que tu te muevas para perseguirte o para alejarse a su posicion inicial. 

03-08-2021
Modifique y cree una nueva version del controlador del jugador. Con la version 3 puedes correr al presionar la tecla SHIFT, saltar con SPACE, moverte con las flechas de navegacion o ASDW y tambien se agrego una variable de sigilo para que cuando camines muy rapido el jugador salga de sigilo y sea detectado por los enemigos. 

05-08-2021
Hoy escribi un codigo prueba sobre disparos con Raycast. pienso agregar raycas a los enemigos para que solo ataquen cuando el jugador lo tenga a la vista y no solamente cuando este cerca de ellos. 

07-08-2021
Hoy modifique el codigo de los proyectiles y las balas para que cuando golpeen al player lo empujen en sentido contrario a la direccion del golpe emitido. 

18-08-2021
Se agregaron los modelos Ybot de Mixamo para utilizarlos, tambien sus animaciones. El player sera azul y los enemigos de un color naranja o rojos.

29-08-2021
Hoy agrege el asset SimpleInput para agregar opciones de control mediante touchScreen. 

30 a 02-09-2021
El codigo del mouse interferia con el codigo del touch. Cuando se prueba en el Smartphone toma la pantalla entera como un mouse y eso hace que no pueda usarse las entradas de mouse para mover la cmara del jugador. 

03-09-2021
Hoy tuve que modificar el codigo del jugador para que pudiera funcionar bien con controles touch. 
tuve que agregar cuatro botones para controlar la camara del jugador. Funcionan con las teclas IJKL. 

04-09-2021
se crea le codigo base para las puertas, se modifica el codigo PlayerVariables para que contenga las llaves de las puertas.

09-09-2021
Se modifica el BasicControlTouch. Al presionar el boton R, se queda bloqueado el movmiento de correr, al volver a pulsar R se desbloquea y el player camina a velocidad normal. 

Nuevamente intente obtener las entradas del mouse, pero sigue interviniendo con el touch. Tuve que crear otros ejes(Xcamera, Ycamera) que recogen los valores del simpleTouch. La solucion funciona correctamente pero tuve que desactivar las entradas del teclado que mueven la camara

Comentarios

Entradas populares