Estado

Segunda demo jugable

Buenas de nuevo.

Después de otro largo intervalo, he de admitir que “me ha pillado el toro” por trabajar en este proyecto mientras que a la vez he estado haciendo de grafista para Mad Gear Games, que hace poco han lanzado su primer juego en la plataforma Steam Greenlight. Ahora ando realizando el máximo esfuerzo posible para poder terminar el proyecto lo más pronto posible. Por ahora mi intención, es terminarlo para finales de Julio. Si no es posible, al menos tener toda la parte de programación terminada en esas fechas y dedicar el verano a terminar la memoria para entregarlo definitivamente en Septiembre.

Así que lo más seguro es que no escriba en otro periodo largo de tiempo, pero que seguramente la próxima vez que publique algo será para colgar la beta final. Y después de eso intentaré colgar algunas entradas atrasadas mientras termino la documentación y la memoria. Sin embargo, si a pesar de lo dicho no hago las entradas faltantes, no os preocupéis porque lo más probable es que acabe públicandolas, cuando acabe todo, en algún magazine web sobre videojuegos.

Os hablo ahora de la demo actual, esta vez lo implementado es principalmente elementos de la interfaz, usando el sistema UI de Unity, y el sistema de ficheros de guardado y ajustes:

  • Menú principal con botones de nueva partida, cargar partida y salir del juego.
  • Ratón personalizado que cambia encima de los botones y los objetos interactivos.
  • Barra con los nombres de los elementos interactivos dentro de los niveles.
  • Menú de opciones al que se puede acceder dentro del juego (mientras no se esté ejecutando una acción).
  • Botón de mapa en el menú de opciones, en el que aparecerá un mapa (no definitivo) con una localización, si clickamos en él nos transportará al lugar indicado.
  • Botón de ajustes en el menú de opciones, en el que podremos modificar la resolución del juego (en resoluciones 4:3), modo pantalla completa, de ajustes de volumen en el audio (se guardan los cambios aunque todavía no haya música ni sonidos) y se puede cambiar de lenguaje entre español e inglés.
  • Botón de notas en el menú de opciones, aunque aún solo contenta una nota de ejemplo, aquí se iran colocando pistas y recordatorios según el jugador vaya haciendo cosas.
  • Botón de partidas guardadas en el menú de opciones, aquí podremos guardar la partida actual, cargar una partida o borrar las partidas.
  • Botón de salir del juego en el menú de opciones.
  • Ventana modal para verificar según qué acciones en los menú.
  • Implementado sistema de guardado de ficheros de guardado.
  • Implementado sistema de guardado del fichero de ajustes del juego, y estos valores se cargan automáticamente al iniciar nuevamente el juego.
  • Bugfixes  y mejoras varias.

Para poder jugar la demo, tenéis que hacerlo desde la página de GameJolt al igual que la otra vez. Aunque esta vez he deshabilitado la versión web por problemas con el navegador Google Chrome y porque de esta manera no funcionan los sistemas de ficheros para guardar ajustes y partidas. Tenéis ejecutables para Windows de 32 bits y GNU/Linux de 32 bits. En el caso de que alguien con Mac OS X o con SO de 64 quiera otra build, que me avise y la cuelgo también 😉

Click para ir a la página de GameJolt y bajarse la demo.

Al igual que con la demo anterior, si encontráis bugs o tenéis sugerencias, indicarmelas por un comentario a esta entrada, en la entrada de esta demo en GameJolt o en el apartado Issues del repositorio de GitHub.

Respecto al repositorio, ahora mismo no está actualizado, mañana colgaré la nueva versión del proyecto. Pondré aquí un edit con las instrucciones para bajarselo de nuevo cuando esté listo. Aviso de que seguramente haya bastante código sucio que no he podido limpiar o esclarecer debidamente 😦

Edit: Ya están subidos los cambios, al igual que la otra vez,  en la branch demo he subido todo el código usado en la demo, lamento decir que aún no está documentado. Espero poder hacer la documentación a lo largo de este mes.

Página del repositorio de la branch demo.

Desde ahí os lo podréis bajar en un zip, si lo preferís bajar usando una terminal, el comando es el siguiente:

git clone https://github.com/Firenz/1812.git --branch demo

Cómo en la demo anterior, si hay alguien que se baja el repositorio, que me avise si hay algún problema. Intentaré solucionarlos y subirlos al repositorio si ocurriera el caso.

Esto es todo por ahora, ya queda menos para tener implementado todas las funcionalidades. Lo cual me alegra bastante a pesar de que el tema de los puzzles a implementar vaya a sufrir bastante.

Saludos y espero que os guste la segunda demo.

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.