Para el desarrollo de este proyecto el primer punto desde el que partimos fue definir las tareas necesarias para completarlo. Se utilizó la metodología SCRUM que consiste en dividir el proyecto en tareas individuales, y definir la carga de trabajo que éstas suponen (o cuánto tiempo va a tomar llevarlas a cabo). Esta metodología de trabajo está bastante extendida en el desarrollo de programas o distinto tipo de software.

Se utilizó, partiendo de esa metodología, las herramienta de hacknplan, que permitía definir las tareas que sería necesario llevar a cabo para completar el proyecto, así como cuanto tiempo costaría completarlas aproximadamente. Además esta herramienta nos permitía catalogar las distintas tareas en grupos dependiendo de cuál era su naturaleza, por ejemplo, desarrollo de la UI, diseño de personajes, animaciones, diseño de niveles, programación…
También hacknpaln puede agrupar distintos grupos de tareas en sprints, de 2 semanas en nuestro caso, que nos permite entregar al final de cada sprint una versión del proyecto y ver como se ha progresado con respecto al sprint anterior. También añadimos una milestone durante la producción , que podría decirse que es como un punto importante que se da durante el desarrollo de cualquier proyecto, como por ejemplo una presentación frente al público o algo por el estilo. En nuestro caso fue una presentación del proyecto dentro de la Ficzone de Granada.
Otra herramienta importante dentro de la parte de gestión es toggl que nos permite cronometrar y gestionar el tiempo que se le dedicaba a cada tarea de la producción.

Por último, pero no menos importante, tenemos a GitHub, que nos permite guardar y controlar las distintas versiones del proyecto y descargar versiones antiguas del propio proyecto. Esto puede resultar útil durante la producción, ya que en el caso de que se cometa un error y no se recuerde donde ocurrió o que, por alguna razón, los datos o el ordenador donde trabajamos resulten dañados, con esta herramienta podremos volver o recuperar las distintas versiones que hayamos guardado.
En Github podemos realizar y publicar las distintas pre releases. Estás son versiones que se publican durante la producción del juego. Son útiles para acceder a versiones previas de nuestro proyecto y para compartirlas con otros usuarios o gente implicada en la propia producción. La gente con acceso podrá descargar y modificar el contenido de los distintos documentos subidos en la nube. Github es útil cuando se trabaja en proyectos cuando hay más personas implicadas ya que se puede observar quien ha hecho una tarea determinada o qué modificaciones se llevaron a cabo y por quién.

Para llevar a cabo la producción de este proyecto se usaron distintos programas para llevarlo a cabo. Empezaremos hablando de el motor Unity, que es el que he elegido para este juego. Es uno de los motores para la creación de videojuegos más extendido y es ideal para trabajos en 2D como es nuestro caso.
Para la creación de los sprites y animaciones se usó el programa de Adobe Photoshop 2019. El proceso seguido para realizar todos los diseños, tanto para personajes, escenarios y objetos es parecido en casi todos los casos:

- Primero Se establece un boceto. Este boceto puede ser dibujado en un formato fisco (con papel y lápiz) o en formato digital (un boceto en photoshop con trazos poco pulidos pero que sirven para definir la idea a la que queremos llegar)
- Luego se pulen los bocetos con el “lineart” que da un resultado más limpio.
- Después con las distintas herramientas de selección de photoshop, como la varita mágica o el lazo poligonal, seleccionamos las distintas partes que queremos colorear.
- Por último añadiremos detalles como iluminación, sombras u otros detalles que mejoren la calidad general del diseño que estemos realizando
Finalmente el programa de edición de sonido, Audacity un programa de edición de sonido que nos permitirá mezclar las distintas muestras del sonido ambiente, así como limpiarlas de ruido si fuera necesario.
A continuación, expondremos las diferentes versiones surgidas del juego hasta la fecha:
- Yzmo Great Adventure v 0.1.0. : La primera versión del juego incluía la primera sala (sala de incubación) en la que el personaje se podía mover, así como también el personaje principal que podía manejarse usando un sistema básico de point and click. En este sprint también estaban listas las animaciones de andar del personaje y las de idle (cuando se encuentra parado se ejecuta una animación para que, el personaje, no parezca demasiado robótico)
- Yzmo Great Adventure v 0.2.0. : En esta versión se realizó la base de la interacción del personaje con el entorno. Primero pusimos un botón con el que el personaje pudiera abrir un puerta que lo llevaría a la siguiente sala (implementada en este sprint también, llamada sala de ordenadores) y incluimos la interacción con un objeto del escenario (el objeto en cuestión son cables) que podía ser recogido y añadido al inventario. También introducimos la UI del inventario dentro del juego que mostraba el sprite de los objetos que se habían recogido.
- Yzmo Great Adventure v 0.3.0. : Aquí introducimos el sistema de guardado de estados en el que nos permite guardar la situación de determinados elementos dentro del juego. Por ejemplo en el caso de los cables, que el personaje principal podía recoger, en este caso al abandonar la sala tras recoger los cables y volver a ella, los cables volvían a aparecer. Tras introducir este elemento de guardado de estados los objetos recogidos por Yzmo no volvían a aparecer. También se incluye una nueva sala a la que acceder (la sala de la Inteligencia Artificial o IA para abreviar.
- Yzmo Great Adventure v 0.4.0. : En esta versión se implementó el sistema de pathfinding a Yzmo, ya que, anteriormente si se encontraba con algún obstáculo en el escenario Yzmo simplemente pasaba por encima de él. Tras esto el movimiento de Yzmo es más fluido y realista..
- Yzmo Great Adventure v 0.5.0. : En esta versión se introdujo la sala del ascensor que más tarde se editó para utilizar una sala de ascensor diferente para cada planta de la nave. Además se colocó el primer puzle, dentro del juego, así como el personaje “Inteligencia Artificial” o IA con una animación de aparición (cuando se completa el puzle) y una de Idle que le da mayor dinamismo al personaje.
- Yzmo Great Adventure v 0.6.0. : Aquí se introducen las salas de ascensores restantes (una para la planta baja y otra para la superior de la nave) y la sala de la cámara que además incluía a la cámara de seguridad. Este “personaje” está completamente animado con una animación por defecto que da movimiento a la escena. También se incluyó el objeto de cubo de basura para que se pueda recoger en el inventario y además al seleccionar un objeto en el inventario el cursor del ratón cambiará de aspecto al objeto seleccionado.
- Yzmo Great Adventure v 0.7.0. : En esta parte se ha realizando el código de la cámara de seguridad que, al ver a Yzmo, bloqueara el camino a la sala de motores a la que tiene que llegar Yzmo. También se introduce en esta parte la interacción con objetos desde el inventario al escenario (com usar el cubo de basura en la cámara o los cables en el motor) También se ha añadido un nuevo puzle con el que se cerrara la demo, así como diálogos para los personajes, que se comunicaran con pictogramas (sprites diseñados y animados)