Cambiado el sistema de “diálogo”. Ahora no es obligatorio que el juego se detenga hasta que se pulse el botón de acción para continuar, sino que eso se puede reservar para los momentos en los que un personaje hable con otro. En el resto de los casos el cuadro de diálogo surgirá y desaparecerá en relación a la cercanía con un objeto. He añadido un objeto de prueba que sería una especie de tesoro sin el cual el personaje no quiere abandonar el laberinto, de manera que aunque llegue al final, comprobará si el tesoro está en el inventario y en el caso de que así sea, permitirá la salida o, en el caso contrario, dará un mensaje invitando a seguir buscando. Si consigues llegar a la salida con el tesoro, pasarás a otro laberinto más grande en el que tendrás que buscar el siguiente tesoro. Esto ya es parecido a un juego en si.
 
Imagen
Añadido un sistema de “diálogo” que será como el juego se comunique con el usuario, ya sea con mensajes de sistema como con frases que digan los personajes. También se ha cambiado la definición de las celdas del laberinto, de forma que ahora puedan tener estados diferentes, contener objetos con los que se pueda interactuar, etc. Añadido en el dibujado de la escena que cuando el jugador coincida en la misma celda con alguno de estos objetos, salga su nombre en pantalla y el cuadro de “diálogo” con lo que el personaje opina del objeto o una descripción de lo que sucede.

 
Decidido. Tengo que tener una versión jugable lista cuanto antes y con jugable me refiero a una versión con pantalla de inicio, un menú para empezar a jugar y al menos un nivel que puedas empezar y acabar y que incluya el tener que hacer alguna acción para avanzar. He puesto un sprite como personaje, pero aún no tiene animación más allá de que lo giro para que mire en la dirección que avanza en cada momento.
 
Me estoy dispersando... entre la vuelta atrás y las últimas jornada siendo más de diseño que de programación siento que no estoy avanzando lo suficiente. Hoy he pasado más tiempo mirando el código y el programa, sabiendo las cosas que tengo que ir haciendo, pero sin realmente la inspiración como para ponerme seriamente a ello.
 
Imagen
Inspirado por la lectura de un artículo sobre diseño de juegos decido que ya ha llegado el momento de poner un nombre y pensar en una ambientación general para todo el juego. Después de dar muchas vueltas y andar pidiendo ayuda y opiniones decido que lo primero de todo es que la palabra «laberinto» debe de aparecer, para no andar jugando al despiste con el potencial jugador y para diferenciarme del resto de posibles juegos de laberintos que pueda haber, alguna palabra que marque esa diferencia. Todos los juegos que he visto de laberintos carecen de modo historia y ninguno de ellos utiliza generación de sombras, por lo que quiero centrarme en alguno de estos dos aspectos. Ahora, teniendo en cuenta que además del modo historia quiero un modo de juego libre y que quiero ir ampliandolo con nuevos niveles (y posiblemente nuevas historias, lo que haría que la historia actual no fuese algo que defina el juego) pues mejor centrarme en el tema de las sombras. Mi primera opción fue «Laberinto de sombras», o en inglés «Maze of Shadows» o «Labyrinth of Shadows» pero me daba la impresión de que el jugador esperaría ser atacado por sombras o que tuviera que encontrar unas sombras o algo así, aparte de que me parecía el título de una telemovie o de un libro de Tom Clancy, así que cambié la idea y cambié al motivo que hace que haya sombras: luz y oscuridad, y he acabado decidiendome por «El laberinto oscuro», pero por temas de internacionalización y eso ha quedado como “The dark maze”, añadiendo además la presencia de esas sombras que harán que este juego sea tan diferente en aspecto en el logotipo.

 
Rollback completado, descartado el tema 2.5D. Vuelvo a estar como hace unos días, pero mucho más contento con el resultado. Todas las pruebas que he hecho en dispositivos poco potentes funcionan sin problema y el rendimiento en el resto ha mejorado. He cambiado la estructura general del programa y he mejorado el sistema de touch para saber qué dedo está tocando en cada momento y no cancelar todo el movimiento en el momento de hacer un touchUp.  Empieza a preocuparme el tema de las texturas, la apariencia del interfaz y del sonido, que por ahora lo he ido ignorando como algo lejano, pero que en algún momento habrá que afrontarlo con la importancia que hoy en día tienen estos apartados.
 
Imagen
Esto ha sido más problemático de lo que pensaba, pero ha servido bastante como motivación, tanto que ahora estoy metido en una creación dinámica de todo el entorno en 3D, trabajando en Open GL 2.0, iluminando y dibujando modelos usando shaders. El problema principal es que cuando me he visto con todo hecho, han surgido problemas de funcionamiento en teléfonos poco potentes, sobre todo centrados en la parte de la generación del laberinto, al utilizar estructuras de datos demasiado pesadas, por lo que ahora tengo un rollback importante reescribiendo toda la creación para utilizar elementos menos pesados y a los que se acceda de forma más ágil. También me encuentro con problemas en el color de la iluminación que no deberían existir, ya que la única limitación que indica la librería es que el dispositivo debe soportar Open GL 2.0 y está comprobado que el dispositivo lo soporta.