ambar-dev
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]