Principios de diseño de los diálogos ------------------------------------ Última actualización: 04/07/02 por Hizgael Versión más actualizada: http://eutherpe.org Los objetivos que no hay que olivdar al realizar el sistema de conversaciones con los PNJs son facilitar las tareas de: - creación de nuevas conversaciones PJ-PNJ por parte de los maestros de salas - interactuar con los PNJs durante el juego. El sistema de conversaciones que tengo pensado debería cumplir adecuadamente estas dos tareas, y además no creo que sea demasiado dificil de implementar. Por cierto, en este documento llamaré 'conversaciones' a los textos predefinidos en ficheros, y 'diálogos' a la secuencia de intercambios de texto durante el juego. Otro objetivo importante es el permitir que los PNJs ayuden a crear un entorno de juego creíble, Y una historia interesante. Hay principios de creación de conversaciones para conseguir estos objetivos; poco a poco iré traduciendo los documentos en inglés que he encontrado y los agruparé en un documento de 'Como crear un buen PNJ'. Navegar por la conversación --------------------------- Estas son las características de la 'navegación' de un jugador a través de una conversación con un PNJ: - centrado en 'tópicos' (temas) de interés. La conversación tiene una topología de 'red semántica', donde el escritor enlaza los nodos que quiere que sean más o menos consecutivos durante el diálogo. El jugador, en función de cómo transcurra el diálogo, escoge el siguiente tema por el que quiere preguntar. Normalmente escogerá alguno que se acabe de mencionar, aunque puede preguntar por alguno del que se haya hablado un rato antes, o que no haya salido en la conversación. - evitar el síndrome 'tablón de anuncios' en el que el PNJ siempre responde lo mismo a la misma acción del jugador. Cada tema puede presentar distintos textos de respuesta según el estado previo del diálogo. - para que el escritor tenga control sobre qué texto se va a mostrar en un momento dado, dispondrá de al menos estos 2 mecanismos: 1) aislamiento (semi)estanco de los temas. Los temas estarán agrupados en paquetes llamados 'contextos'; si el jugador bruscamente de contexto, se activará la respuesta 'por defecto' del tema solicitado; pero si se mantiene preguntando por tópicos del mismo contexto, se pueden ir activando respuestas preparadas más sutilmente, que formen una línea argumental de diálogo. El atributo de inteligencia del personaje debería permitir detectar, como si fuesen objetos ocultos, los temas de conversación más relacionados con el que se está usando ahora mismo. Esto representa que los personajes más inteligentes pueden encontrar más fácilmente los matices en la conversación con el PNJ, y aprenden qué es de lo que más le interesa hablar. Así, un jugador con un PJ inteligente podrá mantener mejores diálogos con los PNJs que uno tonto. 2) estado previo del diálogo: memoria, humor del PNJ, y 'triggers'. No se debería repetir dos veces un mismo item de texto, se debe registrar si de este tema se hablado ya, y en ese caso mostrar un texto alternativo de entre varios. Al acceder a ciertos items de texto se pueden definir 'hitos' en el diálogo, indicando que el jugador ha descubierto algo de información. Puede haber items ocultos que sólo se presenten si se ha alcanzado un hito concreto, o items que dependan de requisitos (características del jugador, presencia de algún objeto en la sala...). Algunos de estos hitos pueden representar distintos estados de ánimo del PNJ (alegre, miedoso, enfadado...) y estar almacenados en una variable que se cambie cuando el escritor quiera. Otra idea importante es la de que la conversación dependa del grado de 'confianza' del PNJ con cada uno de los personajes de la sala. El PNJ tendrá un 'humor' base, que al inicializarse depende de los personajes presentes en la sala (por ejemplo, el posadero puede empezar la conversación de mal humor porque la taberna se ha llenado de enanos). El humor cambiará a mejor o peor, como efectos por activar items de texto específicos. También bajará (¡mostrando mensajes de ambientación como efecto secundario!) si el PJ cambia constantemente entre temas no relacionados; esto favorece que los jugadores procuren mantenerse 'on topic' y mejora mucho la apariencia de realidad del diálogo. Además, si un PJ hace subir el humor, la confianza del PNJ en él aumenta, o si le estorba o dice algo raro, disminuye. Ciertos contextos o items de la conversación sólo serán accesibles si la confianza en el PJ está por encima de un umbral. Interfaz de diálogo durante el juego ------------------------------------ Una vez descartado por completo la interpretación del lenguaje natural por parte del PNJ (o de intentos horrorosos como 'gandalf, coge llave' que acaban siendo una tortura para el jugador), hay como mínimo 4 mecanismos de interacción entre el PJ y los PNJs que dan distintos resultados. 1.- comando 'hablar' Cuando el jugador quiere comunicarse, usa +hablar PNJ. El resto de la conversación aparece automáticamente, sin más intervención; el texto se escoge automáticamente con el tema más apropiado para la situación actual. Este sistema tiene la ventaja de que consigue diálogos muy consistentes y bien ambientados. El inconveniente es que permite muy poca interactividad, no hay mucha diferencia con leer una novela. Además, da una sensación de desapego con el PJ, como si éste fuese por libre. 2.- conversaciones en forma de menú Tipo 'Monkey Island'. Conversación en forma de árbol, a cada paso el jugador escoge entre 3 o 6 frases prefabricadas. Esto mejora el control sobre la dirección que toma el diálogo, y consigue una buena caracterización tanto del PJ como del PNJ. Por contra, es bastante restrictivo: a menudo ninguna de las frases a escoger te interesa. Además, provoca una fuerte sensación de 'me he dejado un montón de temas por tratar' si no puedes volver atrás, o de linealidad si sí que puedes. 3.- comandos 'decir/preguntar' Es el más común de los que se usan actualmente. El jugador escoge como siguiente tema de conversación lo que se le ocurra, preferiblemente relacionado con lo que se acaba de hablar. Con el comando +decir se supone que el PJ ofrece información que el PNJ no conoce, y con +preguntar (más frecuente) intenta sonsacarle. El estilo literario del texto puede hacer que se consiga un diálogo bastante bueno, aunque a veces la pregunta que hace el PJ no sea exactamente la que tenía en mente el jugador. Este tipo de conversación se puede adornar con verbos adicionales, sobre todo de comunicación no verbal (tocar, abrazar, pellizcar, carraspear, incluso besar!) que pueden ayudar a cambiar el 'humor' del PNJ en los contextos adecuados. 4.- híbrido tópicos/menú Una posibilidad es juntar los mecanismos 2 y 3, de modo que cuando preguntes por un tema se te ofrezcan varias posibilidades para formular la pregunta, o la opción de retractarte si ninguna te gusta. Con esto, el control del diálogo mejora mucho, y se reducen bastante los inconvenientes de los menús. Formato de las conversaciones ----------------------------- Como decía en el mensaje anterior, al escribir una conversación se parte en un fichero de conversación que apunta a varios de contexto. Esto permite compartir contextos frecuentes entre varios personajes del mismo tipo o del mismo lugar. Además, es fácil implementar muchas conversaciones para un mismo personaje, agrupando contextos; algunos contextos pueden estar en varias de las conversaciones de este mismo personaje. El contexto contiene una lista de temas relacionados. Cada tema puede tener uno o varios 'items' de texto, algunos de ellos con prerequisitos; si hay varios items activos a la vez, se pueden presentar al jugador para que escoja la pregunta que más le guste. Pienso que esta implementación permite implementar los 4 mecanismos de interfaz de diálogo mencionados, y dejar al escritor escoger entre ellos. Con esto se corre el peligro de despistar al jugador: si un personaje sólo tiene la interfaz 'hablar', no responderá nada con 'hablar/preguntar' y el jugador se pensará que el PNJ no tiene una conversación interesante. Esto se podría remediar mostrando las frases 'Quizá deberías ser más específico' si intentas 'hablar' y el PNJ sólo responde a 'decir/preguntar', o 'No seas tan específico/no entres tanto en detalle' en el caso contrario. La única pega entonces es que al haber varias interfaces, puede ser más difícil de aprender para el jugador al principio.