Vídeo

Vídeo de muestra #2: Prueba de coger objetos y usar el inventario

Después de otra semana entera programando, por fin os traigo un nuevo vídeo sobre cómo va el proyecto. Ya queda menos para la demo pero aún quedan unas cuantas cosas por hacer antes de lanzarla.

Tengo que admitir que esperaba que programar el inventario y los objetos del inventario solo me iba a ocupar un par de días. Que equivocada estaba. He tenido que aprender por el camino el uso de delegar eventos, los listener de eventos, objetos (tanto del inventario como del escenario) que realizan acciones distintas según sea el estado del otro con el que interactúan, y alguna que otra cosa más. Y un par de reajustes en el control de estados para la situación especial que supone usar un objeto del inventario en el escenario.

Las funcionalidades que he programado para este vídeo son:

  • Inventario que se abre y se cierra al hacer click izquierdo sobre la barra superior de este, y que a su vez también lo hagan los objetos del inventario. Para lograr este efecto con los objetos del inventario, lo que he hecho es que sean hijos del gameobject del inventario. Así si este se mueve, también lo harán los gameobject de los objetos del inventario anidados en él.
  • Añadir un objeto al inventario si interactuamos con un objeto del escenario que se puede coger con click derecho.
  • Función de examinar un objeto del inventario para obtener una descripción más detallada de él al hacer click izquierdo sobre él.
  • Al realizar click derecho sobre un objeto del inventario, lo arrastraremos con el ratón hasta que volvamos a hacer click derecho con él, de ser así, volverá al inventario y en el caso de haberse sido usado encima de un objeto del escenario con el que puede interactuar, realizará la acción pertinente.
  • Durante la interacción entre el objeto del escenario y el del inventario, la acción a realizar dependerá del estado actual de dichos objetos. Y en algunos casos incluso se borrará el objeto del inventario después de su utilización.

Si bien ya tengo las mecánicas de interacción en el escenario totalmente implementadas, aún quedar hacer algunos arreglos. Lo siguiente será el sistema de automatización de escenas en cuanto ocurran ciertas cosas en el escenario y un sistema de guardado de variables para cuando se cambie de escenario, de manera que si salimos de un escenario y volvemos a entrar, todo siga estando tal y cómo lo dejamos. Una vez implementados estos, podré centrarme en sistemas más internos como el de pathfinding y la localización de los textos.

Una vez más, espero que os haya gustado el vídeo y gracias a todo por la difusión del proyecto.

Vídeo

Vídeo de muestra #1: Prueba de animaciones e interacciones básicas

Después de pegarme una paliza esta semana programando para la demo y, por consiguiente, también para el juego (pues el código se reutilizará), aquí os traigo una muestra de lo que he hecho esta semana.

La verdad es que para ser la primera vez que programo un juego con cierta complejidad, me ha gustado el que haya sido capaz de aprender a manejar algunas funcionalidades y código para luego aplicarlas a mis scripts de control del personaje en el corto plazo de una semana.

Las funcionalidades que he programado para este vídeo son:

  • Control de animaciones por máquina de estados en script y que este modifique los valores necesarios para que Mecanim (la máquina de estados que aparece en el vídeo) cambie a las animaciones correspondientes.
  • Función de ir a un sitio (sin sistema de navegación aún, sólo camino directo) o examinar con click izquierdo si le damos a un objeto interaccionable, en ese caso el personaje irá hasta dicho objeto y hablará para comentar lo que ve.
  • Función de interactuar con los objetos interaccionables con click derecho. Dependiendo del tipo de objeto interaccionable hará una cosa u otra, en el caso del vídeo la puerta solo es un objeto examinable y la ventana es un objeto con mecanismo (abrir y cerrar).
  • Diálogos que cambien según la información que nos dé el objeto.

Falta por implementar aún muchas cosas. Por ahora lo siguiente a implementar será el sistema de inventario, seguido del control de escenas en el caso de escenas automatizadas o que ocurra un evento y modifique el escenario. Más tarde me dedicaré a los sistemas de navegación para que el personaje se mueva por rutas en el escenario y el de localización de textos.

Todo lo que se muestra en el vídeo ya está disponible en el repositorio de GitHub, pero no aconsejo aún a la gente que ojee el código pues aún no he comentado el código para su documentación con Doxygen, estoy esperandome a terminar la demo para ello.

Espero que os haya gustado el vídeo, y con suerte para el final de esta semana o principios de la siguiente tenga otro vídeo con el que deleitaros.