23 junio, 2006

Storytronics

Como ahora sale hasta en la sopa, le di un nuevo repaso a la tecnología de Interactive Storytelling del siempre pintoresco Chris Crawford, llamada Storytronics.

Es dificil hacer un juicio del resultado que se puede obtener, ya que hay muchos detalles que no están explorados lo suficiente en el sitio web, y además depende muchísimo de la capacidad del storybuilder (constructor de historias). Desde el punto de vista de usabilidad, parecen haber puesto mucho enfasis en hacerlo accesible a gente no técnica. Veremos que tal resulta. Lo primero es describir un poco la tecnología, pero empezando por explicar lo que Crawford entiende por Interactive Storytelling.

Lo importante en una historia interactiva para Crawford, no son los gráficos o la presentación, ni construir una simulación realista y coherente de la realidad. En Storytronics, los escenarios son simples fotografías, los personajes se mueven instantáneamente de un escenario a otro, y están representados únicamente por una cara que indica emociones. La parte interesante está en interactuar con los personajes, que son autónomos y reaccionan tanto a lo que el jugador hace, como a lo que hacen otros personajes. El trabajo del storybuilder consiste en construir la madeja de posibles interacciones que pueden ocurrir en el mundo (no los llaman juegos sino storyworlds) asegurando la coherencia y el interés dramático.

El corazón del sistema es lo que llaman Verbos. Cada verbo representa una acción que cualquier personaje puede decidir ejecutar. El storybuilder tiene que definir uno a uno todos los verbos que pueden suceder en el storyworld, especificando:

  • Los personajes que se ven afectados por la acción. Es lo que llaman Roles. Por ejemplo, si un personaje le da un puñetazo a otro, típicamente habrá dos roles, el que sacude y el que recibe, aunque puede haber más si es necesario, como la novia del que recibe (caso de tenerla) o un policía que observa lo sucedido.
  • El efecto que produce la acción. Depende, lógicamente del rol. Viene definido en términos físicos y emocionales. Puede producir un cambio de escenario o el cambio en un atributo (un personaje está muerto tras recibir la acción matar), o un cambio en el modelo emocional de cualquiera de los participantes. Así, el que recibe el puñetazo pensará que el que se lo dio no es una buena persona.
  • Los posibles verbos a los que los participantes podrán optar tras la acción. Es aquí donde se hila la trama, donde se monta una red de verbos que define las posibles situaciones que se pueden producir. Típicamente los personajes tendrán varias opciones para elegir tras cada verbo, y lo harán en función de su personalidad y estado emocional.


Para llevar a cabo la edición de estos verbos Storytronics propone un sistema de script editado visualmente. Decidir si un personaje tiene que adoptar un rol en una acción, actualizar el mundo o las emociones de los personajes, y evaluar las opciones disponibles, todo se define mediante scripts. El lenguaje es funcional: se edita anidando llamadas a funciones que retornan un valor sin modificar nada internamente (sin efectos laterales). Por ejemplo, podríamos especificar que un personaje puede adoptar un rol si "es un hombre y la acción fue ejecutada sobre el". En la imagen se puede ver el aspecto que tendría el script.

Los mecanismos de decisión se basan en un sencillo sistema de pesos (también llamado de puntuación). Mediante unas simples fórmulas matemáticas se evalúan unos números para cada una de las opciones disponibles, y luego se elige el número mayor. En mi opinión, la edición de estas fórmulas mediante el lenguaje de script funcional es algo engorroso: una sencilla fórmula puede tener un aspecto muy complejo. Las matemáticas también se usan para actualizar los valores del modelo de emociones de los personajes, tras un verbo.

El modelo emocional está explicado muy por encima en los tutoriales, así que haré una descripción un tanto superficial. Todos los personajes, salvo el jugador, tienen características de personalidad (traits) que usan para decidir qué opción elegir tras la ejecución de un verbo. Hay tres "dimensiones" en el modelo: las características que uno tiene, las que uno cree que otro tiene, y las que uno cree que otro piensa que un tercero tiene. Fijaos en la complejidad de relaciones y malentendidos que se pueden conseguir con este modelo, junto con el sistema de "cotilleo" (los personajes se cuentan unos a otros lo que han ido viendo en la historia, o lo que les han contado). La lista actual de rasgos es la siguiente:

  • Honestidad
  • Bondad
  • Autoridad
  • Inteligencia
  • Atractivo

Esta es la lista inicial, que parece puede ser ampliada si el storyworld lo requiere. Además de estos rasgos de personalidad, también hay características físicas, que llaman atributos: Fuerza, Altura, Agilidad, Salud, Riqueza, Edad, Energía, Sensualidad, etc. Tanto los valores de personalidad como físicos vienen definidos por un número entre -1.0 y 1.0.

Un aspecto interesante del sistema es que, para comunicarse, tanto el jugador como los demás personajes usan un lenguaje inventado llamado Deikto. Es una especie de subconjunto del inglés, representado gráficamente mediante palabras conectadas, generado proceduralmente a partir de los verbos disponibles en la historia. El uso del mismo lenguaje (aunque sea sencillo) por parte del jugador puede ayudar mucho a acostumbrarse rápidamente y quedar inmerso en la historia. Además, sirve para limitar lo que el jugador puede hacer o decir en cada momento, manteniéndole dentro de los límites del storyworld (con lenguaje natural sería más difícil forzar esta limitación). De momento no he podido encontrar mucha más información acerca de Deikto, así que habrá que esperar para emitir un juicio final.

El último elemento que queda por mencionar son los props, objetos que se pueden usar o requerir para ejecutar un verbo. Al igual que los personajes, cuentan con una serie de atributos que ayudan a definir mejor su efectividad u otras posibles consecuencias.

Como punto de vista personal, diría que el sistema funciona aparentemente como una máquina de estados extendida (o una red de petri), que los personajes comparten. El jugador y cada personaje parten de un estado y se van moviendo por la red provocando que los otros personajes también lo hagan. Los estados son los verbos, y es necesario definir las consecuencias de alcanzar dicho estado y las posibles transiciones (ojo, tanto para el sujeto, que ejecuta la acción, como para otros personajes implicados). La red de estados, que típicamente deberá ser jerárquica para mantener un nivel de complejidad accesible, es la columna vertebral de la historia. Es algo más potente que el clásico libro de "Elige tu propia aventura" porque todos los personajes pueden utilizar la red, no sólo el jugador (y además el ordenador es capaz de procesar redes más grandes con facilidad).
El principal inconveniente del sistema es que, inevitablemente, todo el trabajo de definición de todos los posibles acontecimientos del storyworld recae sobre el storybuilder, y su única herramienta es un sencillo lenguaje de script. Para cada acontecimiento hay que definir, a mano, todas las posibles acciones que pueden ir a continuación, y priorizarlas. En una historia moderadamente compleja hablamos de cientos o miles de verbos. Además, aunque viniendo de un programador esto no sorprenderá a nadie, yo preferiría ampliamente un editor de texto, con más potencia y flexibilidad, que el limitado y "supuestamente sencillo" editor actual. Prefiero escribir "0.5+Autoridad(Actor)/2" que una larga lista de operaciones anidadas.

Al final, la tecnología demostrará su utilidad o falta de ella una vez empecemos a ver ejemplos concretos de su uso. De acuerdo con los planes del equipo de Crawford, esto empezará a suceder a finales de este año o principios del que viene. Espero con ansia.


Mostrar/ocultar resto...

4 Comments:

At 27/6/06 00:03, Blogger Saül said...

Vaya, yo también empezé a escribir un artículo sobre storytronic. Llegué tarde. :)

Quien quiera más información que se pase por el site oficial de storytronic.

El principal inconveniente del sistema es que, inevitablemente, todo el trabajo de definición de todos los posibles acontecimientos del storyworld recae sobre el storybuilder, y su única herramienta es un sencillo lenguaje de script. Para cada acontecimiento hay que definir, a mano, todas las posibles acciones que pueden ir a continuación, y priorizarlas. En una historia moderadamente compleja hablamos de cientos o miles de verbos. Es decir que, al final, tenemos el mismo problema que ya nos encontrábamos previamente con las historias generadas de forma emergente... mantener el interés y controlarlas es lo “caro”.

En Novarama tanteamos en un principio la posibilidad de darle una estructura similar a la historia de "Wild Summer!" pero lo descartamos por su alta complejidad y la enorme cantidad de variantes que debíamos generar. Además, las sesiones jugables al utilizar un sistema de este estilo son más cortas, con lo que en vez de ofrecer una sola experiencia de 40h podíamos ofrecer 20 sesiones de aproximadamente 2h. Eso no cuadra con la idea de juego que tenemos en mente en la que la progresión del personaje principal y sus relaciones con otros personajes es algo escalonado que requiere bastantas horas de juego.

Tras esa primera "pajilla", apostamos por un sistema más controlable y menos costoso que vendría a ser un "Elige tu propia Aventura v.2.0". El guión lo construíamos a partir de X NODOS interrelacionados entre sí en forma de grafo de este estilo: ver gráfica.

En cada nodo, en vez de permitir al jugador elegir en ese momento qué dirección seguir, evaluávamos su estado y su relación con los NPCs "claves" para asignarle una nueva porción de “trama”. Orientábamos así la historia dependiendo de las decisiones que había tomado el jugador durante la partida.

Este método también ofrecía rejugabilidad a nuestra experiencia, como el primero descrito, pero dado que el recorte en horas continuas era menor, nos era una opción más “sexy”. De todas formas, al final optamos por darle muchísima más importancia a la progresión del personaje y por ello decidimos ofrecer una última estructura narrativa más “chapada a la antigua” que nos permitiera ofrecer una sola experiencia de 40h pero con ligeros toques “originales” para mantener la sensación de libertad durante todo momento.

Lo que hemos hecho es ofrecer una estructura mixta dividida en escenas en la que ofrecemos dos tipos de trama: la lineal y la paralela.

En las escenas con “trama lineal” seguimos la estructura clásica en la que se nos encomiendan 1 o X misiones a realizar de forma continua con el fin de avanzar en la historia.

En las escenas con “tramas paralelas” ofrecemos al usuario varias sub-tramas, cada una compuesta de 1 o X misiones, que el jugador puede elegir en qué orden completar siendo incluso capaz de dejar una a medias para empezar otra. De todas formas, le forzamos a superarlas todas, o casi todas, para poder avanzar a la siguiente “trama”.

Ver gráfica.

Esto crea una sensación de libertad en el 60% del juego (escenas con tramas paralelas) mientras que las escenas de trama lineal confirman al jugador que está avanzando en el sentido correcto.

Para enfatizar la “sensación de libertad”, a lo anteriormente descrito le añadimos una resolución de misiones no lineal, puesto que muchas de ellas se nutren de los recursos que ofrecemos al jugador durante toda la experiencia de juego y que son fruto, en su mayoría, de la jugabilidad emergente que ofrece nuestra experiencia.

Vamos, que al final nos ha salido un “chimichurri” de estructura pero que creo que puede funcionar bien, al menos para el tipo de juego que pretendemos ofrecer.

En un futuro artículo profundizaré más en los diferentes métodos a los que optamos y extenderé la explicación del último método que elegimos, y hablaré también de sus “más y sus menos”.

Recomiendo estas conferencias para entrar más en el tema de narrativa interactiva desde un punto de vista teórico:
Constraining Interaction to Create Emergent Narrative
Mini-games, maxi-storytelling: looking at minigames as a narrative genre

 
At 27/6/06 03:40, Blogger sgarces said...

Muy interesante la discusion sobre los enfoques sobre como estructurar la historia. El que habeis elegido (que he oido llamar de hub o de choke point) me ha recordado a los juegos de Bioware, y a la presentación que dieron en la GDC del 2005 (que Dani recordará porque escribió la postcard para Gamasutra).

Supongo que la necesidad de mantener la progresión del personaje y un tiempo de juego alto sin explotar el coste de producción os limita a la hora de hacer una historia más interactiva, aunque con este enfoque creo que manteneis la historia como directora de la experiencia, y una cierta sensación de libertad. Desde luego, yo no buscaría de momento la respuesta en Storytronics, ya que la tecnología está muy poco madura, especialmente en un entorno simulado real, como el de los juegos de ahora.

Sería un interesante ejercicio ver si alguno de los enfoques que usan un drama manager serviría para controlar el ritmo y el camino de la historia de manera algo más flexible (más procedural) que los enfoques más tradicionales.

Otra cosa que me intriga es el uso del espacio. Crawford parece dejar en segundo plano el escenario, condenandolo a un triste fondo que no aporta nada a la historia. Sin embargo, los juegos de ahora son esencialmente mundos 3D. El espacio lo es todo. Recuerdo que una de las criticas del primer Baldur's Gate es que estaba "demasiado vacío", que había que viajar mucho para avanzar la historia, y muchas zonas no tenían casi nada de interés. Aprendieron y mejoraron mucho en juegos posteriores, además aportando a la inmersión que produce vivir diferentes historias en un mismo escenario. Mezclar bien no-linealidad con el uso inteligente del espacio creo que es una de las claves para conseguir una buena experiencia de juego.

Por cierto, gracias por los links. Tienen buena pinta, les echaré un ojo.

 
At 27/6/06 09:40, Blogger Saül said...

Pues no recordaba el artículo de Dani, aunque sí que lo había leído. Al diseñar el sistema de estructuración de la historia nos lo planteamos desde cero, sin ningún tipo de estructura preestablecida en mente aunque, como pasa siempre, ya no se puede inventar nada :) Hemos reinventado la rueda... Tiene hasta nombre y todo... está bien saberlo. Lo añadiré a la documentación oficial de nuestro juego :) Gracias sgarces.

Tienes razón sobre el storytelling a través de los escenarios. Siempre se acostumbra a dejar bastante de lado y es una herramienta realmente potente. Tan solo hay que ver juegos como Shadow of the Colossus o ICO para darse cuenta del potencial que tienen. De hecho, en estos prácticamente toda la historia se transmite a través de los escenarios, y creo que es una de las claves de lo "especiales" que són.

Es un interesante tema de conversación, a ver si creamos un debate sobre ello en breve.

Para ir abriendo boca, he recuperado un par de artículos de Gamasutra que leí hace tiempo:
Environmental Storytelling: Creating Immersive 3D Worlds Using Lessons Learned from the Theme Park Industry
Environmental Storytelling, Part II: Bringing Theme Park Environment Design Techniques to the Virtual World

 
At 27/6/06 20:34, Anonymous Jare said...

En el Blog del Clint Hocking tambien hubo una charla la mar de animada sobre el tema del interactive storytelling: http://clicknothing.typepad.com/click_nothing/2006/05/a_fearsome_four.html#comments Perdón por añadir más links. :)

Es curioso que en el SotC, siempre me ha parecido que la "intro" es demasiado verbosa y que la mayor parte de lo que cuenta resultaría todavía más efectiva si la dejasen a la imaginación del jugador y a lo sugestivo del entorno. Imaginate, empieza el juego sin palabras, y directamente ves a un niño llevando el cuerpo de una chica a un antiguo templo, lo deposita en el altar... y tal vez con un diseño un poco diferente de las estatuas de los colosos, que sugieran su control sobre un gran poder durmiente en ese templo sería suficiente. O incluso con el niño viendo por el camino unos grabados en la piedra mostrando imágenes de la presencia de colosos y del uso de la espada, podría resultar todavía más sutil y cálido.

Por otro lado, tal vez demasiadas sutilezas harían el juego aún más difícil de aceptar por parte del jugador medio. No nos olvidemos que hacemos juegos para que la gente los juegue, y hay un límite entre el arte y la imaginación como medio y como fin en sí mismos. :)

 

Publicar un comentario en la entrada

Links to this post:

Crear un enlace

<< Home