[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mine-dev] Scripts: secuencias de sucesos
From: |
turingtest |
Subject: |
[Mine-dev] Scripts: secuencias de sucesos |
Date: |
Sun, 18 May 2003 22:34:16 +0100 |
He empezado a revisar el código de los sucesos para ver cuánto puedo utilizar
para las conversaciones.
Veo un par de problemas, habría que pensar bien cómo resolverlos antes de
programar una versión definitiva. En el wiki ListaDeSucesos he añadido los
sucesos para Conversación, aunque no termina de convencerme el formato.
1- Guiones
Lo primero es que activar un "item" de texto (el contenido de un tema) en
realidad no es un suceso aislado, sino una secuencia de sucesos. Es decir: un
script.
<guion>
<suceso 1 />
<suceso 2 />
...
</guion>
He pensado a partir de ahora llamar "guiones" a los items de texto de la
conversación. Habría que sustituir el tag <item> por <guion> dentro de los
temas, y crear una clase Guion.py que represente una secuencia temporizada de
sucesos. Esta clase se inicializa a partir de un nodo <guion> y cuando se
active irá llamando a los sucesos uno tras otro, con una pausa de retardo entre
ellos. Las conversaciones ya funcionan así. Haciéndolo con una clase separada,
podríamos incluir un script en cualquier lugar en el que pueda aparecer un
suceso.
Por cierto, esta podría ser la respuesta a la duda sobre sucesos temporizados,
¿no? El momento de evaluar los requisitos sería en el instante en que el guión
ejecute ese suceso concreto.
2- Información adicional
Una conversación es bastante más compleja que un objeto o una sala (es casi
tanto como un área), y necesita mucha información además de la descripción del
texto que dice cada personaje. Dentro de un tema puede haber:
- items/guiones: secuencias de sucesos. Un guion puede tener:
- requisitos de guión (el guión completo no se activa si fallan).
- enlaces: conectan el guión actual con otros temas relacionados.
- sucesos de texto (hablar, actuar, entorno). Las macros pueden aparecer
dentro del texto, no sólo en los atributos.
- otros sucesos (de contexto: registrar "hitos" de diálogo; de sala,
personaje y objeto)
- contextos: indican en qué orden hay que activar los guiones (primero el que
está en el mismo contexto que el guión anterior).
El problema es que esta información está toda entremezclada para ahorrar
escritura y facilitar el mantenimiento. En particular los enlaces sirven para
crear sinónimos a partir de fragmentos del texto:
<tema>
<guion>
<contexto>cortesia</contexto>
<contexto>default</contexto>
<respuesta>
Recibe la bienvenida de esta anciana profesora, mi joven aprendiz.
¿Estás preparad($oa) para comenzar tu instrucción sobre
<enlace tema="supervivencia">habilidades de supervivencia</enlace>
en el mundo de la <enlace tema="mundo">Tierra Media</enlace>?
</respuesta>
<entorno>($pj) asiente con admiración y respeto</entorno>
</guion>
</tema>
Esto sería equivalente a esta otra estructura, más limpia pero con más
redundancia y bastante menos compacta. ¿Cuál de los dos sería el mejor formato
para almacenar las conversaciones?
<tema>
<item>
<contexto>cortesia</contexto>
<contexto>default</contexto>
<enlace tema="supervivencia" sinonimo="habilidades de supervivencia" />
<enlace tema="mundo" sinonimo="Tierra Media" />
<guion>
<accion tipo="hablar" personaje="$pnj" mensaje="Recibe la bienvenida
de esta anciana profesora, mi joven aprendiz. ¿Estás preparad($oa)
para comenzar tu instrucción sobre habilidades de supervivencia en el
mundo de la Tierra Media?" />
<accion tipo="actuar" personaje="$pj" texto="asiente con admiración y
respeto" />
</guion>
</item>
</tema>
Además los enlaces y contextos sólo tienen sentido dentro de guiones de
conversación, pero no tendrían sentido si permitimos usar guiones en otras
partes (objetos, salas).
Aun así yo preferiría que los enlaces estén dentro del texto del mensaje, no
separados en otra parte del árbol. Lo malo es que entonces las <preguntas> y
<respuestas> no son lo mismo que sucesos <accion> y no se puede reutilizar el
código de unos para los otros.
¿Cómo lo veis?
--
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup
- [Mine-dev] Scripts: secuencias de sucesos,
turingtest <=