ah, cutscenes

ya había hecho el trabajo de reescribir el código relacionado con las cutscenes, pero todavía no lo implementaba. lo acabo de hacer, y funciona muy bien. arreglé unos bugs que se producían principalmente por la centralización de los cutscenes en el obj_control y de los cuales no me había dado cuenta hasta que implementé el código; ahora todo funciona. lo único que me falta por escribir es unir el motor de diálogos con las cutscenes. voy a tener que escribir algunas cosas extras para eso, como por ejemplo, un controlador que le indique al diálogo que el usuario no tiene que presionar nada para que el diálogo avance, junto con un contador para que se defina un tiempo personalizado cuando el diálogo termine.

he estado posponiendo mucho el tema de los caracteres controladores en el diálogo. no debiese ser dificil; lo tenía implementado en el sistema anterior, así que es cosa de revisar si puedo reutilizar ése código y listo.

lo más bacán del código actual para manejar las cutscenes es que se puede definir un cutscene en la creación de una room, y se pueden orquestar a todos los actores presentes con identificador, por lo que hacer cutscenes para el juego debiese ser fácil. añadir casos al sistema de cutscenes es tan sencillo como añadir casos al de diálogos. con los cutscenes hechos y una vez que le añada los caracteres especiales al asunto comienzo a trabajar en el código que se refiera a enemigos: variables extras, comportamientos básicos, y cosas así. voy a tener que reimplementar el código de los sparks (por fin se cómo ponerles a esas cosas) para las explosiones y esas cuestiones. también voy a tener que trabajar en el sistema que se encargue de las muertes, de los enemigos, los aliados y esas cosas.

cuando termine el sistema de enemigos, tengo muchos puntos por seguir desarrollando, y procedo a dejarlos anotados antes de que se me olviden:

  • tipos de diálogos: diálogos que ocupen imágenes/ilustraciones, diálogos sin marco, etc.
  • portales: ésto lo tengo solucionado desde una de las iteraciones anteriores de catbox. No debiese ser problema.
  • transición desde una escena a otra: ésto siempre me dio problemas. Éstaba pensando que la forma más sencilla de hacerlo es haciendo que los personajes sean persistentes y ubicarlos en cierto lugar al principio de cada escena. Tengo que cachar, además, el código para que los personajes entren y salgan de las escenas. No me gusta el código viejo mio, así que hay que cambiarlo.
  • clima y Hora: ésto es algo que se me ocurrió hace un tiempo. Las escenas de las iteraciones anteriores se podían definir con hora y clima, pero ahora me gustaría tener un sistema que maneje todo eso de forma automática. La forma de proceder en éste caso es asumir el acercamiento de Legend of Zelda: Ocarina of Time con respecto al tema, y hacer ciertos lugares en que el tiempo trascurra, y que el resto sean puntos fijos; En la carretera/los caminos, el día pasa y según los horarios del día aparecen o se esconden ciertos enemigos, y en el resto de los lugares el tiempo o bien es estático o se comporta de forma arbitraria, por ejemplo, si debes salir de noche a un lugar, que la forma de "hacer de noche" sea entrando a una casa a la que debes pasar a buscar un item o a un personaje. Lo que quiero es no perder la linealidad de la narrativa del juego, pero que existan cambios de terreno que afecten al gameplay. El motor debe estar preparado para ambos casos.
  • menus: sí, tengo resuelto el tema de los menu en los diálogos, pero todavía no hago uno para el resto de las instancias de menu en el juego. Ésto implica implementar offsets para menús en que hayan más opciones de las que se muestran en pantalla.
  • inventario: lo tengo medianamente resuelto en otras iteraciones, pero se me ocurrió, inspirado en Earthbound, que cada aliado debiese tener su propio inventario, y que los items, al usarlos, debiese ser posible elegir quién los va a usar. También debería existir una opción para desocupar celdas en el inventario o traspasar los items entre aliados. Lo que es aún más importante, tengo que programar un sistema de almacenamiento de items. No es difícil, pero es un sistema completamente nuevo y debe funcionar de forma similar a las tiendas.
  • aliados: lo tengo medianamente resuelto, pero hay un asunto con las views que nunca me gustó. Tengo que arreglar eso. Probablemente pausando el juego cuando un aliado está muy lejos de otro.
  • música y sonidos: meh.

una vez que pueda resolver todos los temas pendientes, puedo decir con libertad (¡y de una buenas vez!) que la versión 1.0 del motor está lista, y por lo tanto voy a liberarlo junto a una demo cortita que muestre todo lo que se puede hacer con el motor. antes, eso sí, tengo que pensar en una licencia buena onda para liberarlo. me gustaría liberarlo bajo una licencia similar a las GPL v2, pero tengo que ver exactamente qué quiero hacer. hm.

blog comments powered by Disqus