RSS

Sistemas de desarrollo (I) – Y el verbo se hizo acción…

25 Jul

Se podría decir que la búsqueda de la herramienta soñada para el desarrollo de conversacionales ha sido el Santo Grial de todos aquellos que se han planteado crear una de estas obras o juegos en algún momento de sus vidas. También me atrevería a decir que el número de autores «latentes» ha sido mucho mayor que el de aquellos han logrado publicar una conversacional. Y añadiría que de todos esos intentos, una gran mayoría fracasaron porque el autor no se adaptó a ninguno de los sistemas de desarrollo que tenía a su disposición.

¿Cómo se «cuenta»  una conversacional?
Cuando lo analizo me doy cuenta de que una historia es una serie de sucesos y acciones que tienen lugar desde el inicio de la misma hasta su desenlace, luego para contarla necesito expresar una serie de acciones que permitan cambiar el estado de las cosas constantemente. Y si pongo un poco más de atención me doy cuenta cuenta de que todos estos sucesos y acciones se expresan en múltiples lenguajes sin menoscabo de su resultado.

Pongamos por ejemplo el cuento de Aladino.
Aladino encuentra una lámpara y al frotarla libera al genio que se hallaba en su interior. Este cuento es universal y está escrito en multitud de idiomas, pero si pidiera que se escenificara esa escena en todos ellos, vería que el resultado es el mismo.
Aladino frotaría la lámpara y de ella surgiría una columna de humo tras la que aparecería un genio agradecido.
Así pues la escena sería el resultado de un decorado, dos personaje, un objeto y el verbo «frotar» que provocarían el suceso «aparición del genio».

Eso me deja claro que una imagen vale más que mil palabras, pero en una obra conversacional las imágenes no son parte relevante de la historia, la escena sería el resultado de una serie de descripciones y de una serie de acciones tecleados por el lector.
Eso sí, las acciones serían las misma en inglés, en francés, en español o en chino, lo único que cambiaría sería el modo de expresarlas.

> examinar lámpara
La lámpara está algo deslucida por el paso del tiempo, necesitaría algo de brillo para lucir en todo su esplendor.

>Frotar lámpara
Con la manga de tu camisa intentas quitar algo del polvo acumulado en la lámpara. Al hacerlo una columna de humo sale del interior de ella y un ser de aspecto ceremonioso aparece ante tus ojos.

¿Que es lo que ha provocado esa aparición?
¿El verbo «frotar»? ¿Y si en vez de «frotar» hubiéramos puesto «limpiar» o «pulir» o «restregar»?
Si la conversacional está bien programada el resultado debería haber sido el mismo porque lo que importa es la acción en sí, no el verbo utilizado y lo que queremos lograr es que la lámpara brille.
Tal vez en una aventura perfecta se podría haber conseguido lo mismo también con «rub», o «frotterr» o «翻譯», pero eso ya excede mis expectativas.
Lo que tengo bien claro es que los sucesos en las conversacionales responden a una acción y no a un verbo en particular, luego lo que verdaderamente importa son las acciones y su múltiples formas de expresarlas.

En un comentario de mi anterior artículo, explicaba cómo cambian las acciones según se aplica un mismo verbo a diferentes objetos.

“Subir al bus” realmente quiere decir, “Entrar al bus”.
“Subir el libro al estante de arriba,” quiere decir “Poner el libro en el estante de arriba”.
“Subir por/a la escalera” quiere decir “Ir arriba”.
“Subir la escalera encima/a/ la mesa” quiere decir “Poner la escalera en la mesa”.
“Subir la persiana” quiere decir “Abrir la persiana”.
El bus no se abre con el verbo subir, y al subir el libro no vas a la planta de arriba, son un mismo verbo que aplicado a diferentes objetos provoca acciones diferentes.

No es lo mismo «subir la palanca» que «subir por la escalera» que «subir la escalera encima de la mesa», que «subir el volumen de la radio».
En el primer caso lo que cambia de estado es la palanca, en el segundo quien cambia de estado es el protagonista, en el tercer caso es la escalera la que cambia de estado; en el cuarto lo que cambia  es el sonido ambiente de la localidad, algo menos objetivo pero que no deja de ser un suceso o evento dentro de la historia.

Así pues entiendo que toda acción que tiene éxito dentro de una conversacional, provoca como mínimo un cambio de estado en una «entidad» de la misma, sea un ser, una cosa o un suceso.
Pues bien, a partir de ahora llamaré a todo aquello que se puede ver afectado por una de estas acciones, «objeto«,  y esto me servirá para hermanar las expresiones usadas en el desarrollo de una conversacional con las típicas usadas en programación. Un objeto es una porción de código que en cierto modo es independiente del resto del programa. Aladino es un objeto, la lámpara es un objeto, el genio es un objeto, la escalera, la palanca, el sonido, la radio, el calor… todo son objetos y cada uno de ellos utiliza su propia gestión del «input», sean verbos o frases verbales.

De este modo diría, que una conversacional está compuesta por una serie de objetos que responden a una serie de acciones que se pueden expresar de diferentes maneras o con diferentes lenguajes, sin cambiar por ello los resultados.
Cualquier herramienta que no tenga esta estructura básica, se aleja de mi  propia filosofía como autora de conversacionales.

En este aspecto, AGE se acerca mucho a mi ideal de lo que debería ser un sistema de desarrollo, ya que es el único que de principio obvia todo «input» que no sea claramente una acción o un objeto ya definido. En una palabra, todo aquello que no es significativo para el desenlace o el entorno de la historia.

Bien, algunas herramientas que he manejado marcan una clara diferencia entre «acción» y «verbo«, el problema es que no todas lo hacen entre  «historia» y «objeto«. Esto hace bastante complejo la creación de un «mundo» base, en el que exista código reutilizable por el resto de la comunidad, algo que facilitaría la programación para aquellos que sólo quieren centrarse en la historia y no en la creación del mundo y sus reglas.

 
2 comentarios

Publicado por en julio 25, 2012 en diseño y desarrollo, programación, software

 

Etiquetas: , ,

2 Respuestas a “Sistemas de desarrollo (I) – Y el verbo se hizo acción…

  1. johanpaz

    julio 25, 2012 at 2:34 pm

    Pero Jenesis lo que tu pides es que la interpretación de las acciones sea dependiente de las características del objeto, no necesariamente que el tratamiento se haga EN el objeto (y mucho menos en la instancia concreta). Es decir, todos los ejemplos que dices se pueden hacer en I7, sin ninguna dificultad (por poner un ejemplo de sistema de autoría con gramática fuera de los objetos), por ejemplo esto es código perfectamente compilable y ejecutable en I7:

    Understand «sube a [supporter]» as climbing.
    Understand «sube a [vehicle]» as entering.
    Understand «sube a [magic vehicle]» as teleporting.

    Definition: a vehicle is magic if no door is part of it.

    Es decir, no sólo puedo crear gramáticas especiales para clases dadas como vehículo o soporte, sino que puedo crear cualquier adjetivo de naturaleza arbitraria y usarlo en la gramática para restringirla tanto como quieras.

    Lo que no puedes hacer, creo, es una gramática ligada exactamente a un determinado objeto, ¿pero para qué sirve eso?

    En el otro post me decías que el que ‘subir’ estuviese ligado al objeto era útil para poder llevarse esa gramática de una obra a otra, pero si es bastante claro que no quieres llevarte la ‘instancia’ concreta de autobús (es decir, ese autobús concreto que es de la línea 123, es de color rojo fuego y tiene dos asientos desvencijados) de una obra a otra sino la ‘clase’ autobuses…

    La clase (o el prototipo si prefieres) es algo lo suficientemente general para que pueda tener sentido de una obra a otra, mientras que las instancias no van a sobrevivir por lo general (sería bastante infrecuente que el autobús de la línea 123, rojo y con dos asientos desvencijados aparezca en muchas obras que no sean parte de una misma saga o similar).

     
    • linuxica

      julio 25, 2012 at 3:48 pm

      Es que tenemos ideas diferentes de lo que es un objeto multiuso.
      Si yo creo un autobús para compartir con otros programadores, será un objeto con ciertas características comunes a cualquier autobús. Tendrá como mínimo un volante, unos asientos en los que te podrás sentar si están vacíos, un pasillo central, ventanillas, puertas que se abrirán y se cerrarán solas, sonará a motor, olerá a algo, tendrá techo, y una barra para sujetarse, se podrá ver lo que hay fuera y lo que hay dentro, pero nada de eso tendrá descripción, la descripción se la tendrá que poner el autor de turno. También tendrá en blanco el destino del viaje o de cada parada, pero el código para que todo eso funcione correctamente estará ahí y el autor no se tendrá que preocupar de más.
      Del mismo modo se pueden crear otros objetos habituales, un fregadero parece un objeto simple hasta que al usuario le da por abrir el grifo… ¿No sería útil un objeto con todo eso ya hecho, al que sólo le falte algunas descripciones para que pase de ser un fregaderode una casa vieja, a ser el lavabo de una mansión de lujo ?
      Se trata de aportar la mayor credibilidad a un entorno con el mínimo esfuerzo, aunque para ello alguien se lo tenga que currar de principio, claro.

       

Deja un comentario