Rediseñando el formato de diálogos

Siempre he pensado que la mejor forma de encontrar los fallos de una idea es lanzarse a implementarla. Uno de los subsistemas (suena bien la palabreja, da la impresión de ser parte de algo grande y complejo) en los que más tiempo he invertido es el de diálogos. Lo he mencionado a menudo y Ozkar ha hecho varias sugerencias interesantes que me he detenido a investigar. Pero esta semana me percaté de algunas deficiencias en el diseño inicial.

Sabía que en algún momento aparecerían, las cosas nunca salen bien desde el principio. El sistema actual era incapaz de especificar más de una acción o condicional para una línea de diálogo. Los nodos de líneas sí implementaban una especie de ACL: la primera respuesta en pasar el filtro era la mostrada, pero los bloques de respuestas no, porque inicialmente pensé que no lo necesitarían. Las respuestas no son reutilizables, porque están en bloques, lo cual me dio la solución obvia a ambos problemas: separar las respuestas como ramas independientes del árbol.

Esto resuelve el problema de reutilizar líneas del diálogo y además, me permite complejizar mucho más la sintaxis de las respuestas para representar listas de acciones y condicionales. Esto, por supuesto, repercute en la complejidad del parser y me obliga a trabajar con elementos de XML mucho más complicados, no es lo mismo obtener el valor de un atributo que tener que interpretar un arreglo de valores.

Pero, como siempre le digo a un amigo: nadie dijo que programar juegos fuera fácil.

3 thoughts on “Rediseñando el formato de diálogos

  1. Hola colega, ya estoy en la plataforma, te voy a fusilar el theme del blog, ya que es el único simple que me encontré :D. Gracias por la mención en el artículo.
    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *