#FemCode
FemCode v2.0: Sistemas de Diálogo
En muchísimos juegos, salvo en aquellos con un enfoque centrado exclusivamente en las mecánicas, la narrativa es un componente fundamental. Para transmitirla al jugador existen múltiples posibilidades, algunas de ellas exclusivas del medio y otras compartidas con otros como la literatura o el cine. El diálogo es una de ellas.
Una de las implementaciones más frecuentes que se puede encontrar es la basada en árboles (o grafos) de conversación. A partir de un nodo inicial se van presentando diversas opciones al jugador, que elegiría una. Su elección a su vez desencadenaría una respuesta por parte de un NPC (o, en juegos como el Divinity: Original Sin con otro jugador), que puede limitarse a continuar o terminar la conversación, o bien generar algún tipo de cambio en el estado del mundo (obtener información, por supuesto; cambios en la afinidad de un NPC hacia el jugador, obtener/perder items, completar/desbloquear misiones, etc).
En otros ejemplos más complejos el jugador tiene mayor flexibilidad a la hora de interactuar, pudiendo formar preguntas a base de combinar bloques para formar oraciones simples (Por ejemplo, “¿Quién es…[PERSONAJE]?”) y otros juegos llegan a utilizar intérpretes de lenguaje natural para interactuar directamente con NPCs. Un ejemplo reciente de esto último lo podemos ver en Event[0] (Por si tenéis curiosidad, su desarrollador dio una charla sobre cómo incorporar chatbots a un juego).
Para el segundo reto de código las programadoras de la comunidad de FemDevs escogieron como tema investigar la arquitectura que hay detrás de un sistema de diálogos. Como meta había que implementar la lógica de uno de ellos en una demo que permitiera mostrar una conversación y dar al jugador la posibilidad de interactuar.
Por simplicidad, diálogo hablado, localización y formatos elaborados de control o interfaz de usuario (por ejemplo, las ruedas de diálogo del Mass Effect) quedaban fuera del ámbito del reto.