Planeta Aventurero

Distribuir contenido
Planeta aventurero de CAAD (en pruebas)
Actualizado: hace 4 horas 4 mins

Nuevas versiones de Tuuli y N贸madas, "Canciones de la tormenta, el desierto y el mar".

Hace 4 horas 4 mins

Baltasar el Arquero, Ruber Eaglenest y Daurmith han actualizado dos de los juegos participantes en la jam "del mar".

Nómadas, la historia del nuevo mundo inspirada por la canción homónima de Franco Battiato creada por Baltasar va por la versión 2 que incluye numerosas mejoras.

https://baltasarq.github.io/Nomadas/

Tuuli, el ritual interactivo de Daurmith y Ruber ha visto surgir su versión 3, realizada a la par que la traducción que van a presentar para la IF Comp 2017.

https://rubereaglenest.itch.io/tuuli

Categor铆as: Planeta

C贸mo hago una baya tontita...

Hace 4 horas 4 mins
No creo que desvele nada si cuento que desde hace unos cuantos meses ando haciendo bayas tontas
La cosa comenzó con mi participación en el encuentro organizado por librojuegos.org el año pasado en Madrid. Tenía bastante interés en charlar con varias personas que no fueron al encuentro, así que quedamos más tarde en tomar unas cervezas y la tarde/noche se tornó un poco loca. 
Finalmente nos retamos a hacer cada mes una obrilla experimental de ficción interactiva que fuese 'modernilla', lo más innovadora que pudiésemos cada uno pero sin pasarnos con el esfuerzo invertido, esfuerzo que fijamos en no más de unas pocas tardes. Me temo que en lo de limitarnos en el esfuerzo invertido hemos fracasado bastante, porque sé de primera mano que algunas obras, tienen muchas horas de esfuerzo detrás; pero aún así no dejan de ser obrillas experimentales que juegan más a buscar un concepto interesante que un acabado depurado e impactante.
Y estoy muy contento con ellas. Realmente han aparecido cosas muy diferentes y bastante interesantes frente a lo que solemos hacer en esto de la ficción interactiva. Y eso está muy bien, porque cada cosa nueva que se hace provoca que a alguien se le ocurra algo nuevo adicional y así en una espiral de novedad abrimos el campo de esto que amamos... y en el caso de los participantes de las sillyberrys (se participa por invitación pero tampoco es que nos pongamos exquisitos, así que si estáis interesados preguntadnos), nos estamos picando y mucho con estas mini-creaciones.
¿Y cómo las hago?
Bueno, para empezar las sillyberrys tienen dos restricciones. La primera es un texto que tomamos de un libro de microcuentos al azar y sobre el que debemos inspirarnos -debe tener algo que ver, o tener palabras relacionadas, etc...- y como si eso no fuese lo bastante complicado sorteamos un orden de asignación de putadillas y cada uno de nosotros pone una restricción adicional a otro de los autores. Estas restricciones las podéis ver en la web junto a la obra, como por ejemplo:Restricciones:"...Debimos tener algo tan grande, para que seas tan importante...", "Sobre Fútbol"Lo primero que necesitas es una idea que tenga 'garra'. En esto las restricciones ayudan mucho, porque te dejan a veces tan maniatado que la propia desesperación te lleva a una idea extraña e interesante. Sí, sí, eso funciona, y curiosamente muy bien.
Con la idea en la mano normalmente tienes que ver si eso funciona, si realmente tiene garra o no. Normalmente escribo un texto de prueba, o monto un pequeño prototipo. Si no funciona, lo deshecho y vuelvo a probar.
Y, finalmente, llegada la implementación, yo siempre uso Squiffy, porque me resulta bastante sencillo organizar el flujo de la obra con él y complementarlo con código Javascript. A veces el resultado es bastante aberrante para un Squiffy, por ejemplo, esta obra tiene este código. Pero eso es bueno, significa que nos estamos esforzando en retorcer las herramientas de creación hasta sus límites. Pero se han usado otras herramientas como Ink o el más habitual Twine.
Si queréis intentar crear alguna obra parecida siempre podéis coger un reto al azar de algunas de las obras de la web e intentar escribir vuestra propia mini-creación. Y si queréis intentarlo con Squiffy os recuerdo que tenéis disponible este breve tutorial.

Categor铆as: Planeta

Nueva adaptaci贸n de Caperucita Roja, por Juli谩n Ochando.

Hace 4 horas 4 mins

Nueva adaptación interactiva al clásico cuento de Caperucita y el Lobo.

http://www.caad.es/fichas/caperucita-roja.html

El juego está realizado con javascript, así que necesitarás arrastrar el archivo index.html hasta tu navegador favorito para disfrutarla.

Categor铆as: Planeta

Ergot de Lima, versi贸n 1, ya disponible

Hace 4 horas 4 mins

Nuevo juego traducido por Ruber Eaglenest (Urbatain).

Ergot de Lima. Por Caleb Wilson.

http://www.caad.es/fichas/ergot-de-lima.html

Se trata de un juego de horror tropical, psicodélico y telescópico.

La premisa es que no se necesita moverse para conseguir las ansiadas limas, sino que el jugador explora el paisaje examinando cada vez a más profundidad. ¿Elipsis o alucinación?

Además es un juego notable en cuanto es un ejemplo de uso del parser reducido. El juego se puede terminar básicamente usando Examinar y Coger Lima.

Categor铆as: Planeta

Jam del Mar (II)

Hace 4 horas 4 mins
Las pocas respuestas que han llegado reclaman simulación, vamos una tradicional aventura tradicional con un contexto de simulación y mucha ambientación emergente (a provecho para incluir esa entrada de la wiki del caad, que he visto demasiadas veces confundir 'ambientacion' con efectos multimedia o similares).
¡Qué rollo!
Me parece que el apego por el antiguo paradigma por estos lares es excesivo. Sobre todo ahora que he visto lo que se puede hacer desde el otro lado de forma más extensiva con las participaciones de la Comp y sobre todo con las maravillas que he llegado a ver en los Sillyberries.
Pero he decidido en esta ocasión dejarme llevar totalmente por las fuerzas del caos más completo, así que como lo más mencionado ha sido la simulación y rollo aventura pues eso vamos a hacer.
Reabriendo el Inform 7 y veremos que sale en un mes.
Además para seguir con el caos he hecho una búsqueda de puertos abandonados o no a ver si alguno me sugería algo. El primero que me gustó tenía palafitos y un hechicero:

La verdad, es que me parecía enormemente inspiradora, pero no tiene mucho de mar, así que seguí buscando, pero algo usaré de esta imagen. Luego encontré un montón de imágenes de fantasía de ciudades enormes en ruinas junto al mar, incluyendo algunas con colosos que me parecieron muy interesantes... pero eso sería una locura siquiera pensar en sacar algo con eso en un mes.
Finalmente creo que me quedaré con esta como fuente de inspiración:

Así que parece que va a haber un torreón solitario en una cala oculta al mar.

Categor铆as: Planeta

Jam del Mar (I)

Hace 4 horas 4 mins

Ha empezado ya la jam convocada por Rubén en:

https://itch.io/jam/canciones-del-desierto-la-tormenta-y-el-mar

Yo le dije que iba a participar así que ahora estoy obligado.

:D

Además ya declaré mi canción que será:

Siendo la letra http://varttina.com/discography/ilmatar/meri/:

Näitä miettii mieleniVesi venettä viepituuli purjein puhuvi
Näitä miettii mielenimieltäni meri ajavivaahtopäinä vesi vellovi
Mistä merta kiittäisinMeri monta miestä niellytmonta lasta on lainannut
En rantoja rakastaMeri vienyt on isäniaaltoihin ainoan veljeni
Mitä meressä aaltojaAallot aatoksia isänivesi verta mun veljeni
Miksei minua vienytTätä lasta ei lainannutalle aaltoin ajanut
En käy merta kiittämäänEnkä rantoja rakastaNäitä rantoja en rakasta
Que me parece un bello canto rúnico adecuado para la jam.

Y ahora... ¿qué hago? ¿un hiperrelato poético con squiffy? ¿una simulación tétrica de un universo minúsculo de un mar, un puerto y un pueblo abandonado?

Categor铆as: Planeta

Tengo esto muy abandonado

Hace 4 horas 4 mins

No sé porqué tengo un año vago.

Eso ha hecho que esto esté muy abandonado.

También ha hecho que los mismos Sillyberries estén muy parados aunque espero que pasado mañana haya una mía nueva aunque sea pequeña y simplona.

Pero salgo de mi letargo para mencionar esta jam, en la que espero que no me pueda la pereza:


Ya estamos a mitad de año, así que a ver si me quito el letargo y de paso me acompañáis y llenamos lo que queda de año de obras fascinantes.

Categor铆as: Planeta

Ficci贸n interactiva para Android

Hace 4 horas 4 mins

¡Ahora es posible jugar a tus aventuras favoritas en tu móvil! ;-)

He portado las aventuras Asesino, Visitantes, Error de Copia y Cacahuetes, sal y aceite a Android, y podéis encontrarlas en Google Play.

  • Asesino es una ficción interactiva del tipo de escoger opciones, que fue creada con Undum. Te introduces en la piel de un hombre normal que se ve abocado a la venganza.
  • Visitantes es una ficción interactiva del tipo de escoger opciones, que fue creada con fi.js. En esta historia, eres el comandante de una nave espacial de búsqueda, porque los alkranos necesitan un planeta... como la Tierra. Esta aventura fue portada a fi.js desde I6Sp.
  • Error de copia es una ficción interactiva del tipo conversacional, que fue creada con I6Sp. En este relato, eres el capitán de una nave espacial mercante, que misteriosamente recibe una llamada de rescate desde un planeta deshabitado.
  • Cacahuetes, sal y aceite es una ficción interactiva del tipo de escoger opciones, que fue creada con fi.js. En esta historia, te despiertas amnésico en una celda perfectamente regular... ¡tienes que escapar! Esta aventura fue portada a fi.js desde InformATE!

Excepto Error de copia, estas aventuras han sido portadas a fi.js para facilitar su manejo en un dispositivo móvil. ¡Disfrútalas de nuevo!

Categor铆as: Planeta

Tutorial INFSP7 actualizado

Hace 4 horas 4 mins

Cinco años han pasado desde que Xavi Carrascosa publicó su tutorial "Introducción a Inform7". Fue una linda experiencia de colaboración. Xavi me enviaba el texto por email (nos separa unas 17 horas de viaje en avión) y yo le respondía con audio-comentarios.

El resultado quedó muy bien, presentado excelentemente en una web dedicada.

I7 siguió evolucionando y pues ya era hora de actualizar el tutorial, con correcciones en los códigos para que el compilador no tenga problemas. Lo pueden descargar desde el repositorio de INFSP7, en github. También les recomiendo descargar la última release de INFSP7, con algunos bugs que surgieron mientras testeaba los código-ejemplos.

Buena aventura!




Categor铆as: Planeta

Preparando el inicio del 2017

Hace 4 horas 4 mins

Categor铆as: Planeta

Despidiendo el 2016

Hace 4 horas 4 mins
Este año 2016 iba a ser el año de Layna, pero no lo ha sido. Quería haber hecho: una renovación de Hierba, una hiperficción con ella y su equipo, un libro de relatos y la continuación de Hierba. De todo eso sólo he completado la renovación de Hierba, que ha consistido en recompilarla con I7, añadirle hiperenlaces para facilitar el juego y ponerle una pequeña ilustración cortesía de Depresiv.
En cuanto a la hiperficción, me sirvió para hacer mano con Squiffy -herramienta sobre la que sospecho que pronto habrá jugosas e interesantes noticias- y está bastante avanzada, pero no está completada y no acaba de convencerme el resultado, así que si me queda hueco este año intentaré revisarla a ver si puedo sacar algo de interés. De forma que en realidad de ese 'compromiso' del año pasado sobre todo ha servido para coger experiencia y finalmente crear mis SillyBerrys de este año.
Me gusta mucho que haya empezado esto de los SillyBerrys, no son más que obras pequeñas, rollo 'jam', o en nuestro lenguaje habitual no dejan de ser más que 'RapidoComp' sólo que lo estamos haciendo en rollo 'amigotes' y una vez al mes. Los resultado no son 'redondos' -aunque algunos de mis compañeros sillyberros han hecho cosas realmente chulas, los condenados- pero son 'diferentes', lo que resulta bastante refrescante. Ya hemos empezado a incluir algún autor (autora en realidad) de fuera de aquel primer día de cerveza negra y risas, y entiendo que poco a poco vamos a ir extendiendo la experiencia a otras personas -de hecho me han contado que ya han aparecido jams con casi el mismo formato en algunos cursos de programación de juegos, lo que me ha alegrado este triste final de año.
En cuanto al libro de cuentos, existe, pero aún es demasiado corto como para considerar su subida a Amazon o a cualquier otra plataforma de publicación, así que lo dejaremos para más adelante cuando tenga la inspiración necesaria para crear unos cuántos cuentos oscuros y espaciales más.
Finalmente, he de reconocer que de la continuación de Hierba prácticamente no hay nada de nada. Simplemente no he tenido tiempo.
¿Qué he hecho entonces? Pues, como he dicho, la renovación de Hierba, el tutorial no del todo acabado de Huesos, la convocatoria de Más allá de la Comp, mis SillyBerrys así como la renovación de material de mi campaña de rol Akaram -que ahora están 'sufriendo' mis compañeros sillyberros de tanto en tanto.
Teniendo en cuenta que lo que más me ha convencido este año han sido mis hiperficciones lo lógico sería continuar por ese camino, pero no soy una persona lógica así que este año 2017 quiero hacer un par de aventuras conversacionales de corte más clásico con la misma protagonista, la de esta 'novela' de mi campaña Akaram -sin revisar.
Así que este año intentaré que sea 'el año del fuego'.
Categor铆as: Planeta

Abandonada

Hace 4 horas 4 mins

...¡y por fin he publicado "Abandonada"!
Ficha en la web del CAAD
Esta aventura se me resistía, la verdad. La escribí desde el principio como ejercicio para el uso de iconos en fi.js, y finalmente publiqué antes Cafax, la aventura basada en el Enigma de Aceps, que esta. Pero es que no sabía como acabar esta aventura, no se me ocurría un buen giro que funcionase. Ahora sí, creo que dí con ello, pienso que ahora es creíble e interesante.
Bueno, la aventura no es muy larga precisamente, se trata de una breve-pequeña que creo que se completa bastante rápidamente. Solo encontrarás un pero, y es que necesitarás esconderte en cierto sitio seguro... ¡guarda la aventura cuando llegues al embarcadero! :-D

Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (9)

Hace 4 horas 4 mins
Bien, ya tenemos tinajas y tapas, pero, ¡resulta que no les hemos incluido descripción a ninguna de las dos cosas! Un poco paradójico cuando justamente estamos intentando incluir todo el texto y decoración que la obra necesita.
Añadir descripción es bastante sencillo. Como en los casos anteriores incluimos un 'The description of...', sólo que ahora hay que usar la palabra 'usually' para indicar que estamos definiendo la descripción para toda una 'clase' de cosas y no sólo para una cosa. Es decir, podríamos incluir algo como:
The description of a tapa is usually "Envejecida, pero aún se reconoce la madera de los árboles locales, los mismos que os proveen de madera para cuencos o para cocinar.".

The description of a tinaja is usually "Arcilla amarilla con algunos toques de rojo muy pálido cocida en el horno comunitario. Tierra y agua de vuestro río, y fuego alimentado con la madera de vuestros bosques. Hasta ahora, muy pronto la palabra 'vuestro' ya no será la adecuda.".

Ya tenemos descripciones, pero es un poco raro que cualquiera de las seis tinajas y seis tapas tenga exactamente a misma descripción, ¿no? Sería interesante poder poner un menaje que variase de una a otra de forma aleatoria. Inform 7 tiene todo un conjunto de opciones para hacer el texto variable y en concreto hacerlo aleatorios. La opción más sencilla es la construcción:

[one of]...[or]...[at random]

Que permite ofrecer un texto variable que cambie con cada acción de examinar asegurándose que no se repita lo elegido mientras existan alternativas. Por ejemplo lo podríamos dejar como:

The description of a tapa is usually "[one of]Envejecida, pero aún se reconoce la madera de los árboles locales, los mismos que os proveen de madera para cuencos o para cocinar.[or]De madera vieja. Algo carcomida por el tiempo, pero aún reconocible como de los árboles locales.[or]Madera envejecida por el tiempo aunque aún resistente, capaz de proteger los restos de los anteasados.[at random]".

The description of a tinaja is usually "[one of]Arcilla amarilla con algunos toques de rojo muy pálido cocida en el horno comunitario.[or]Barro cocido a fuego lento para ser duradero.[or]Amasado por manos expertas y cocido en el horno comunitario.[at random] Tierra y agua de vuestro río, y fuego alimentado con la madera de vuestros bosques. Hasta ahora, muy pronto la palabra 'vuestro' ya no será la adecuda.".

Se puede ver que esta variabilidad del texto se puede aplicar tanto a toda la descripción o un fragmento del mismo. Pero claro, esto no da realmente una descripción diferente para cada tinaja ni cada tapa, tampoco es que lo necesitáramos, realmente, pero más adelante veremos algunas opciones de mejora posibles. En cualquier caso, para darle más color es de interés añadir al menos dos o tres opciones de descripción a casi todas las descripciones principales, pero no es algo imprescindible. Continuemos con la lista de cosas que deberían estar en la obra según dijimos en el post anterior.  Necesitamos el túmulo en su mismo, uno que transmita la sensación de ser otro mundo, uno oscuro y tenebroso cercano al mundo espiritual en el que vivirían los muertos, o al menos portal del mismo.

Para empezar retoquemos un poco el túmulo en sí, aunque sea de una manera un tanto obvia, por ejemplo con:

Tumulo is a dark room. The printed name of tumulo is "Cámara de enterramiento".
The description of tumulo is "Piedras enormes te rodean levantadas por tus antepasados para proteger a los restos de sus muertos. Separan este sagrado espacio dedicado a los fallecidos del mundo de los vivos. Ninguna luz perturba este lugar si no la traes contigo. Ningún sonido llega desde el exterior. Entrar en este lugar es como entrar en otro mundo. Montones de tinajas, algunas en hileras, la mayor parte desordenadas, contienen esos restos a tu alrededor.".

Ahora revisemos de éste lugar qué cosas mencionadas nos faltan. Ya incluimos las piedras pero las podernos hacer más pesadas, más amenazadoras, por ejemplo con:

Some piedras (f) are scenery in the tumulo. 
The description of piedras is "Amarillentas como las colinas cercanas a la aldea. Enormes como caballos, pero las historias dicen que fueron traídas de tierras sagradas lejanas, allá en el lejano sur de nuestros orígenes, por antepasados que aún no sabían como hacer que ningún animal trabajase para ellos. Cierran todo el lugar transformándolo en una cueva sólo para los difuntos y sobre ellas una capa de tierra lo cubre todo.".

Además solo tenemos definido 'piedras', no una de ellas de forma individual. Podríamos limitarnos a incluir un sinónimo de piedras con la palabra 'piedra', esto se haría en Inform 7 con la frase 'Understand', así:

Understand "piedra" as piedras.

En este caso queda bastante bien y lo podemos dejar así, pero hay veces en los que habría que distinguir por el contexto y las respuestas entre el 'conjunto' y el 'individuo' aunque sea genérico. Eso es lo que le pasa a las tinajas. De hecho el texto que hemos incluido en la descripción del túmulo referente a ellas no debería estar en él, sino el un objeto del 'conjunto de tinajas', esto sería de esta forma:

Some conjunto tinajas (f) is a thing in Tumulo.   The conjunto tinajas is fixed in place.
The printed name of conjunto tinajas is "tinajas". "Montones de tinajas, algunas en hileras, la mayor parte desordenadas, contienen esos restos a tu alrededor."

Hemos creado un objeto genérico no movible que tiene un texto que se muestra separado pero como parte de la descripción del lugar. Pero ahora vemos las tinajas como dos veces, una en la descripción y otra en el lugar. Lo podemos solucionar quitando a las tinajas del túmulo, o sea:

There are six tapas.
There are six tinajas.

¡Pero entonces ya no podemos hacer nada con las tinajas, ni examinarlas siquiera! Por que no están allí simplemente. Diablos. ¿Cómo referirnos a las tinajas como conjunto y a la vez conseguir que haya muchas individuales? En realidad no puede ser más sencillo, las tinajas son parte de conjunto de tinajas, ¿no? Pues lo indicamos con:

All the tinajas are part of conjunto tinajas.

Inform 7 permite trabajar así, declarando cosas que afectan a todos los objetos de una misma clase o que comportan una propiedad. Y lo puedes hacer en tiempo de ejecución de la obra o como en este caso en la parte de descripción del mundo.

Se nos ha hecho un poco largo el post. El estado actual de esta obra lo podéis descargar de aquí,

Mañana seguimos creando nuestro pequeño mundo de los difuntos.



Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (8)

Hace 4 horas 4 mins
En el anterior post organizamos el código y empezamos a incluir decoraciones. En el caso de los relatos interactivos orientados a comandos el texto no vive por sí mismo sino que va 'clavado' o 'pintado' aquí o allá asociado a acciones pero muy frecuentemente a los objetos y lugares del modelo del mundo. Muy frecuentemente es más importante en una de estas obras que 'parezca' a que lo 'sea' en realidad. Es decir, frecuentemente lo que acaba siendo la obra se parece más al escenario o decorado que se ve en la foto de la izquierda que a una casa de verdad. En este sentido tratamos al interlector un poco como un abducido por extraterrestres y preso en un simulacro. No se trata de simular todos y cada uno de los aspectos de una casa si incluimos una en el relato, sino que se trata de que no se 'note' que no es una casa sino algo hecho de cartón-piedra. El equilibrio es delicado, porque aunque lo más probable es que no sea necesario incluir en el modelo del mundo las tuberías que recorrerían una casa de verdad, ¿qué pasa si le das al interlector un pico? Nada le impide que las busque picando en una de las paredes y entonces descubrirán que son de cartón-piedra y escaparán de tu obra. Mejor no les des un pico, pero si se los das ten preparada una buena excusa para que no rompan tu decorado.
Como siempre nos tenemos que guiar por la narrativa; es decir, tendremos que incluir todo lo que la historia:
  1. Necesita para completarse
  2. Necesita para tener sentido
  3. Necesita para ser coherente
  4. Sugiere que está
Muchos autores sólo incluyen el primer punto. Eso es muy insuficiente. Muchos autores ni siquiera saben distinguir entre el segundo punto y el tercero. Y raras son las obras que no se han saltado el último punto. Si el interlector está preso en una prisión, tendrás que incluir las paredes, el techo, el suelo y las rejas que conforman su prisión. Todo eso sólo es el nivel punto. Para que la historia tenga sentido tendrás que incluir los elementos que hagan al calabozo triste y desesperante. La suciedad, la humedad, las marcas de anteriores prisioneros. Para que sea coherente asegúrate de saber de dónde viene la luz, cómo llegan los prisioneros allí, cómo los vigilan los carceleros. Y finalmente... si dices que la luz proviene de un ventanuco, éste debe estar, pero también las estrellas que se ven a su través y los ruidos del mundo exterior que entran por él.
Dejaremos de lado aún a las tinajas que trataremos mucho más adelante. ¿Qué nos exige en cada punto la historia que tenemos entre manos?
El primer punto es evidente que sólo requiere las tinajas para completar la historia... bueno, las tinajas y todo su contenido, lo que será el cometido de un post posterior. Nada más, ni siquiera el túmulo. Pero el segundo punto necesita un lugar oscuro, una tumba, el túmulo en sí mismo. Con sus piedras viejas y enormes, con un suelo básicamente de tierra en la que las tinajas se hayan asentado casi hasta quedar unidas unas a otras, probablemente telarañas, polvo removido por la visita de nuestro protagonista. Pero todo eso no es suficiente para que el escenario sea coherente, al menos tiene que haber alguna clase de pasillo que nos haya traído hasta es lugar y por el que nos podamos marchar. Necesitamos una fuente de luz, una pequeña, por lo que también tendremos de hacer zonas de luz y de oscuridad, cosas que se vean desde el principio y tal vez zonas a las que haya que iluminar.
Uff... son montones de cosas y además ya se van perfilando una serie de acciones que habrá que implementar, como salirse del túmulo o la posibilidad de iluminar diversas secciones del túmulo. Hay dos maneras de encarar esto; la ordenada y eficaz o la entretenida y laboriosa. La ordenada consiste en que te pares ahora mismo y hagas una lista de todos los objetos que vas a necesitar y las acciones que estos objetos requieren... de hecho, en esta aproximación tradicionalmente se ha hecho un walkthrough, o en palabras castellanas, una secuencia de acciones que llevan al menos a uno de los finales de la obra, al final 'bueno'. Este componente, esta lista, era tan habitual que incluso hay colecciones de 'soluciones' y se siguen pidiendo en muchos casos para los concursos. A mí eso ya no me gusta. Si una obra necesita que exista y que se guarde su 'solución' es que es una colección de puzles indigerible que no está bien enhebrada, cuya complejidad no está equilibrada con el interés que despierta. Por eso ya no incluyo ese requisito en los concursos -como en Más allá de la Comp- ni me parece siquiera interesante leer 'soluciones' o que se publiquen.

Así que vamos a hacerlo de forma desordenada y creativa. Como hemos ya dicho un par de veces lo único que necesita el relato son las tinajas. No vamos a hacer el tratamiento correcto de las tinajas que deben de incluir toda la interacción, el contenido de las mismas y la interacción con el contenido. Pero hagamos un poco de estructura para ver cómo iría. Lo primero sería crear un conjunto de tinajas todas iguales. El relato requiere en realidad que el número sea 'enorme' y desconocido, pero empecemos con algo más controlable, por ejemplo siete tinajas. Inform 7 contiene un maravilloso sistema para hacer objetos iguales, que consiste en: primero crear una 'clase' de objetos y luego decir simplemente cuántos objetos de esa clase están presentes.

Section 3 - Tinajas

A tinaja is a kind of container.
The grammatical gender of a tinaja is usually feminine gender.

There are six tinajas in Tumulo.

Decimos que una tinaja es un contenedor, que es femenino y luego decimos que hay seis. Listo. Podéis descargaros el código de aquí, compiladlo y veréis que es bastante sencillo pedirle al parser que haga cosas por vosotros con tinajas. Pero le faltan cosas. Para empezar a nuestro personaje anciana no debería resultarle nada sencillo arrastrar estas tinajas de aquí para allá, y desde luego no debería poder cogerlas. Esto se resuelve añadiendo un 'fixed in place' a la definición de las tinajas. Además deberían estar cerradas y debería ser posible abrirla y cerrarla, esto se consigue añadiendo 'closed' y 'openable' a la tinaja. Quedando el código:

Section 3 - Tinajas

A tinaja is a kind of closed openable container. A tinaja is usually fixed in place.
The grammatical gender of a tinaja is usually feminine gender.

There are six tinajas in Tumulo.

Pero en realidad la tinaja debería tener una tapa, una buena tapa de madera sellada con betún. Añadir una tapa a un contenedor no es tan sencillo en Inform 7. Lo primero es crear otra clase de objeto que sea la tapa, decir que hay seis y explicar que cada tinaja tiene su correspondiente tapa. O sea:

Section 3 - Tinajas

A tapa is a kind of supporter.
The grammatical gender of a tapa is usually feminine gender.

A tinaja is a kind of closed openable container. A tinaja is usually fixed in place.
The grammatical gender of a tinaja is usually feminine gender.

There are six tapas.
There are six tinajas in Tumulo.

Tenemos que asociar ahora las tapas a las tinajas. Inform 7 tiene la posibilidad de hacer objetos partes de otros objetos y de esta forma una tinaja cerrada tendrá una tapa asociada que podremos separar cuando la abramos. Una forma de asociar una tapa a una tinaja sería esta:

When play begins:
repeat with jar running through tinajas:
if there is a tapa (called selected) which is not part of anything:
now selected is part of jar.
Como este capítulo se ha alargado demasiado mejor dejarlo aquí.

Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (7)

Hace 4 horas 4 mins
Si algo tenía Squiffy era su simplicidad. Una única secuencia de texto en dónde sólo había secciones separadas por [] y [[]] cada una con su nombre y los enlaces entre ellas. Como ya empezamos a ver en la anterior entrega en Inform 7 la cosa va a ser algo más complicado y merece la pena que empecemos desde el principio a ordenar nuestro código. Por supuesto podríamos hacerlo con comentarios, ya que Inform 7 proporciona una herramienta muy sencilla para incluir comentarios que es rodear una parte del texto con corchetes.
Por ejemplo podríamos empezar con poner un comentario indicando las circunstancias de la creación de esta obra, con una especie de mínima ficha que explique al que se la encuentre en el futuro de qué va todo esto. Claro que Inform 7 ya proporciona un mecanismo para incluir información 'bibliográfica' de la obras, como podéis ver en este enlace. Si añadimos esta información y además ponemos un comentario de contexto de la obra nos quedaría una cabecera como la siguiente:
"Huesos" by Johan Paz (in spanish)

[==============================================================

Huesos - ejemplo de historia interactiva creada en Inform 7

Parte del tutorial de 'huesos':

http://pacificaciones.blogspot.com.es/search/label/tutorialhuesos

Creado en 2016 por Johan Paz con motivo de la competición:

http://wiki.caad.es/M%C3%A1s_all%C3%A1_de_la_Comp

==============================================================]

The story title is "Huesos".
The story author is "Johan Paz".
The story headline is "Una historia de fantasmas en la edad del bronce".
The story genre is "Horror".
The release number is 1.
The story description is "Sin casi apoyo de tu comunidad, tú, una pobre anciana
vas a lograr que los huesos de tus antepasados no sean profanados."
The story creation year is 2016.

Estos cambios no modifican la obra absolutamente en nada, pero ayudarán a los que se encuentren la obra en el futuro y en su 'publicación' y propagación como explica la sección de la documentación que he enlazado anteriormente.

Otra herramienta que tiene Inform 7 para hacer más claro el código es la capacidad de hacer secciones mediante las palabras claves 'Part', 'Chapter', 'Section', numeradas y con un título. Estas secciones además sirven para navegar por nuestro código tanto en el IDE como cuando se publica la obra incluyendo el código.

Creemos una 'parte' para cosas técnicas -que de momento dejaremos vacía-, otra con el modelo del mundo. En la parte del modelo del mundo separaremos en capítulos la parte de mapeado y la parte de objetos. Finalmente crearemos una sección para cada lugar o cosa existente. El código nos quedaría de esta forma:

"Huesos" by Johan Paz (in spanish)

[==============================================================

Huesos - ejemplo de historia interactiva creada en Inform 7

Parte del tutorial de 'huesos':

http://pacificaciones.blogspot.com.es/search/label/tutorialhuesos

Creado en 2016 por Johan Paz con motivo de la competición:

http://wiki.caad.es/M%C3%A1s_all%C3%A1_de_la_Comp

==============================================================]

Part 0 - Referencia bibliográfica

The story title is "Huesos".
The story author is "Johan Paz".
The story headline is "Una historia de fantasmas en la edad del bronce".
The story genre is "Horror".
The release number is 1.
The story description is "Sin casi apoyo de tu comunidad, tú, una pobre anciana vas a lograr que los huesos de tus antepasados no sean profanados."
The story creation year is 2016.

Part 1 - Herramientas y apaños técnicos

Part 2 - Modelo del mundo

Chapter 1 - Mapeado

Section 1 - Túmulo

Tumulo is a dark room. The printed name of tumulo is "Interior del túmulo".
The description of tumulo is "Piedras enormes te rodean levantadas por tus antepasados para proteger a los restos de sus muertos. Montones de tinajas, algunas en hileras, la mayor parte desordenadas, contienen esos restos a tu alrededor.".

Chapter 2 - Objetos

Section 1 - Lámpara de aceite

A lampara (f) is a switched on device carried by the player. The lampara is lit.
The printed name of lampara is "lámpara".
The description of lampara is "Arcilla roja con pequeñas decoraciones en arcilla blanca que representan los signos sagrados de los dioses. Una lámpara muy adecuada para esta misión sagrada.".

Instead of switching on the lampara:
say "Con dificultad enciendes la lámpara.";
now the lampara is lit.

Instead of switching off the lampara:
say "Soplas sobre la trémula llama de la lámpara, apagándola.";
now the lampara is unlit.

Si compiláis este código veréis que el IDE ya os crea un índice que nos facilitará mucho la localización del código que nos interese cuando estemos depurando el comportamiento de la obra. Sé que parece un poco excesivo poner todas etiquetas pero es mucho más importante de lo que parece y en realidad es bastante sencillo hacerlo.

Ahora que tenemos la obra un poco más ordenada, sería necesario añadir 'niveles de examinado'. ¿Qué es un nivel de examinado? Llamo nivel de examinado a la existencia de mensajes de detalle -accesibles por el comando 'ex' o 'examinar'- de todas las 'cosas' que aparecen en los mensajes de los lugares por donde pasará el interlector y los objetos que lleva encima o se encuentren en estos lugares. Por ejemplo, en la descripción del único lugar de esta obra, el túmulo, se habla de 'piedras', 'antepasados', 'muertos', 'tinajas', 'hileras' y 'restos'. Disponer de una respuesta adecuado a los examinas de todos esos conceptos sería tener el primer nivel de examinado completo. Personalmente no me doy por satisfecho hasta que esté completo el tercer nivel de examinado, es decir, respuestas correctas para los conceptos mencionados en las respuestas de los conceptos mencionados en las respuestas de los conceptos mencionados por la descripción de inventario y de lugares. Pero es que yo soy un poco demasiado exigente, con que lleguéis al primer nivel ya estará bastante bien.

De la lista de concepto anterior no todas las cosas son lo mismo, por ejemplo, 'piedras', 'tinajas' e 'hileras' son cosas que 'realmente' estarán ahí, mientras que 'antepasados', 'muertos' y 'restos' no van a estar realmente, al menos no hasta que empecemos a abrir tinajas. Las respuestas no pueden ser lo mismo. El comando 'examinar' es mirar con los ojos, así que un 'ex piedras' debería dar detalle de las piedras tal y cómo sea que sean en la realidad del mundo de la obra, pero un 'ex muertos' debería decir que están dentro de las tinajas, poco más... excepto si las tinajas están abiertas. Cuidado con estos detalles variables que es lo que finalmente dará calidad a vuestra obra interactiva.

Trataremos con las tinajas (y sus hileras) más adelante, ya que van a ser los objetos más importantes de esta obra, pero, ¿cómo incluimos la descripción de las piedras del túmulo? Una primera aproximación es simplemente incluirlos como un objeto más en el túmulo, es decir:

Section 2 - Piedras

Some piedras (f) are in the tumulo.
The description of piedras is "Enormes como caballos. Amarillentas como las colinas cercanas
a la aldea, pero las historias dicen que fueron traídas de tierras sagradas lejanas,
allá en el lejano sur de nuestros orígenes.".

Esto proporciona el objeto piedras, al que podemos referirnos más adelante y nos da la descripción que buscábamos, pero hace aparece el texto:

Interior del túmulo
Piedras enormes te rodean levantadas por tus antepasados para proteger a los restos de sus muertos.
Montones de tinajas, algunas en hileras, la mayor parte desordenadas,
contienen esos restos a tu alrededor.

Puedes ver unas piedras aquí.

Y ese 'puedes ver unas piedras aquí', no es precisamente lo que queremos. Además estas piedras 'grandes como caballos' resulta que pueden cogerse con el comando 'coger piedras'. No, esto no queda bien. Por suerte Inform 7 contempla esta clase de objetos de 'decoración' y los llama 'escenarios'. Si cambiamos el código por:

Section 2 - Piedras

Some piedras (f) are scenery in the tumulo.
The description of piedras is "Enormes como caballos. Amarillentas como las colinas cercanas
a la aldea, pero las historias dicen que fueron traídas de tierras sagradas lejanas,
allá en el lejano sur de nuestros orígenes.".

Veréis que el comportamiento cambia totalmente y sólo por una palabra. Es una de las magias de Inform 7, es un sistema que tiene tanta historia tras de sí que ya contempla mucho de lo que podemos necesitar.

En el siguiente capítulo veremos como incluir el resto de las decoraciones y cómo simplificar un poco este código.
Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (6)

Hace 4 horas 4 mins
En la anterior entrega ya completamos la versión de nuestra historia 'Huesos' en forma de una hiperficción realizada con Squiffy. Hasta ahora hemos transformado un texto lineal en una historia que se puede explorar a través de varios caminos, lo que es la base de una narración interactiva. Pero un relato interactivo basado en comandos -nuestras viejas conocidas las aventuras conversacionles- son algo bastante diferente, es una historia que surge de forma emergente de un 'modelo de mundo'. Un relato interactivo por lo tanto tiene necesariamente una coherencia interna que una hiperficción -o un librojuego- no tiene porqué tener, necesita esa coherencia porque el interlector en este caso no sólo controla el discurrir de la historia sino que puede interactuar con el 'mundo' en el que está con una plétora de comandos -acciones- diferentes que deben contestar adecuadamente. Y si estas respuestas no son coherentes, perderemos la credibilidad.
En algunos aspectos hacer un relato interactivo basado en comandos es mucho más difícil que hacer una hiperficción o que un librojuego, porque el autor aquí pierde aún más control de su obra y hay que hacer un enorme trabajo de programación para incluir todos esos comandos posibles así como las respuestas adecuadas... o había que hacerlo, en el pasado. Por suerte las herramientas actuales para crear aventuras conversacionales están muy evolucionadas y con muy poco código es posible obtener modelos del mundo coherentes y complejos. En el resto de este tutorial vamos a usar una de estas herramientas avanzadas: Inform 7.
Esta herramienta contiene en su interior un ingente universo de capacidades que no tenéis porqué conocer en un principio -que se pueda usar muy por debajo de sus capacidades es también parte de su magia- pero que os servirá para tener modelos de mundo muy avanzados en el futuro. Hay un tutorial de Inform 7 que merece la pena hacer antes de programar ninguna aventura y os animo a hacerlo, ya que este tutorial no va -como ya habéis visto- tanto de la parte técnica de las herramientas, como de la parte de escritura.
¿Cómo es el código más básico que podemos crear con Inform 7? Pues tan simple como el que podéis ver aquí abajo:

"Huesos" by Johan Paz (in spanish)

Interior del túmulo is a room.

En dicho código tan sólo hemos puesto el nombre de la obra y del autor, hemos indicado que es en español y hemos creado la primera -y en este caso única- habitación en la que se desarrollará la historia. Nada más empezar ya tenemos entre manos algo totalmente diferente, ya estamos creando un mundo en el que nuestro interlector va a 'estar'.

Pongamos algo más de detalles a este mundo. El túmulo debería estar a oscuras, y deberíamos iluminarnos con una lámpara de aceite. Esto se logra en Inform 7 de la siguiente forma:


"Huesos" by Johan Paz (in spanish)

Interior del túmulo is a dark room.

A lámpara (f) is a switched on device carried by the player. The lámpara is lit.

Instead of switching on the lámpara:
say "Con dificultad enciendes la lámpara.";
now the lámpara is lit.

Instead of switching off the lámpara:
say "Soplas sobre la trémula llama de la lámpara, apagándola.";
now the lámpara is unlit.

Hemos indicado que el interior del túmulo está oscuro, pero que tenemos un artefacto que se puede encender y apagar que empieza como encendido -la (f) le indica al sistema que es femenino. Además hemos incluido nuestras primeras dos reglas para encender y apagar la lámpara. Si copiáis el código anterior en el IDE de I7 y lo corréis veréis cómo el sistema de creación se encarga de proporcionaros toda la coherencia que necesitáis. Probad a dejar la lámpara mientras estáis en la oscuridad. Intentad encenderla o simplemente cogerla después de haberla dejado en la oscuridad. Ahí tenéis todo un nuevo conjunto de puzles, de dificultades coherentes que surgen por si mismas cuando trabajamos con un modelo de mundo en lugar de sólo con enlaces y párrafos de texto.

Pero Inform 7 no es perfecto. Por ejemplo la adaptación al español, aún es un poco regular, y si usáis 'lámpara' con acento como en el ejemplo el juego no aceptará 'lampara' sin acento -sí es una falta de ortografía pero si lo incluis podrán jugar con más facilidad chavales que escriben sin acentos sus Whatsapps. Para lograr esto tenemos que dar un poco de vuelta y escribir el siguiente código.

"Huesos" by Johan Paz (in spanish)

Tumulo is a dark room. The printed name of tumulo is "Interior del túmulo".

A lampara (f) is a switched on device carried by the player. The lampara is lit.
The printed name of lampara is "lámpara".

Instead of switching on the lampara:
say "Con dificultad enciendes la lámpara.";
now the lampara is lit.

Instead of switching off the lampara:
say "Soplas sobre la trémula llama de la lámpara, apagándola.";
now the lampara is unlit.

En el que hemos separado la declaración de los objetos y lugares del nombre que deben mostrar cuando se ejecute la obra. Es una buena práctica hacer eso para los juegos en español y aunque es incómodo es algo que recomiendo tal y como está de momento la versión para español de Inform 7.

Nos faltaría ahora añadir descripción tanto para el lugar como para la lámpara, y es fácil, no muy diferente de lo de indicar el nombre.

Tumulo is a dark room. The printed name of tumulo is "Interior del túmulo".
The description of tumulo is "Piedras enormes te rodean. Levantadas por tus antepasados para proteger a los
restos de sus muertos. Montones de tinajas, algunas en hileras, la mayor parte desordenadas,
contienen esos restos a tu alrededor.".

A lampara (f) is a switched on device carried by the player. The lampara is lit.
The printed name of lampara is "lámpara".
The description of lampara is "Arcilla roja con pequeñas decoraciones en arcilla blanca que representan los
signos sagrados de los dioses. Una lámpara muy adecuada para esta misión sagrada.".

Corred la obra y observad las diferencias. Bien, tenemos un inicio de mundo creíble, pero ya empezamos a ver que vamos a necesitar bastantes más textos para la misma obra. Toda cosa que pongamos debe poderse examinar y hay que incluir el texto correspondiente.

Pero vayamos poco a poco.
Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (5)

Hace 4 horas 4 mins
Pues ya hemos llegado al evento principal del relato. Ya estamos frente al sacerdote. El resto del relato está enfocado en incrementar progresivamente el terror en el lector, hasta provocar la huida, tras la cuál ya sólo queda el giro final.
¿Cómo logramos ir incrementando la tensión en el interlector y a ser posible transmitirle un poco de terror? Probablemente un autor más cercano al terror que yo tenga mejores ideas, pero en mi caso lo que haría no es muy diferente lo que ya hace el relato original. Intentar secciones breves, sin demasiadas ramificaciones, para transmitir inevitabilidad. E intentar que en cada sección haya un giro que incremente la tensión, que complique la situación. Se pueden poner secuencias descriptivas pero estas deben ser cortas, concisas, deben invitar a regresar a la trama principal y la espiral de preocupación.
Aquí habrá que probar una y otra vez hasta que quede bien, así que conviene que nos saltemos el resto de la obra y probemos directamente empezando en la sección de la apertura de la tinaja del sacerdote. Esto en Squiffy es tan sencillo como cambiar el nodo de inicio, o más concretamente en nuestro caso es incluir al principio:

@start tinajax
Primero ocultamos un poco la sección dentro de la exploración del sacerdote, ya que tenemos que sugerir al interlector que está 'profanando' la tumba. Esto se logra con (podéis descargarlo de aquí):

[[tinajax]]:
La siguiente tinaja la dejó confundida. En ella había un [sacerdote]. Los sacerdotes ya no
se enterraban en el pueblo. Vivían apartados, en su propia colina y por lo que ella sabía
los enterraban allí mismo, en los cimientos del templo dedicado a [Potnia]. Pero éste estaba
allí, y estaba casi entero, casi sin corromper. ¿Por qué estaba en el túmulo tan lejos
del resto de los suyos?

[sacerdote]:
Su piel estaba [seca], como costra salada, pero aún tenía cara, una cara de sonrisa excesiva
y amenazadora que le había hecho soltar un breve grito al destapar la tinaja.

[Potnia]:
La diosa de los animales es adorada por todo el que tiene juicio, pues de ella depende toda
prosperidad, así como la suerte en los partos o que las tormentas y las heladas no destruyan
las cosechas. Hasta la luz nace de ella, al menos si está de humor.

[seca]:
Con algo de temblor se atrevió a tocar la piel del sacerdote. Áspera. [Escalofriante].

[Escalofriante]:
A su edad casi nada le asustaba, pero el tacto del sacerdote le hacía pensar en maldiciones,
en enfermedades, en ovejas estériles y cabras de ubres secas, en todo lo negativo que
la [diosa](Potnia) podía llegar a desatar a los que no respetaban las tradiciones

Y ya queda tan poco, que con un poco de esfuerzo podemos completar la historia. Aquí podéis descargaros el programa fuente.

Y aquí podéis jugarla.
En la próxima entrega lo intentamos con Inform 7.
Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (4)

Hace 4 horas 4 mins
Los relatos escritos deben poseer un buen 'ritmo'. El ritmo es la 'sensación' que se tiene al leerlo. Esta sensación puede ser más o menos rápida, agresiva o por lo contrario pausado o aún soporífero. Es importante que el ritmo del relato sea el adecuado para aquello que cuenta. Al imprimir el ritmo adecuado el lector se 'contagiará' de las sensaciones de los protagonistas de forma más intensa y por lo tanto disfrutará mucho más de la experiencia lectora.
El ritmo es uno de los elementos más complejos de conseguir en un relato, ya que no hay reglas demasiado fijas sobre cómo conseguirlo, aunque hay elementos que se pueden usar para lograrlo, como los tiempos verbales, la longitud de las frases, etc... pero que el ritmo sea realmente adecuado es una suerte de 'baile' entre la morfología del texto, el léxico y la semántica. Un hermoso y salvaje baile.
¿Se conserva el ritmo en los relatos interactivos? En realidad sí, pero es mucho más difícil de 'controlar'. Si quieres transmitir una sensación de urgencia, por mucho que escribas con frases cortas o ultra cortas, si el interlector no pulsa de forma frenética los enlaces el 'ritmo' de urgencia no se mantendrá. En la ficción interactiva el interlector es siempre el que controla el discurrir y por lo tanto puede afectar muchísimo al ritmo.
Si quieres que más o menos se mantenga el ritmo que tienes pensado para cada parte del relato puedes jugar con algunos trucos. Un hecho interesante es que muchos interlectores son 'impacientes', al menos en la primera lectura. Muchos se precipitan a 'clickar' los enlaces que parecen lógicos para avanzar en la acción. Si quieres meter a tu interlector en un frenesí de urgencia, crea textos de escena cortos, déjale muy claro cuáles de los enlaces son de acción, y ponle bien visible aquellos que te conviene que crean que son la solución, y, encima, borra el texto cuando pulse en el enlace. De esta forma el interlector impaciente -que son muchos- se verá en una secuencia de textos cortos enlazados por acciones y se volverá más y más frenético, hasta llegar a la angustia que la sensación de urgencia que querías expresar requiere. Si requieres transmitir una sensación de meditación, algo lento y muy pausado, haz lo contrario. Textos algo más largos -nunca demasiado largos, porque los interlectores impacientes simplemente se lo saltarán- y en los primeros párrafos no incluyas ni una sola acción, por sólo enlaces a pasajes de exploración y varios niveles.
Estas diferencias tienen al menos una ventaja. En un relato tradicional simplemente no puedes pasarte con la cantidad de información y de texto. Eso destruye el ritmo y aburre al lector, sin embargo en el caso de la ficción interactiva puedes dejar información adicional en niveles de descripción que el interlector simplemente puede ignorar para ir a lo concreto, a la acción. Para ilustrar este hecho he creado esta versión de Huesos que avanza un poco más en el relato, pero sobre todo que mete bastante más información que no estaba en el relato original, pero que al estar conectado de forma periférica simplemente no rompe el ritmo de lectura, ya que es el propio usuario el que ha solicitado ampliar la información.
Bien, esto va cogiendo forma, pero aún no hemos atacado la parte más complicado del relato original. Los dos siguientes párrafos del relato son básicamente un elipsis encubierta. El autor nos engaña -sí soy malvado- y parece hacernos ver cómo la anciana va abriendo tinajas, remueve los restos dentro de ellas y rescata lo que puede en los dos primeros sacos. Incluso se permite sacar a la anciana del túmulo en un fragmento de texto que probablemente es bastante redundante, no muy bien conseguido, y todo es para trasmitirnos la sensación de tiempo, de acción repetitiva sin que haya en realidad ninguna acción repetitiva en absoluto en el texto. Al tiempo que nos produce un poco de sopor, de normalidad, de rutina, que puede así contrastar más adelante con la tensión y la extrañeza de encontrar el cadáver del sacerdote.

Transcribir tal cual esta elipsis simplemente no funcionaría aunque es tentador. Necesitamos provocar al interlector el mismo tipo de sensación de normalidad, de rutina, que crea el relato. Una forma de generar esa sensación en un interlector es llevarlo a pensar que está 'resolviendo un juego'. Si lo situamos ante lo que parece un puzle a resolver, estamos jugando con las convenciones de lo interactivo y el interlector se olvidará del contexto pasando a 'modo de resolución', que es equivalente a lo 'rutinario' en un lector normal. Así que tenemos que intentar presentar el vaciado de las tinajas como un 'juego' de alguna clase, algo a resolver.

Para lograr esto vamos a tener que hacer un poquillo de código, algo que permita 'repetir' la acción de 'abrir tinaja' y que, sin embargo, de un resultado diferente y preferiblemente uno que varíe de una lectura a otra, de forma que si el interlector relea la obra le de algo más de sensación de realismo. Evidentemente esto se puede lograr con un cuidado diseño de enlaces fijos, pero mejor veamos un poco de cómo se codifica en Squiffy.

En la documentación de Squiffy podéis ver varias secciones que hablan de cómo se puede incluir código en Squiffy. La forma más habitual de hacerlo con esta herramienta es añadiendo javascript a la estructura de nuestro relato interactivo, como se explica aquí, jugando con atributos, como se explica aquí y/o haciendo 'saltos' programados de unas secciones a otras como se explica aquí.

Una estructura simple que podemosa usar es tener una sección que contenga una llamada a función de javascript que haga un salto a una sección u otra de forma condicional, esto se hace de esta forma:

@start Inicio

[[]]:
@clear

[[Inicio]]:
@set count = 0
Estamos en una panadería repleta de hogazas de pan. Cojo una hogaza de [[pan]].

[[pan]]:
var count = squiffy.get("count")
var next = "pan" + count
squiffy.set("count", count + 1)
squiffy.story.go(next)

[[pan0]]:
Es una hogaza de pan negro fragante y ácida. ¡Quiero [[más]](pan)!

[[pan1]]:
Es una hogaza de pan blanco deliciosamente tierno. ¡Quiero [[más]](pan)!

[[pan2]]:
Es una hogaza de pan de semillas. Llena demasiado. ¡Ya basta de pan!

En este caso estamos usando un contador de squiffy que se incrementa cada vez que se pulsa en 'pan' y se salta a una sección numerada. Lo que se consigue con esto es separar el texto de cada clase de pan de la lógica que llega a la siguiente. De hecho el código de antes da un resultado bastante obvio, siempre el mismo y que no merece la pena hacerlo con código. La gracia es que podemos cambiar ese comportamiento cambiando sólo la lógica escrita en pan para dejar por ejemplo un avance aleatorio, como este:

@start Inicio

[[]]:
@clear

[[Inicio]]:
@set count = 0
Estamos en una panadería repleta de hogazas de pan. Cojo una hogaza de [[pan]].

[[pan]]:
var count = squiffy.get("count")
var next = "pan" + Math.floor(Math.random() * 3);
squiffy.set("count", count + 1)
squiffy.story.go(next)

[[pan0]]:
Es una hogaza de pan negro fragante y ácida. {if count< 3:¡Quiero [[más]](pan)!}{else:¡Ya basta de pan!}

[[pan1]]:
Es una hogaza de pan blanco deliciosamente tierno. {if count< 3:¡Quiero [[más]](pan)!}{else:¡Ya basta de pan!}

[[pan2]]:
Es una hogaza de pan de semillas, crujiente y deliciosa. {if count< 3:¡Quiero [[más]](pan)!}{else:¡Ya basta de pan!}

Este ejemplo ya se acerca bastante a lo que queremos, una secuencia más o menos aleatoria de secciones que representen el buscar entre las tinajas y que nos lleve a un determinado final. Pero en nuestro caso no vamos a querer que una misma tinaja se repita, para ellos sustituiremos la lógica central del ejemplo por esta otra:

[[huesos belaiska]]:
@set count = 0
@set tinajas = 012345x
Dejó la lámpara sobre la tinaja de al lado y, con cuidado, pero con toda la prisa que podía darse, los
introdujo en el primer saco. Hueso a hueso. Bien colocados casi no ocuparon nada. Aun así allí había
muchos cuerpos que recoger. Todos los muertos desde la fundación de la ciudad. Muchas más [[tinajas]](abrir tinaja)
que abrir y revisar.

[[abrir tinaja]]:
var count = squiffy.get("count")
var cadena = squiffy.get("tinajas")
if ( cadena == "------x" ) {
next = "tinajax"
} else {
var rango = 6
if ( count > 2 ) { rango = 7 }
var seleccionado = "-"
while ( seleccionado == "-" ) {
var index = Math.floor(Math.random() * rango)
seleccionado = cadena[index]
}
var next = "tinaja" + cadena[index];
cadena = cadena.substring(0, index) + "-" + cadena.substring(index + 1)
squiffy.set("tinajas", cadena)
}
squiffy.set("count", count + 1)
squiffy.story.go(next)

En la que usamos una variable de squiffy -tinajas- como una cadena en la que vamos marcando las que ya hemos abierto hasta que llegamos a la del sacerdote por suerte o porque no queda ninguna otra. Además hemos añadido una condición para que al menos abra tres tinajas antes de que aparezca como alternativa la del sacerdote. Por fin tenemos un texto variable, que da la sensación de mostrarnos el trabajo de rescatar los restos y al tiempo no es excesivamente larga como para aburrir.

Aquí podéis ver el resultado final.
Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (3)

Hace 4 horas 4 mins
En el anterior post iniciamos la construcción de la versión Squiffy de nuestro primer relato interactivo. Ya vimos que el comienzo de la obra no podía ser el mismo que en su versión de escritura tradicional y hoy vamos a ver otras diferencias importantes entre escribir un relato y su versión interactiva, aunque sea sólo la versión hipertextual.
En el relato tras la presentación del túmulo se presenta la dificultad que nuestra protagonista ha tenido para conseguir que alguien más de su pueblo la ayude con lo que para ella es tan importante. Y al tiempo se presenta la situación, es decir, por qué ellos deben huir y porqué ella desea poner a salvo los huesos de sus antepasados. El orden en el que se cuentan estas cosas se debe a las propias normas de ritmo y de armonía del relato al leerlo. Pero en un relato interactivo no hay un orden predeterminado de lectura, el orden es el que el lector -a mí me gusta llamarlo interlector- quiera. ¿Cómo enlazamos entonces en nuestro código de Squiffy los textos del relato original? No hay una respuesta sencilla, pero alguna cosa podemos hacer para prepararnos. En este enlace he cogido el relato original y marcado con diferentes colores qué podemos considerar que es cada fragmento: acción, descripción, consecuencia, etc...

Las secciones en fondo verde -las acciones- deberían corresponderse en nuestro relato interactivo a enlaces presentes que tenga alguna clase de consecuencia, es decir, fragmentos en fondo amarillo -las consecuencias. O dicho de otra manera, los fragmentos amarillos deberían ser las secciones mínimas presentes en el Squiffy, mientras que los fragmentos verdes deberían ser enlaces incluidos 'en alguna otra parte'. Las partes azules son información adicional y no fundamental, así que se deberían corresponder con pasajes de Squiffy. Finalmente las secciones en fondo blanco pero en negrita es información fundamental que constituye el esqueleto básico del relato. Sin ellos el cuento simplemente no existe, así que casi cualquier recorrido no fallido del relato debería contenerlos todos y más o menos en ese orden.

Este relato anotado nos facilita la adaptación, ya que nos da la información aproximada de cuántas secciones y cuántos pasajes deberían existir así como sugerencias de qué debería ser enlaces, incluso, usando las partes negras, se nos está sugiriendo una estructura básica del relato interactivo, es decir, la forma del árbol de decisiones más básico de las secciones y los pasajes. Todo esto está muy bien y os animo a hacerlo en vuestro propio relato, pero pronto veréis que la literatura lineal no respeta necesariamente una estructura de parejas 'acción' -> 'consecuencia' o 'acción' -> 'descripción'. Va haber que ser creativo, flexible, y reescribir el relato para que se adapte al medio interactivo.

Hagamos primero sólo la transición entre el inicio descriptivo y el momento de enfrentarse a las tinajas, lo que en el texto original son los tres primeros párrafos. Mi resultado es este -lo podéis descargar de aquí:

[[]]:
@clear

[[Inicio]]:
Lo más impresionante era el silencio. Lo más terrorífico la oscuridad.
En el mundo de los vivos el sonido lo permea todo. Los ruidos son constantes.
Los trinos de los pájaros. Las llamadas de las cigarras. Los berridos del ganado.
Las voces de a gente. La vida es ruidosa. Hasta los espírtus más cotidianos como el
arroyo y el viento se anuncian con el sonido.

Sin embargo los muertos viven en el silencio frío y oscuro del [túmulo].

No es un lugar para los vivos, ni lo era para ella, una [anciana].

[túmulo]:
A ciegas chocó la [piedra de chispa] con la piedra de sol. Los primeros golpes sólo
iluminaron sus viejas manos un instante, pero la paciencia de la anciana le permitió
encender la [yesca](piedra de chispa) de hilachos carbonizados. Sopló con suavidad la
yesca prendida, hasta que tuvo en su mano encallecida una minúscula llama roja con la
que pudo encender la lámpara de aceite. Levantó la luz sobre su cabeza, sintiendo dolor
en el hombro que nunca se le había curado del todo. Allí estaban. Unas detrás de las otras,
algunas en hileras, la mayor parte amontonadas de forma desordenada. Allí estaban
las [[tinajas]] con los [huesos de los antepasados].

[piedra de chispa]:
Piedra de chispa de las tierras remotas del sur, piedra de sol del remoto norte y yesca
que era de andrajos, sí, pero de hilos de la mejor calidad, sacados de su mejor viejo
vestido. Lo mejor que había encontrado en su casa, porque nada podía fallar. Lo que
tenía que hacer era demasiado importante.

[anciana]:
La piel estaba tan arrugada como la tierra seca del verano y tan fina que parecía que
los huesos, doloridos y cansados, podían verse a su través. Muy pronto su lugar sería
en aquel túmulo junto con los antepasados, pero aún no, aún tenía un último trabajo
que completar.

[huesos de los antepasados]:
Esta tarea era fundamental, pero los que no se habían atrevido a penetrar las fronteras
de los muertos, y los que lo consideraban una pérdida de tiempo, se había encontrado
[casi sola].

[casi sola]:
No sin mucho insistir había conseguido la ayuda de Atten, el hijo del forjador de bronce y
sólo para que con su fuerza hiciese rodar el portalón de piedra del túmulo. Era mucho
trabajo para una anciana y no sabía cuánto tiempo faltaba para que los campos ardiesen
bajo los pasos de lo [gigantes] rubios del norte.

[gigantes]:
Todos se preparaban para huir, al sur, más allá de las montañas. Al río. A las aguas que
fueron de los antiguos reyes del oro y la plata. Huían de los invasores que venían desde
tierras frías y lejanas, trayendo consigo la muerte en los filos de sus armas negras. No
quedaría nadie en la aldea. Ni los antepasados si [[ella podía evitarlo]](tinajas).

[[tinajas]]:
Apartó las telarañas hasta llegar a la primera tinaja. El betún se había secado hacía mucho
y pudo destaparla con facilidad. El olor era aún intenso dentro de la tinaja pero el cuerpo,
en este caso sabía que era Belaiska, la mujer de su hermano mayor, muerta de parto, ya sólo
eran huesos.

Podéis ver que he prescindido finalmente de usar las dos posibles acciones del texto -encender el farol y elevarlo- como secciones y las he dejado como pasajes, esto es así porque narrativamente me ha parecido más importante distinguir entre esta primera presentación y la parte de las tinajas mediante el borrado de la pantalla -que hemos puesto en la frontera entre secciones. Empecé creando las secciones y sus enlaces siguiendo el patrón del documento coloreado, pero al probarlo vi que quedaba mejor hacer que todo el principio fuese dentro de una misma sección -sin borrado de pantalla- y lo cambié para jugar con los pasajes. Y esto es por la auténtica regla maestra de todo esto:

No hay normas definitivas. Escribe, prueba la interacción y corrige hasta que quede bien.
Esto es arte y tendréis que reescribir tanto los textos como la estructura de interacción hasta que quede bien, no hay forma de asegurar un buen resultado siguiendo normas generales. Algo interesante que hemos hecho en esta parte es llevar al interlector hasta la sección de tinajas mediante dos caminos. La forma de hacer esto en Squiffy es añadir dos veces en enlace a la nueva sección en este caso mediante:
Allí estaban las [[tinajas]] con los [huesos de los antepasados]. y:
Ni los antepasados si [[ella podía evitarlo]](tinajas).Ese (tinajas) tras el enlace es lo que redirige el enlace a la misma sección.

Ya hemos empezado a abrir tinajas, veremos en el siguiente post cómo pelearnos con la elipsis que hay ahora en el relato.
Categor铆as: Planeta

Tutorial de creaci贸n de ficci贸n interactiva - Huesos (2)

Hace 4 horas 4 mins


Pues ya hemos leído un poco de información general sobre de qué va todo esto, hemos escogido un tema y más o menos una historia. Además hemos escrito un relato corto de literatura tradicional para verificar que la historia puede tener interés y que además nos apetece contarla.
Va siendo hora de escribir algo interactivo. Lo primero que tenemos que escoger es que subclase de relato interactivo vamos a crear. Hay muchas opciones. Por ejemplo podríamos crear un librojuego, y cuando digo librojuego digo librojuego, montando el relato en una página con número de secciones y con enlaces 'manuales'. En definitiva algo muy tradicional que podría ser impreso en papel o distribuido en PDF. Estrictamente hablando esto entra dentro de la ficción interactiva; cuenta una historia y hay cierto grado de interacción con el lector, ya que éste puede más o menos escoger el curso de la acción. Podríamos yéndonos al extremo contrario hacer una recreación de la escena en forma de web-comic o de aventura de point-click en donde unos bonitos gráficos rollo Mignola nos descubren escenas en claro-oscuro de tétricos túmulos y civilizaciones desaparecidas. O finalmente podríamos crear una aventura conversacional tradicional con sus gráficos arriba que fuesen cambiando con la escena. Todo eso sería una ficción interactiva y os serviría para participar en la comp
En este tutorial nos vamos a centrar en dos clases de relatos interactivo: primero haremos una hiperficción a caballo entre la ficción explorativa y el librojuego y luego transformaremos la misma historia en aventura conversacional. Así podremos comparar las herramientas, el proceso y los resultados, y sobre todo podremos destacar las diferencias narrativas que implican ambos subclases de ficción interactiva.
La primera versión requiere de una herramienta de librojuegos/hiperficción, en nuestro caso de una que genere una obra digital, preferiblemente publicable en forma de web.  Hay muchas, pero nosotros usaremos Squiffy que me resulta particularmente sencilla. Squiffy tiene en inglés un aceptable tutorial interactivo y documentación. En español disponemos del post de Incanus, así que no voy a entretenerme demasiado en describir Squiffy. En lugar eso os iré explicando lo que vayamos necesitando poco a poco.
Lo primero que tenemos que saber es que hay 'secciones' indicadas por doble corchete, que son como las escenas que se van presentando a nuestro usuario y 'pasajes' que son textos adicionales que aparecen cuando se pincha en su enlace pero que en el fondo no hacen 'avanzar' la acción. Realmente se trata de una división completamente arbitraria y en la práctica podríais usar el uno por otro, pero es mejor tener en la cabeza que una [[sección]] es una escena o un paso y que un [pasaje] es información adicional.
Lo primero que tenéis que hacer es decidir si vais a usar el editor online o el offline, y en este segundo caso descargarlo e instalarlo -todo lo cual viene explicado aquí. Empezaremos creando una nueva obra a la que llamaremos -evidentemente- 'Huesos'. Y aquí tenemos nuestra temida hoja en blanco que vamos a romper primero de todo poniendo el título de la obra:

@title HuesosEs buena práctica aunque no necesaria en Squiffy poner un punto de inicio e indicarlo en el principio del documento. Esto se hace así:

@title Huesos
@start Inicio[[Inicio]]:
...
Además a mi me gusta mucho que cuando van pasando las escenas se borre el contenido de las escenas anteriores, esto en Squiffy se consigue poniendo una acción de borrado en la 'sección general' que es [[]] que se ejecuta antes de cada sección. Con esto tendríamos:

@title Huesos @start Inicio[[]]: @clear[[Inicio]]:...¿Cómo traspasamos el relato a nuestra obra interactiva? El primer intento sería coger, por ejemplo, el primer párrafo y copiarlo tal cual en la sección de inicio a ver qué pasa, o sea:

@title Huesos
@start Inicio [[]]:
@clear [[Inicio]]:
A ciegas chocó la piedra de chispa con la piedra de sol. Los primeros golpes sólo iluminaron sus viejas manos un instante, pero la paciencia de la anciana le permitió encender la yesca de hilachos carbonizados. Piedra de chispa de las tierras remotas del sur, piedra de sol del remoto norte y yesca que era de andrajos, sí, pero de hilos de la mejor calidad, sacados de su mejor viejo vestido. Lo mejor que había encontrado en su casa, porque nada podía fallar. Lo que tenía que hacer era demasiado importante. Podéis descargar este estadio del relato aquí si estáis muy vagos.

Pero si corréis esto veréis que en realidad no funciona. La razón por la que no funciona es sutil pero importante. Cuando estamos creando ficción interactiva, incluso una menos explícita como la que vamos a hacer, hay que invitar al usuario a que tome las riendas de la narración. Con este primer párrafo estamos haciendo dos cosas que lo alejan de ello, primero estamos creando una protagonista exterior al usuario, es decir no estamos diciendo 'Chocas la piedra' ni siquiera 'Chocaste la piedra', y encima estamos comenzando con una acción de esta protagonista externa. Eso lo aleja aún más de tomar el control, que es algo que no queremos.

Hacer al usuario el protagonista es la opción habitual, así que vamos a mantener a la protagonista externa para que así incluso gente que ya ha hecho ficción interactiva encuentre en este tutorial cosas nuevas de interés. Pero tenemos que empezar con algo que sea más 'descriptivo' e invitar al usuario a tomar la acción por él mismo, aunque sea de forma muy indirecta en este caso.

Yo he reescrito el inicio de esta forma -que podéis descargar de aquí-:

@title Huesos
@start Inicio [[]]:
@clear [[Inicio]]:
Lo más impresionante era el silencio. Lo más terrorífico la oscuridad. En el mundo de los vivos el sonido lo permea todo. Los ruidos son constantes. Los trinos de los pájaros. Las llamadas de las cigarras. Los berridos del ganado. Las voces de a gente. La vida es ruidosa. Hasta los espírtus más cotidianos como el arroyo y el viento se anuncian con el sonido. Sin embargo los muertos viven en el silencio frío y oscuro del túmulo. No es un lugar para los vivos, ni lo era para ella, una anciana.Ahora ya podemos incorporar algo de interacción poniendo algunos pasajes y recuperando la acción descrita en el primer párrafo del relato y parte de uno de los siguientes, quedando de esta forma -se puede descargar de aquí-:
@title Huesos @start Inicio [[]]: @clear [[Inicio]]: Lo más impresionante era el silencio. Lo más terrorífico la oscuridad. En el mundo de los vivos el sonido lo permea todo. Los ruidos son constantes. Los trinos de los pájaros. Las llamadas de las cigarras. Los berridos del ganado. Las voces de a gente. La vida es ruidosa. Hasta los espírtus más cotidianos como el arroyo y el viento se anuncian con el sonido. Sin embargo los muertos viven en el silencio frío y oscuro del [túmulo]. No es un lugar para los vivos, ni lo era para ella, una [anciana].[túmulo]: A ciegas chocó la [piedra de chispa] con la piedra de sol. Los primeros golpes sólo iluminaron sus viejas manos un instante, pero la paciencia de la anciana le permitió encender la [yesca](piedra de chispa) de hilachos carbonizados. Sopló con suavidad la yesca prendida, hasta que tuvo en su mano encallecida una minúscula llama roja con la que pudo encender la lámpara de aceite. Levantó la luz sobre su cabeza, sintiendo dolor en el hombro que nunca se le había curado del todo. Allí estaban. Unas detrás de las otras, algunas en hileras, la mayor parte amontonadas de forma desordenada. Allí estaban las tinajas con los huesos de los antepasados.  [piedra de chispa]: Piedra de chispa de las tierras remotas del sur, piedra de sol del remoto norte y yesca que era de andrajos, sí, pero de hilos de la mejor calidad, sacados de su mejor viejo vestido. Lo mejor que había encontrado en su casa, porque nada podía fallar. Lo que tenía que hacer era demasiado importante. [anciana]: La piel estaba tan arrugada como la tierra seca del verano y tan fina que parecía que los huesos, doloridos y cansados, podían verse a su través. Muy pronto su lugar sería en aquel túmulo junto con los antepasados, pero aún no, aún tenía un último trabajo que completar.
En la siguiente entrega veremos los problemas que conlleva la existencia de muchas tinajas y cómo podemos convertir algunas de las elipsis del relato en una interacción que sea satisfactoria.

Categor铆as: Planeta

(c)1998-2015 CAAD

Todos los contenidos de esta web son propiedad de CAAD. Las colaboraciones son propiedad de sus respectivos autores.