Conversaciones, Adventure Game Studio

07 de noviembre de 2008
Valoración del artículo:
¿Que diversión habría en un juego de aventuras sin personajes con los que hablar? ¡Probablemente no mucha!
Atención: Contenido exclusivo de DesarrolloMultimedia.es. No reproducir. Copyright.

Conversaciones

La cantidad de dialogo que uses dependerá del estilo que quieras dar a tu juego. Normalmente, los juegos de Sierra solo dotaban de frases fijas a sus personajes y estas solo cambiaban, a veces, cuando volvías a hablar con el mismo personaje. Los juegos de Lucasarts (y algunos de Sierra como la saga Quest for Glory) sin embargo, tienen arboles de diálogos completos a través de los cuales podías elegir distintos temas sobre los que hablar con los personajes.

AGS te permite hacerlo de ambas maneras. Primero lo haremos usando la manera compleja, con árboles de diálogo, para luego mostrarte lo sencillo que es recortar estos árboles y limitarnos a frases fijas al estilo de los juegos de Sierra.

Antes de seguir, sería bueno que nos parasemos a pensar que tipo de conversación vamos a crear. Será mucho más fácil implementarla si ya tenemos un planning de como queremos que transcurra la conversación y de que opciones y cuando van a estar disponibles. Para este tutorial vamos a usar una estructura como esta:

Nuestro árbol de diálogo


La primera vez que hablemos con este personaje, le diremos “¡Hola!”. Cuándo nos conteste, se nos ofrecerán las tres opciones que se ven en la imagen. Cuando elijamos la segunda opción “¿Que tienes a la venta?”, nos llevara a un nuevo grupo de preguntas entre las que elegir.

Pero antes de nada tenemos que crear otro personaje al que asignarle estas frases, no podemos dejar que el pobre Roger hable consigo mismo. Así que ve al Árbol de Proyectos y selecciona “Characters”, haz clic derecho sobre el y selecciona la opción "New Character". Haz doble clic sobre el nuevo personaje "cChar1" para abrirlo.

Ve a la rejilla de propiedades y asigna un RealName a este personaje, yo he decidido llamarlo Mercader. Esta parte es vital, también tendrás que asignar un Nombre de Script para este personaje. Este será el nombre que usaremos para referirnos a el a través del script cuando creemos los diálogos. Para seguir con las convenciones habituales en AGS yo le he asignado "cMercader" como nombre de script. Te recomiendo que uses un nombre reconocible como este en lugar de dejarlo como "cChar1" ya que si no la creación de los diálogos se puede convertir en algo caótico.

Una vez que hayas terminado con los nombres expande la opción "Dialogs" del editor, y veras que solo hay una entrada con el nombre "0". Podemos crear una entrada nueva haciendo clic derecho y seleccionando “New Dialog”, pero ya que disponemos de esta, vamos a usarla. Haz doble clic sobre ella y verás una ventana similar a la de la imagen:

El editor de diálogos


Las conversaciones en AGS están compuestas de topics (temas). Un topic esta compuesto de un grupo de opciones sobre las que el jugador puede hablar, no todas ellas tienen que estar disponibles desde el inicio. Cuando el jugador selecciona una opción de un topic, se ejecuta el dialog script correspondiente a ese topic.

Cada topic puede contener un texto de introducción, que se muestra antes de que aparezcan las opciones sobre las que se puede hablar. Nuestra línea “Hola” sería una introducción válida, así que no tenemos que crear un topic específico para esto. Dentro de AGS un topic es lo mismo que un dialogo, las dos palabras significan lo mismo.

Ha llegado el momento de crear nuestro primer diálogo. Haz clic sobre el botón "Create new option" tres veces, y aparecerán tres nuevos campos vacios en la ventana. Si te fijas veras que también han aparecido nuevas líneas de código en el script de la derecha. Asegúrate de activar la casilla "Show" para las tres opciones. Esta función determina si las opciones serán visibles inicialmente al jugador o no.

El dialogo que estamos creando aún no tiene nombre, pero tenemos que darle uno para poder referirnos a el mas adelante. La convención usada en AGS es que los nombres de los diálogos comiencen por "d", así que voy a llamar a este dialogo "dMercader. Usa la rejilla de propiedades para asignar el nombre como ya hemos hecho en otras ocasiones.

Ahora rellena los tres campos con las opciones que hemos planificado al inicio del tutorial:

Hemos añadido tres opciones al dialogo-topic 0


Ya que estamos en el editor, vamos a crear también el siguiente grupo de opciones. Para ello haz clic derecho sobre “Dialogs” y selecciona “New Dialog”. Se creará un nuevo dialogo-topic con el nombre Dialog 1. Haz doble clic sobre el para editarlo y sigue los mismos pasos que antes para crear tres opciones de dialogo y rellénalas según el esquema inicial. En la rejilla de propiedades modifica el nombre de este dialogo de "dDialog1" a "dMercancias".

Ahora vuelve al primer dialogo usando la pestaña, y vamos a fijarnos en el script. Este no es el mismo tipo de script que hemos usado para los eventos como recoger la llave. Es un lenguaje de script solo para dialogo mucho mas simple.

Cada una de las líneas que comienzan por "@" es un entry point (punto de entrada). Estas líneas definen los diferentes lugares desde donde puede comenzar el script. El punto de entrada “@S” se usa la primera vez que inicias el script, este será el punto donde aparecerá nuestra primera línea “Hola”.

El scripting de diálogos es muy simple. Tiene la forma de:

SCRIPTNAME: "Text to say"

NOMBREDESCRIPT: “Texto que decir”

Así que inserta un par de líneas entre  "@S" y "@1", con el siguiente texto:

EGO: "¡Hola!"
MERCADER: "Hola ¿Qué tal?"
return

Recuerda, que estos nombres deben ser los nombres de script de cada personaje (pero sin escribir la "c" inicial). El comando "return" es esencial ya que le dice a AGS que deje de ejecutar el script en ese punto y que muestre las opciones de dialogo al jugador.

Los puntos de entrada numerados se ejecutaran una vez que el jugador haya seleccionado esa opción. Por ejemplo, si el jugador selecciona la opción “¿Quién eres?” se ejecutará el punto de entrada @1. 

Aquí tienes un script completo para este dialogo-topic:

Nuestro script de dialogo acabado


El comando goto-dialog lleva al jugador a otro dialogo, en este caso al dialogo que hemos creado y que hemos llamado  "dMercancias"(el que contiene preguntas sobre las mercancías).
El comando stop le dice a AGS que finalice la conversación y vuelva al juego (mientras que el comando return sirve para mostrar las opciones de dialogo).

Ya tenemos el primer dialogo… pero aún tenemos que crear el segundo. Selecciona el otro diálogo a través de su pestaña “Dialog: dMercancias”. Rellena el script como quieras. Puedes usar el comando goto-previous para llevar al jugador a la primera lista de opciones cuando ya haya terminado de preguntar sobre las mercancías.

Aquí tienes un ejemplo de un script complete para dMercancias:

Script de dialogo para dMercancias


Como veras, es muy similar al anterior. Fíjate bien en el uso de "return" en el primer punto de entrada, para asegurarnos de que no salta directamente al siguiente fragmento de script.

¡Ya casi hemos terminado! Solo nos queda añadir un el modo en que el jugador inicia la conversación.

Abre el editor de personajes para cMercader. Modifica su StartingRoom a room 1 (la misma que el jugador), y sitúalo en las coordenadas X:260, Y:130. No te preocupes porque podrás modificas esto más adelante si quieres.

Ahora ve a la Lista de Eventos. Usando lo que has aprendido a lo largo de este tutorial, añade un comando para que se inicie el dialogo cuando el jugador hable con el Mercader. Cuando lo hagas, ya tendrás todo listo.

Script para el evento de iniciar el dialogo


Prueba el juego, habla con el Mercader y prueba todas las opciones de la conversación.

Más detalles de las Conversaciones

Puede que te hayas fijado en las opciones "Show" y "Say" adyacentes a los campos añadidos en el editor de dialogo. Normalmente cuando el jugador selecciona una opción de dialogo el personaje dirá el texto de esa opción. Sin embargo, puede que no quieras que esto sea así. Si desactivas la casilla “Say”, el personaje no repetirá el texto de la opción sino que se dará por dicho y el otro personaje contestará.

La casilla “Show" determina cuando una opción esta disponible al jugador desde el inicio. Si desactivas esta casilla, esa opción no aparecerá para que sea seleccionada por el jugador en el dialogo. Puedes activarla con el comando option-on, o con el comando dDialogName.SetOptionState. Esto es muy útil para desvelarle información al jugador según va preguntando y no ofrecerlo todos los temas de conversación desde el principio del dialogo.

También existe un comando llamado option-off, para hacer que una opción deje de mostrarse una vez que el jugador ya haya obtenido toda la información necesaria sobre ella. Ve al manual para obtener más información sobre estos comandos.

Si solo hay una opción dentro del topic el juego la seleccionara por defecto. Puedes usar esto para hacer conversaciones del estilo de Sierra, ya que las opciones no se le mostraran al jugador si no que solo se mostrara una conversación fluida, como si se tratase de una animación.

Comentarios

Los comentarios de los visitantes son para ampliar la
información del artículo. Cualquiera puede participar.

Añadir un comentario al artículo Publicar un comentario del artículo

Se muestra un comentario revisado

 presentación con texto
10/9/12 

Comentario de Frank:

¿Y como hago para que en la primera pantalla (de presentación) aparezca un texto narrativo introductorio?


Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos
interesantes que se hayan enviado recientemente.


Se han encontrado 3 comentarios sin revisar




El autor
Rubén Lapuerta
Colaborador Desarrollo Multimedia
http://www.desarrollomultimedia.es
Manuales

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...