Planeta Aventurero

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

CAAD 53

Mié, 23/06/2021 - 05:08

Ya está disponible el CAAD 53, con un récord de 124 páginas de nuevos contenidos.

Continúa la serie sobre la aventura internacional, en esta ocasión la aventura en francés, además de un completo informe sobre el sistema de autoría en línea Adventuron, entre otros artículos.

Más detalles en su ficha:
http://www.caad.es/fichas/caad-53.html

Enlace para descarga:
http://www.caad.es/sites/default/files/descargas/Fanzines/Otros/CAAD53.pdf

Categorías: Planeta

Corrigiendo el bug de HABLA en DAAD para Spectrum.

Mié, 23/06/2021 - 05:08

El mundo de las aventuras conversacionales se halla dividido desde los felices 80 en dos hemisferios que se dan la espalda el uno al otro: en uno lo común es manejar la comunicación con los “personajes seudo-inteligentes” mediante el comando DECIR seguido de un entrecomillado con la frase exacta que le dices al personaje (DECIR a PERSONAJE “bla-bla-bla”), en el otro el protocolo consiste en usar la fórmula HABLAR con PERSONAJE, pudiendo refinarse con la variante HABLAR con PERSONAJE sobre TEMA para afinar más en el asunto de la conversación en sí. El primero es común en los sistemas basados en condactos, como en la saga de herramientas de Gilsoft (Quill, PAWS, DAAD), especialmente optimizadas para funcionar así, mientras que el segundo se hizo habitual en las obras de Infocom, dada su mejor adaptación a los sistemas de programación orientada a objetos y es por tanto el que se usa comúnmente hoy en día en lenguajes como TADS, Inform, etc…
Sobre las posibilidades de evolución y expansión del segundo se habla largo y tendido en el capítulo dedicado a los personajes del libro Creating Interactive Fiction with Inform 7 de Aaron A. Reed. A su vez se puede leer una comparativa con los pros y contras de uno y otro en este reciente post del blog de Ricardo Oyon.

Sistemas de conversación en el libro de Aaron A. Reed.

Lo cierto es que no hay ninguna razóin técnica para circunscribir exclusivamente ambas tradiciones a un tipo de sistema de desarrollo u otro. Es perfectamente posible “cambiarlas de entorno” a gusto del autor. Así, han sido muchos los casos de aventuras hechas con sistemas de condactos que se decantan por la fórmula de HABLAR con PERSONAJE, pero en el caso de las plataformas de 8 bits se han encontrado sistemáticamente con un pequeño escollo: la incompatibilidad del uso de la forma imperativa de verbo HABLAR (“HABLA”) con los sistemas existentes de asociar los verbos acabados en LO, LA, LOS, LAS con el objeto de la orden inmediatamente anterior.

Estos sitemas, que permiten el uso de secuencias de órdenes como EXAMINA LIBRO y COGELO no generan ningún conflicto en sus equivalentes ingleses basados en los pronombred IT o THEM (EXAMINE BOOK and TAKE IT) pero en los sistemas españoles de la época clásica que lo implementaban (salvo error u omisión: PAWS y DAAD) tenían un efecto secundario inesperado al entrar en juego la orden HABLA. Si la secuencia de comandos del jugador era algo parecido a EXAMINA LIBRO y HABLA con PERSONAJE, la terminación en LA del imperativo HABLA activaría automáticamente el sistema de tal modo que el parser entendería que en la segunda órden el jugador está intentando hablar con el libro. Este “bug” es ya un “viejo conocido” entre los usuarios de PAWS, pudiendo rastrearse menciones al mismo en los manuales de las primeras aventuras del Doctor Van Halen de Josep Coletas allá por 2004, aunque no hay que descartar que las haya anteriores.

El bug de HABLA en el manual del primer Dr. VanHalen.

Es un hecho inapelable que el sistema funciona codificado “a fuego” en las entrañas del parser de PAWS e igualmente se halla en el interior del código de DAAD que maneja el funcionamiento del condacto PARSE. En principio eso significa que no hay manera de controlar este comportamiento por el autor de la aventura salvo acciones drásticas como usar condactos para eliminar todo el sistema de raíz, una solución claramente insatisfactoria porque supone prescindir totalmente de una característica del sistema simplemente porque falla en un caso concreto. Lo cierto es que el único modo de soslayar el problema pasa inequívocamente por hacer un hack al intérprete.

Vamos a proponer un modo de hacerlo en el caso del intérprete de DAAD para Spectrum. En otros intérpretes de DAAD o en el del PAWS podría aplicarse seguramente un metodo parecido salvando las diferencias de direcciones concretas de memoria en cada caso, pero no tengo tiempo material de ponerme a investigarlo
Para “destripar” el interior del intérprete de Speccy vale cualquier desensamblador, pero por sus facilidades para hacer maniobras de ingeniería inversa he usado SkoolKit, un conjunto de scripts de Python especializado en “meter mano” a software de Spectrum y ponérselo facilito a quienes quieran analizar códigos fuente. A su vez aprovechamos que en DAAD la parte de código que queremos analizar se halla “aislada” en las rutinas que se ejecuten al invocarse el condacto PARSE (en el proceso 1 siguiendo la plantilla por defecto de DAAD) para añadir un pequeño proceso de “debug” que permita echar un vistazo al estado de las banderas justo antes y después de éste.
En las imágenes se puede ver que llamamos a un proceso 12 que nos imprime el estado de unos cuantos flags estratégicos (el grupo 33-36 y 43-47, ver el manual para sus usos concretos). Mediante este truco pudimos determinar que PARSE, al encontrarse con un verbo acabado en LO, LA, LOS, LAS adjudica al flag 34 (nombre) el valor del nobre de la acción anterior y a su vez coloca en 44 (NOUN2) el valor que hubiera correspondido al nombre de la entrada del jugador si no se hubiera detectado la terminación. Esto último es útil para secuencias de órdenes del tipo: EXAMINA LIBRO y DASELO a PERSONAJE, donde en la segunda orden el nombre es el nombre de la primera y el que hubiera sido el nombre original pasa a ser el segundo nombre o NOUN2. Si hubiera habido un NOUN2 en el input original este pasa a ser ignorado (tomen nota del detallito los autores de intérpretes alternativos ).

A su vez con la opción de monitorear la memoria del programa durante la ejecución disponible en la práctica totalidad de emuladores de Spectrum es fácil determinar las posiciones exactas de memoria que ocupan las banderas o flags del DAAD. En el caso del Spectrum los 256 flags están entre 32540 y 32795. Sabiendo ésto es fácil deducir que los flags de verbo (33), NOUN (34) y NOUN2 (44) están respectivamente en 32573, 32574 y 32584.

Entra en acción SkoolKit. Podemos rebuscar entre las rutinas del código desensamblado instrucciones que afecten a esas direcciones de memoria o, en su defecto, al valor indicado por el registro IX del procesador más el número de flag, ya que en DAAD de Spectrum, IX almacena la dirección de inicio de estos. Ahora ya es cuestión de ensayo y error, paciencia, y algo de suerte para encontrar algo que resulte significativo para nuestro propósito. Tirando del hilo pronto aparece esta rútina que vemos en la imagen, con comentarios añadidos por mí aprovechando las facilidades de SkoolKit:

SkoolKit destripando a DAAD.

En ella podemos ver que en cierto momento de la ejecución, el parser mira en la zona de memoria donde ha almacenado el verbo del input del jugador y examina desde su final hacia atras. Si los caracteres que encuentra allí se corresponden con LO, LA LOS o LAS, pone una marca en el registro A, iza el flag Z del procesador, y el programa se bifurca hacia otra parte.

Monitoreando, es posible determinar que en ese preciso momento el flag 33 (verbo) ya está establecido, no así los referentes a NOUN, NOUN2, adjetivos y adverbio que continúan en 255 (255 es el valor al que se resetean en cada turno o sentencia lógica). Es fácil deducir que la asignación de estos se hará de una manera si no se ha detectado terminación y de otra en caso contrario. Es… ¡un buen sitio donde intervenir!

Podemos sustituir las instrucciones de salto marcadas en la imagen por una llamada a una pequeña rutina creada expresamente para la ocasión que colocaríamos en algún lugar libre de la memoria. Normalmente éste sería alguna posición indeterminada entre el final de la base de datos del juego y el comienzo de la de los gráficos, que es la zona de memoria que DAAD deja libre en Spectrum, pero eso significaría que tendría que ser una ubicación distinta en cada juego, ya que nunca sabremos a priori donde empezará y terminará ese espacio. Como la rutina va a ser en realidad pequeñita podemos buscarle un sitio estable razonablemente seguro que puede ser un puñado de bytes por debajo del comienzo del intérprete, concretamente la dirección 24560. La única precaución a tener en cuenta en este caso es que el cargador de BASIC del juego ponga la habitual instrucción CLEAR un byte más abajo, es decir 24559 en lugar del 24575 original.
Así que, como decía, sustituimos esas dos instrucciones del código DAAD original por un JP 24560. Las dos instrucciones juntas ocupaban 5 bytes y nuestro JUMP sólo 3 así que los 2 bytes restantes los ponemos a 0. La rutina a la que llamamos hará algo como esto:

ORG 24560 JP NZ, 27449 LD A, (32573) CP 31 JP Z, 27449 LD A, 6 JP 27677

Veámoslo detenidamente. Hemos tomado nota como si entráramos en el molino del Quijote, o sea, cuidadosamente :-p, del estado de los flags del procesador en el momento de llegar al punto en que nos desviamos del código original. En este se levanta el flag Z si se ha encontrado la terminación verbal (y se carga el registro A con 6). Si ése es el caso, el código se desvía a 27677 y si no (no hay terminación) el desarrollo normal del programa sigue por 27449.

En nuestro hack primero mandamos la ejecución a 27449 si no está puesto el flag Z, o sea, le decimos que continue con normalidad porque no hay nada de LAS ni LOS.

A continuación cargamos en A el valor de 32573, donde sabemos que está el valor del verbo.

Comparamos con 31, que es el valor por defecto en la plantilla de DAAD para el verbo HABLAR. Ésto, por supuesto, será cierto en una mayoría de los casos, pero también podría darse perfectamente el caso de que en un juego concreto el verbo HABLAR tenga cualquier otro valor en la sección de vocabulario (/VOC) de su código fuente. Para esta situación bastará con que el cargador BASIC de la aventura haga, tras cargar el intérprete, un POKE 24567, valor (siendo valor el número que HABLAR tenga en VOC).

Si el verbo era, efectivamente HABLAR (31 o el valor que fuera en su caso) podemos afirmar por eliminación y con un 100% de seguridad que se ha detectado un LA y que el verbo era HABLAR, por lo que sabemos a ciencia cierta que, de seguir el flujo normal del programa, se produciría el cambio de NOUNs. Por eso le decimos que de estar izado el flag Z se vaya a 27449, donde procesará la entrada del jugador como si la terminación NO se hubiera detectado.

Y en caso contrario podemos asumir también con seguridad que se ha encontrado la terminación, pero el verbo NO era HABLAR, así que, tras cargar A con 6 como hubiera hecho en la rutina original, le decimos que vaya a 27677, donde procederá a hacer los cambios de NOUNs igual que hubiera hecho normalmente.

Tenéis el intérprete de DAAD de Spectrum con todas estas modificaciones disponible en esta DESCARGA.

En el archivo ZIP enlazado hay:

-Un binario con el intérprete modificado tal cual, sin ningún tipo de cabecera.
-Una versión alternativa del disco nº 33 de la descarga original del DAAD, el que contenía el intérprete de Spectrum en un disco de Spectrum +3, en la que el intérprete original y el cargdor BASIC han sido sustituidos por la versión hackeada.
-Una imagen de cinta de Spectrum TAP con un pequeño ejemplo.
-Un fichero de texto con las indicaciones básicas para su uso.

El primer juego de DAAD español para Spectrum en incluir la modificación es Torreoscura, de Bieno Marti, cuya versión de Spectrum actualizada ya está disponible en su web habitual: AQUÍ. Podéis probar nada más empezar con PULSA TIMBRE y HABLA con RECEPCIONISTA, algo que no funcionaba en la primera versión salvo que utilizaras el infinitivo HABLAR.

Torreoscura ya entiende HABLA en imperativo.

Y por lo que he podido probar hasta el momento, el hack es efectivo para órdenes tanto del tipo HABLA con PERSONAJE como de la modalidad HABLA con PERSONAJE sobre TEMA. Sabiendo cómo funciona el proceso en Spectrum sería posible buscar el modo de hacer lo propio en PAWS y en el resto de intérpretes de DAAD (pero, al contrario que en el clásico de los Rolling, el tiempo, eer… no está de mi lado ).

Categorías: Planeta

Reseñas y clasificaciones en Librojuegos.org

Mié, 23/06/2021 - 05:08

Ya he citado en este blog al sitio Librojuegos.org debido a su rol preponderante en la difusión y generación de una de las ramas más antiguas de la ficción interactiva: los librojuegos. En esta oportunidad destacaré una página de compilación creada por el sitio para toda la producción interactiva según sus reseñas en esta web desde el año 2013 a la fecha (y se dice pronto).
Se trata de una estupenda referencia para quienes estén entrando en este mundillo de los librojuegos o bien ya se han fogueado en el género y desean encontrar material más específico o de algún sub género en particular.
El listado incluye no sólo librojuegos, encontrándose además reseñas para cómics, novelas ramificadas, juegos de mesaaventuras de texto y videojuegos: todos ejemplos del amplio universo de posibilidades creativas en las que se ha plasmado la ficción interactiva, que no se agota meramente en el texto narrativo.
Las obras reseñadas están en español en su mayoría pero también hay aportaciones en otros idiomas, para quienes quieran explorar más allá de su lengua nativa.
En definitiva, una completa y utilísima concordancia: ciertamente para el novato en la materia pero mucho más útil áun para el que cree que del tema ya lo ha visto todo...
Categorías: Planeta

CAAD 52

Mié, 23/06/2021 - 05:08

Tras una larga gestación, está listo el segundo ejemplar de la Tercera Edad del CAAD, con el número 52, de octubre de 2020. 108 páginas, edición en color y mejor diseño aún que el número anterior.

Aquí está la ficha del fanzine:

http://www.caad.es/fichas/caad-52.html

Y el enlace de descarga directa, aquí:

http://www.caad.es/sites/default/files/descargas/Fanzines/Otros/CAAD52.pdf

La renovada revista presenta contenidos muy interesantes, como un especial sobre las Visual Novels en Japón, el híbrido de aventura gráfica Oniria Crimes, y una crítica en dos puntos de vista de Torre Oscura. Entre otros contenidos.

Categorías: Planeta

CAAD 52: nuevo número publicado

Mié, 23/06/2021 - 05:08


Se ha publicado un nuevo número del fanzine del CAAD.
El lector aficionado encontrará los contenidos habituales de noticias, anuncios de proyectos, así como reportajes (novelas visuales japonesas, en esta oportunidad) y análisis de trabajos interactivos, incluyendo guías de solución.
Adicionalmente, este número trae indicaciones para desarrolladores sobre cómo colaborar con la revista, lo que es buena cosa ya que un fanzine, además de ser una excelente vitrina para un autor, rara vez es fruto de un esfuerzo individual.
Una buena noticia para los que quieran colaborar y estar al día con el mundillo de la ficción interactiva.

Categorías: Planeta

Microdédalos: librojuegos compactos

Mié, 23/06/2021 - 05:08


En esta oportunidad quiero hacer reseña de la producción interactiva de una página hermana en esto de la literatura interactiva: librojuegos.org.
Si bien el librojuego no es tópico habitual en este blog, lo cierto es que históricamente es la primera forma masiva de literatura no- lineal. Los lectores de "cierta edad" recordarán series como "Elige tu propia aventura", "La búsqueda del Grial" o la señera "Lobo Solitario", previamente reseñada en este blog.

De hecho, con el advenimiento del hipertexto, el librojuego ha evolucionado exitosamente desde el medio impreso a las plataformas interactivas, ya que prácticamente cualquier dispositivo que usa un navegador puede desplegar un librojuego digital. Quienes sigan mi obra interactiva sabrán que hablo desde la experiencia, habiendo ya publicado a la fecha un par de trabajos de esta guisa.
Dicho esto, el mundo impreso sigue activo para el librojuego y un excelente ejemplo son estos Microdédalos. Como apunta su web:
Creados de una idea original de Juan Pablo Fernández y Fernando Lafuente, Microdédalos consiste en una colección de juegos narrativos de una sola página impresa por ambas caras en forma de tríptico. Cada título ofrece una aventura de unas 40 a 80 secciones que solo requiere de lápiz y goma para jugar, y que puede llevar de 30 a 60 minutos completar con éxito dependiendo del jugador y de la propia aventura. Aunque no se necesitan dados, los títulos incluyen un sistema de juego basado en el azar controlado, el cual permite al jugador manipular sus elementos y mejorar su ejecución con cada nueva partida
Para su disfrute, pueden descargarse desde la plataforma LEKTU: hay ya 6 números en la colección, siendo el primero gratuito y los demás disponibles previo un muy módico pago.
En definitiva, Microdédalos es una excelente oportunidad de asomarse a la ficción interactiva, para aficionados, novatos y para todos quienes quieran adentrarse en esta maravilla de los librojuegos.

Categorías: Planeta

Ectocomp 2020: una comp de terror

Mié, 23/06/2021 - 05:08


Cómo no solo se vive de blogs, portales y fanzines en esto de la promoción y difusión de relatos interactivos, tenemos la feliz noticia de que está en marcha la Ectocomp en su edición 2020.
Esta competencia temática tiene por objetivo la publicación y promoción de ficción interactiva de temática de horror. Cómo dice su página, la idea es "crear juegos de ficción interactiva de terror, durante todo el mes de Octubre, para poder disfrutarlos en las festividades de finales de mes e inicios de Noviembre, como Halloween, el día de todos los santos o El día de los muertos. Esto es, los juegos deben de estar listos ANTES del 31 de Octubre."
Existen 2 categorías de aportes:

  • La Petite Mort, para aquellos que quieren escribir un juego de forma muy muy rápida, en 4 horas o menos
  • Le Grand Guignol, para juegos, que por cualquier motivo, han sido escritos en más de 4 horas
Además, en esta edición hay 5 subtemas opcionales para inspiración:
  • Aventura terrorífica, la temática habitual de la ECTOCOMP:lo que no encaje en ninguna de las siguientes categorías
  • Halloween. Basa tu juego en las festividades de Halloween
  • Día de Los Muertos. Un tributo a la cultura y festividad Mejicana, ambientado en su cultura, folclore y mitología
  • Todos los santos, que conmemora a los seres queridos que hemos dejado atrás
  • Noche de difuntos, una noche especial en algunos países Europeos
La ocasión está servida, pues, para crear y recrear en esto de la ficción interactiva... y de paso darnos un buen susto, que este 2020 ha sido demasiado tranquilo...
Categorías: Planeta

ECTOCOMP 2020

Mié, 23/06/2021 - 05:08

Ha comenzado de forma oficial #ECTOCOMP2020

El concurso de Ficciones Interactivas de #horror #terror #fantasmal #diadelosmuertos #halloween

Crea un juego de texto durante todo Octubre, y envíalo antes del 31 de Octubre.

Los juegos ya están disponibles.

Hay 3 solo este año: Un Twine sobre la Guerra Civil, una ucronía del Siglo de Oro Español, y una fábula japonesa sobre el Shodo y los Yōkai japoneses.

Puedes jugar, votar y comentar los participantes.

https://itch.io/jam/ectocomp-2020

La ECTOCOMP viene en dos modalidades. La Petite Mort, para juegos desarrollados durante 4 horas o menos. Y Le Grand Guignol, para juegos desarrollador durante más de 4 horas.

Más detalles a continuación...

Se pueden presentar juego en inglés y en español.

Este año hay 2 novedades importantes. Los juegos se pueden enviar durante todo el mes de Octubre, pero solo estarán disponibles el día 31 para jugar.

El periodo de votación se reduce desde el 31 de Octubre, hasta el 15 de Noviembre. Esto se hace para no coincidir con el fin de votaciones de la IFComp.

Consulta las reglas completas en la web oficial.

Categorías: Planeta

Creepyland: Deadworld

Mié, 23/06/2021 - 05:08

Soy nuevo en lo que a hacer historias interactivas se refiere, pero soy un escritor con muchas ideas originales y mucha imaginación a la hora de crear una historia, no me considero un gran escritor pero puedo decir que dudo que hayan leído algo como mi historia y ahí es donde quería llegar, tengo un libro en formato digital llamado Creepyland:Deadworld el cual tiene 14 capítulos y más de 33 mil palabras lo que conforman unas 2 horas mas o menos de lectura dependiendo de quien lee claro, quisiera saber si alguien me ayudaría a convertir mi libro cambiando cosas y demás para que fuese una historia interactiva con toma de decisiones y cosas por el estilo, ahora mismo estoy trabajando en la secuela de esta misma historia y acá os dejo la portada hecha por mi mismo, quien quiera saber más al respecto o quiera ayudar puede decírmelo por mensajes privados. Muchas gracias por su atención.

AdjuntoTamaño Portada Creepyland Deadworld II192.97 KB
Categorías: Planeta

ScummVm con soporte para aventuras conversacionales.

Mié, 23/06/2021 - 05:08

ScummVm versión 2.2.0 "Fantasía interactiva" (27-09-2020)

Está lista una nueva versión de ScummVM. ¡Este es emocionante porque estamos adoptando juegos de aventuras desde 1976! Así es, el famoso Colossal Cave Adventure , el primer juego de ficción interactiva, ahora es compatible con ScummVM.

Se agregó soporte para juegos de ficción interactiva basados ​​en los siguientes motores:
ADRIFT (excepto la versión 5)
AdvSys
AGT
Alan 2 y 3
Arquetipo (recientemente reimplementado para Glk de las fuentes originales de Pascal)
Hugo
JACL
Level 9
Magnetic Scrolls
Quest
Scott Adams
ZCode (todos los juegos de ZCode excepto los juegos de la versión gráfica 6 de Infocom)

Actualmente, se detectan y admiten más de 1600 juegos.

Página de descargas para muy diversos s.o. https://www.scummvm.org/downloads

Categorías: Planeta

Publicando en itch.io: juegos indie para todos

Mié, 23/06/2021 - 05:08
Los que hayan visitado últimamente el blog o mi página web habrán notado el recuadro promocional para itch.io que da tema a este artículo.
Para cualquier autor de juegos amateur una de las consideraciones posteriores a la creación es la difusión de su trabajo. Si bien se podría argumentar que en estos días de motores de búsqueda y redes sociales eso "es cosa hecha", la realidad es más bien diferente, máxime si el género creativo de nuestra ¿preferencia? no es exactamente masivo o de fácil consumo, como es el caso particular de la ficción interactiva.
A estos efectos, lo deseable es usar una plataforma en línea con el mayor alcance posible, especializada en juegos y ojalá gratuita, ya que (al menos en mi caso) "de esto no se vive".
Para todo ello itch.io es la respuesta ideal, pues no sólo es un portal conocido y reconocido por la afición, sino que permite crear a costo cero "mini-sitios" para cada trabajo a publicar con una facilidad pasmosa, permitiendo, de paso, armar casi sin esfuerzo un catálogo de autor. Por si eso fuera poco, itch.io publica mediante acceso adaptable, modificando su despliegue al tamaño de la pantalla de turno, sea ésta de teléfono, tableta o computador personal.
Por último, aparte de entregar estadísticas de uso/acceso a nuestras publicaciones, itch.io implementa, con un costo mínimo, la posibilidad de recolectar contribuciones monetarias ya sea que los juegos sean publicados en modo gratuito con pago voluntario ("pay what you want") o sean puestos con acceso previo pago. Quien esto escribe sabe que pretender enriquecerse con la ficción interactiva tiene las mismas posibilidades de generar ecos tirando un pétalo de rosa a un precipicio ;-) así que está publicando (como siempre) en forma gratuita, dejando al interesado la posibilidad (por improbable que esto parezca) de dejar una contribución voluntaria "si acaso le pluguiera a vuestra merced".
Se abre, en definitiva, una nueva ventana para la difusión masiva de trabajos de ficción interactiva, lo que siempre son buenas noticias
Categorías: Planeta

Publicado Hiperrelato "Memoria"

Mié, 23/06/2021 - 05:08
He publicado "Memoria", un nuevo relato interactivo de Sci-Fi, en modalidad hiperrelato tipo libro-juego y es el segundo relato interactivo que he desarrollado con la herramienta Squiffy.

En el relato, has naufragado en un planeta extraño, de vastas llanuras... y con despiadados Cazadores al acecho. ¿Podrás aprender de La Gente que no basta con 'sólo' sobrevivir?

Esta historia es la segunda parte del ciclo de relatos de "La Gente", al que pertenece "El Protector".

Pueden disfrutarlo directamente en su página web (requiere habilitar JavaScript) o descargarlo en ZIP para leerlo off-line.

Aprovecho de agradecer la labor de mis testers, Fernando Gregoire y Jade, e invito a la comunidad a enviarme sus comentarios por este medio, en el foro del CAAD, en su ficha del CAAD, en itch.io, en su página de facebook... o como gusten.
Categorías: Planeta

Más ficción interactiva para Android

Mié, 23/06/2021 - 05:08

Con el ánimo de hacer más visible y accesible a todos mi ficción interactiva, he portado a fi.js varias de mis aventuras. Al ser el resultado básicamente una pequeña web, las he podido subir (gracías a Cordova), a la tienda de Google para dispositivos móviles.

Baltasar en Google Play


Marco Polo vuelve de su viaje al lejano Oriente, pero el retorno a Venecia será mucho menos celebrado de lo que el espera.

La última de todas ellas ha sido Marco Polo, que en realidad también se puede jugar cómodamente on-line.

Categorías: Planeta

IFPUBS: una biblioteca de referencia para la aventura en español

Mié, 23/06/2021 - 05:08
Como no sólo de aventuras y fanzines vive este mundillo de la aventura conversacional, en esta ocasión traigo a este blog algo que nunca está demás para el jugador o autor de ficción interactiva: material de referencia en forma de libro, descargable en formato de libro electrónico, como mandan estos tiempos.
Si bien Internet está repleto de material didáctico, el tenerlo compilado en forma de libro y reunido por tema es una verdadera bendición para el que quiera iniciarse en esto de la ficción interactiva.
Esta labor la cumple perfectamente la página de IFPUB, que nos ofrece una amplísima biblioteca de cuanto uno pueda necesitar para disfrutar de este género, incluyendo tanto teoría como práctica de sistemas de autoría vigentes o "retro", para aventura conversacional tradicional, librojuegos (de papel o hiperrelatos) o juegos de rol, tutoriales, artículos de revistas o académicos... en fin, un cuanto hay de lo que existe para hacer y disfrutar con la ficción interactiva.
¿A qué esperan? Pasen, lean... ¡y adelante con la aventura!
Categorías: Planeta

Torreoscura

Mié, 23/06/2021 - 05:08

De la mano de Bieno Marti, cuyas anteriores incursiones en el terreno de la aventura conversacional (Mansión Kali I y II, El Prisionero…) son sobradamente conocidas, nos llega Torreoscura. Ai igual que en anteriores ocasiones el juego ha sido desarrollado simultaneamente en Quill para Commodore 64 por el propio Bieno, para Amstrad CPC por Miguel Ángel Silva (MiguelSky) y para ZX Spectrum por vuestro humilde y seguro servidor. Y a diferencia de ellas, esta vez el port para Spectrum no se ha hecho usando la herramienta InPAWS (para producir un juego PAWS) sino que se ha re-escrito usando DAAD, lo que ha propiciado que además de Spectrum hayan salido versiones para PC MS-DOS (CGA), Amstrad PCW y MSX. Como todavía no nos parecía suficiente, una versión adicional para ORIC ha sido realizada gracias a Chema Enguita.

La aventura, que tiene ese toque de ambientación a caballo entre el misterio y el gótico que encantará a los seguidores de las obras de Bieno, comienza con un protagonista que, siguiendo la invitación de un antiguo amigo cuyo contacto perdió hace tiempo, realiza una escapada de vacaciones a un pueblo recóndito. Nada más presentarse allí se encuentra con que su amigo no aparece por ninguna parte… y, por supuesto, empiezan a pasar cosas raras…

Rompiendo también con la tradición de las aventuras anteriores de Bieno, en esta ocasión las ocasionales pantallas gráficas hechas con bloques PETSCII han pasado a ser gráficos vectoriales realizados con el Illustrator, la herramienta de Gilsoft hecha expresamente para añadir gráficos a las aventuras realizadas con Quill (que a su vez sentaría el modelo para las herramientas gráficas de PAWS y DAAD). Como suelen remarcar todos los que han usado alguna vez alguna de las encarnaciones de este sistema de gráficos de la familia Gilsoft, su interfaz de usuario es más fea que pegar a mamá, pero en el fondo hacerse con ella no requiere más esfuerzo que ser consciente de que no estás dibujando a mano alzada como con cualquier programa de dibujo común, sino que estás introduciendo un listado rigurosamente secuencial de órdenes gráficas, lo que hace que todo tenga sentido (aunque no lo haga más bonito ). Hay que decir que el uso que ha hecho Bieno Marti de un sistema que, mayormente, se limita a una sucesión de líneas y rellenos con tramas, ha sido bastante ingenioso y sabiamente aprovechado.

Como curiosidad os enseñamos alguno de los primeros ensayos gráficos desechados. El primero es la primera aproximación al gráfico de la habitación del hostal. El segundo es la recepción del mismo hostal en una primera interpretación hecha por Igor Errazking, una maravillosa locura inspirada en la estética de las películas de expresionismo alemán en la que no se pudo continuar por falta de tiempo del colaborador.


Finalmente Bieno se encargó en exclusiva de la realización de los gráficos en C64, lo que llevó a una de las partes más laboriosas de todo el proceso de creación, que fue portar los susodichos gráficos a los otros sistemas. A diferencia de lo que sucedería posteriormente con DAAD, en Quill no hay (o no se llegó a lanzar) ninguna herramienta de conversión entre los gráficos de un sistema y otros, por lo que hubo que realizar un montón de cosas “a mano”. Para Spectrum había que convertir los gráficos de Quill de C64 a gráficos de DAAD de Spectrum teniendo en cuenta que la pantalla de C64 tiene una resolución horizontal notablemente superior (64 bytes mayor, el equivalente a 8 caracteres). Entre la disyuntiva de intentar hacer una versión reescalada para ZX o cercenar parte de la imagen en cada gráfico lo último fue lo más viable y acertado. Algunas pantallas se prestaban bastanta bien a prescindir de las partes laterales, o a hacer un “corte” en alguna parte interior donde quedase hueco. Con ello en mente, el proceso consistió en tomar nota manualmente de cada órden gráfica de C64, pasar sus coordenadas a las equivalentes de la pantalla de Spectrum (con un oportuno script de Python) e introducir manualmente la órden con su código y sus nuevas coordenadas en el editor de gráficos de DAAD para Speccy. Nada difícil, aunque desde luego aburrido de narices. Todo fue cuestión de dedicarle sin prisa ni ansia un rato cada día poniendo una buena música de fondo y sin obsesionarse por acabar

Con la intención de evitar que la conversión de los gráficos de C64 a Amstrad CPC fuera tan tediosa como en Spectrum, pensamos en buscar un modo de automatizar el proceso. Aparentemente sería más sencillo dado que el tamaño y resolución de sus respectivas pantallas es el mismo así que no habría que preocuparse por andar buscando areas “recortables” lo que haría la conversión algo más directa. Las facilidades terminaban ahí, claro, ya que aunque las pantallas tengan igual tamaño, el hardware gráfico deñ C64 y del CPC se parecen como un huevo a una castaña. Aunque el formato en que están internamente codificadas las órdenes gráficas en uno y otro tiene puntos en común, también tiene otros aspectos en que es sustancialmente distinto (ejes de coordenadas que van en distinta dirección, entramados cuyo manejo no tiene nada que ver en un caso y en otro…) así que finalmente hubo que:

-Hacer ingeniería inversa del formato de gráficos de C64.
-Hacer ingeniería inversas del de CPC.
-Crear un script de Python que convirtiese del uno al otro.

Como el destino tenía escrito en letras de fuego que nada relacionado con los gráficos en Torreoscura tenía que ser sencillo y directo pronto nos encontramos con un dilema adicional. Trabajábamos con las ultimísimas versiones conservadas tanto de Quill como de Illustrator para Amstrad CPC, pero por más que rebuscábamos en todas las opciones disponibles, no había ninguna aparente manera de conseguir en éste sacar los gráficos a pantalla partida como en el caso de C64. El único modo era a pantalla completa, es decir, en cada localidad sale el gráfico ocupando toda la pantalla hasta que pulsas una tecla, se borra, y ya entonces sale el texto con la descripción del lugar. Y sin embargo, como MiguelSky hizo notar rápidamente, hay evidencia histórica de una buena cantidad de aventuras hechas con Quill para CPC que sí tienen los gráficos a pantalla partida (una ventana gráfica en la parte superior de la pantalla para el dibujo y otra en la inferior para los textos), como, por poner tan sólo un ejemplo entre muchos, el Murder Off Miami de Delta 4 (una de mis obras clásicas favoritas por basarse en un antecedente de la FI de los años 30 del siglo pasado, pero esa sí que es otra historia…). En el Illustrator de C64 los gráficos a pantalla partida venían de serie en su última versión, en Spectrum se conseguían mediante utilidades hechas por terceros (The Patch), pero no había rastro del método utilizado en los juegos de CPC…

Así que tuvimos que crear el nuestro propio. Siguiendo la pista sugerida por MiguelSky tomamos nota de las llamadas a rutinas del sistema que manejan ventanas en CPC en el desemsamblado del intérprete de Quill e, investigando, localizar las que nos interesaba desviar a un hueco en la memoria libre donde pusimos llamadas a otras que a su vez dividían la pantalla del modo que queríamos para que la versión de CPC tuviese sus gráficos a pantalla partida igual que las demás. Una “ñapa” casera muy poco elegante pero que pasa totalmente desapercibida para el jugador, quien simplemente verá que en CPC los gráficos salen igual que en el resto de versiones sin preocuparse de los malabarismos que tuvimos que hacer para lograrlo.

Como no podía ser de otro modo, una vez que el trabajo ya estaba hecho se descubrió que, por existir, ya existía la herramienta que buscábamos. Las últimas ediciones de Illustrator para CPC incluían una utilidad llamada The Splitter de la que lo único que se conserva en este momento son unas fotos de las instrucciones y que, como su nombre sugería, servía para partir la pantalla de los juegos de Quill. Significativamente el programa está ausente en todas las versiones preservadas de Illustrator conocidas en la red hasta la fecha. En el momento de escribir estas líneas no se ha perdido la esperanza de que Tim Gilberts lo encuentre entre sus discos viejos para que, si hay suerte, los próximos en hacer una aventura en Quill para CPC no tengan que hacérsela ellos mismos como nosotros

Bastante menos complicado fue conseguir gráficos para la versión PCW, ya que estos no son más que un copia-pega de pantallazos de la versión de Commodore convertidos al formato de Degas PI1 usado habitualmente en Aventuras AD para pasarlos por la herramienta DG en su versión de MS-DOS. Como un paso intermedio del proceso era tener los gráficos para PC CGA, pues aprovechando que el Pisuerga pasa por Valladolid, también salió una bonita versión para PC MS-DOS

La pantalla de carga es original de R. Internacional excepto en las versiones de Spectrum y MSX, en las que las utilidades habituales de conversión automática de formatos daban unos resultados bastante pobres, por lo que optamos por sustituir el motivo de “atardecer” original por un nuevo gráfico “nocturno”, más apropiado para sus paletas de colores, creado desde cero.

La versión de C64 incluye sendas piezas musicales creadas por Barón Ashler (de Kabuto Factory), una para oir durante la carga del juego en cinta y otra que suena de fondo durante la aventura. En Spectrum se usó la melodía de carga durante las pantallas de presentación de cada una de las 2 partes del juego y la música de fondo durante el resto de la aventura, como en el original. Ensamblar la música con el juego de Quill en C64 fue obra de Karmic, mientras que para Speccy (sólo 128k, como es habitual) usamos el motor musical CHIPnSFX de CNGSoft, al que se llama desde el gestor de interrupciones interno del propio DAAD, una combinación que ha dado muy buenos resultados. Que las llamadas al motor musical se hagan desde el propio DAAD además ha facilitado enormemente que, en Spectrum, desde órdenes del juego la música se pueda parar o reanudar al gusto del usuario, evitando el terrible efecto de precedentes como la versión 128k de The Neverending Story, donde la misma melodía machacona se reproducía en un bucle interminable sin posibilidad de parar salvo quitando el audio del ordenador/emulador. Torreoscura no será ni mucho menos la primera aventura conversacional con música de fondo, pero sí la primera hecha con DAAD en incluirla en su versión Spectrum

Torreoscura he dejado además como efecto colateral la creación de una nueva herramienta para DAAD pensada para facilitar la creación de versiones de aventuras para MSX en cinta (hasta ahora, desde la recuperación del DAAD en 2014, sólo el formato disquette estaba cubierto en MSX). ¿Recordáis ese párrafo del manual del DAAD que dice textualmente “there is no simple way to save files to cassette on MSX”? Bien, ya lo hay, se llama DAAD2MSXCas y es un script de Python pensado para cubrir ese “there is no simple way” ensamblando una imagen de cinta de MSX (fichero .cas) a partir de los ficheros DDB y MDG correspondientes.
Debido al complejo mapa interno de memoria de los juegos de DAAD en MSX (usando 64 Kb como RAM) es bastante complicado preparar un cargador de cinta que use las rutinas de la ROM. DAAD2MSXCas usa una modificación del cargador personalizado de Aventuras AD (sacado de la versión MSX en cinta de Los Templos Sagrados) que se automodifica para adaptarse a la carga de los ficheros de la aventura que estés haciendo. Los pythoneros pueden encontarlo en:

https://pypi.org/project/daad2msxcas/

Y hasta aquí las aburridas batallitas técnicas del “cómo se hizo”. Todos los implicados a un nivel u otro (no dejéis de ver la amplia sección de créditos) esperamos que el juego final os guste y os haga pasarlo bien. Podéis encontrarlo en cualquiera de las siguientes páginas web:

Zona FI

Commodore Plus

ESp Soft

Categorías: Planeta

Alerta de virus en los discos de “El cetro del sol” para AMIGA.

Mié, 23/06/2021 - 05:08

Malas noticias para los poseedores de copias físicas y/o descargadas del port para AMIGA de “El cetro del sol”. Si habéis descargado vuestra copia en fecha anterior a ayer 13 de febrero de 2020, con toda seguridad el fichero ejecutable del juego, llamado “Cetro”, está infectado con el virus “Ebola”, un virus clásico del AMIGA para el que inexcusablemente no tomé las mínimas precauciones durante la fase de cración y testeo de esta versión del juego.

Peor aún, por lo que he podido comprobar, las ediciones físicas de la aventura que se hicieron expresamente para servir de recompensa en el crowfunding de la Enciclopedia Homebrew Vol. 2, realizadas a partir de esos mismos ficheros, están igualmente infectadas.

Debo resaltar que el autor original de la aventura de texto, Toni Pera, es enteramente ajeno al desaguisado, ya que el port para AMIGA fue labor mía y se realizó en mis ordenadores, donde se produjo el “contagio”.

Debo pedir públicamente disculpas por mi imprudencia al dar por hecho que hoy en día podía despreocuparme del tema de la transmisión de virus en una plataforma retro como el AMIGA, máxime cuando todos sabemos que históricamente éste tuvo una muy nutrida fauna propia de amenazas tóxicas. Quizá no tenga excesiva importancia si eres un simple usuario nostálgico, pero en el momento en el que pones algo, la mínima cosa, a distribución pública, es imperativo realizar un chequeo con antivirus. Incluso considerando que yo no fuera el “culpable” original de la cadena de transmisión, si fue responsabilidad mía no haber reparado en esa posibilidad, como a partir de ahora, muy a mi pesar, voy a recordar cada vez que vea el pantallazo con las más de 1100 descargas que el juego ha tenido sólo en Aminet.

Podéis encontrar información sobre el virus Ebola de AMIGA en la página web del Virus Help Team, concretamente en:

https://www.vht-dk.dk/amiga/desc/txt/ebola.htm

Como podéis ver, dentro de la gravedad del asunto, al menos el Ebola no es de las especies más agresivas. Es un virus de tipo “link”. No se propaga por sectores de arranque de discos y aunque se queda residente en memoria no sobrevive a los reseteos. Tampoco se conoce que cause expresamente daños adicionales. Pero ser de los “menos malos” no quita el hecho de que se dedique a dar por saco a base de bien replicándose en ficheros ejecutables. En un Amiga 500 “pelao” puede incluso no causar “muchos” problemas ya que comunmente se hace un reset al acabar un juego. En sistemas, reales o emulados, con disco duro ya se vuelve un huesped bastante más pesado, ya que tiende a replicarse en ficheros de uso común como los comandos de la carpeta C, particularmente los que se ejecuten en cada Startup-Sequence al arrancar el ordenador, lo que multiplica sustancialmente sus probabilidades de superviviencia y difusión.

Afortunadamente al ser ya un “viejo conocido” la práctica totalidad de antivirus pueden retirarlo de la memoria y limpiar de una pasada todos los ficheros afectados. Pero CUIDADO, que mi primer intento fue un sonado fracaso. Usé VirusChecker II, que afirmaba estar retirando el virus de los ficheros. Por motivos que aún no acabo de entender muy bien, sin embargo, los ficheros desinfectados dejaron de ser utilizables. Al intentar ejecutar cualquiera en el shell del Amiga se producía un error de “bad loadfile hunk” (vamos, que al quitar el virus el fichero había sido dañado, probablemente ya sin remedio). Teniendo en cuenta que esto sucede con numerosos comandos del sistema de la carpeta C, todo el arranque de mi Amiga emulado con WinUAE (del que piadosamente tenía una copia de seguridad) quedó poco menos que arruinado.

En mi Amiga 1200 real, tras muchos ensayos y precauciones con copias, pude realizar el proceso de limpieza exitosamente y sin sobresaltos con VirusZ III. Así que debo insistir, basándome en mi experiencia concreta, que para retirar el Ebola:

-NO usar VirusChecker II
-USAR VirusZ III

Podéis informaros sobre VirusZ III también en la web del Virus Help Team en:

https://www.vht-dk.dk/amiga/vz/vz.htm

La descarga de VirusZ III no incluye algunas de las librerías comunes de AMIGA necesarias para su funcionamento, pero ésto se explica con claridad en la documentación y las librerías se encuentran disponibles en Aminet. Lamento que no sea la vía más sencilla y directa, pero es la única que puedo recomendar sin correr riesgo de crear destrozos adicionales.

En cualquier caso, las imágenes de disquette adf descargables tanto desde la página web de “El cetro del sol”:

http://www.zonafi.rockersuke.com/if/cetro_del_sol/descargas.html

… com desde su ficha en Aminet:

http://aminet.net/package/game/text/cetro_del_sol

… ya han sido debidamente saneadas. Si habéis estado en contacto con este juego ya sea en Amiga reales o emulados, no dejéis de pasar un antivirus (con las consideraciones que he expuesto más arriba) a la mayor brevedad.

Si sois alguno de los afortunados poseedores de las copias físicas (si mal no recuerdo, una tirada de 20) podéis grabar el contenido del adf en el disquette para tener una copia funcional y sin virus.

Si no sabéis exactamente cómo hacerlo o no tenéis los medios precisos, no dudéis en contactar conmigo por los comentarios del este post, redes sociales o en el mail “rockersuke” en gmail punto com. Podremos ponernos de acuerdo para que me mandéis el disquette por correo ordinario y os lo devuelva sin presencias indeseadas. Como mínimo el envío de vuelta correría de mi cuenta (y si me pasáis una cuenta bancaria o de paypal os ingresaría el del envío de ida).

Para tranquilidad de los usuarios de DAAD que estén haciendo cosas para AMIGA, los disquettes de AMIGA de la descarga del DAAD están limpios y son seguros de usar.

Dicho todo lo cual, vuelvo a reiterar mis disculpas por todo el desastre. Podría reabrir el debate sobre la maldad intrínseca de distribuir software malicioso como se hacía en el AMIGA hace 30 años, pero sería éso, un debate para hace 30 años. Sí cabe recordar que quizá (bueno, y no tan “quizá” ) no estamos tan libres como queremos pensar de los pecados y excesos que cometieron, o cometimos, en otras generaciones. Vivir en el 2020 no es un colchón mágico que nos haga inmunes a las “armas de destrucción masiva” del pasado y que el objeto de nuestra afición sea consideradao como “retro” no es excusa para bajar la guardia ante peligros que consideramos superados u obsoletos. Vamos, que si lanzáis juegos de AMIGA, siempre, siempre, pasadlos antes por un antivrus

Categorías: Planeta

Próximas convocatorias de Ficción Interactiva

Mié, 23/06/2021 - 05:08


Ya está convocada la ECTOCOMP de este año. Podéis apuntaros a participar usando el siguiente enlace:

ECTOCOMP 2019 (Español)
La ECTO tiene una opción de participación llamada 'La Petite Mort' que es particularmente interesante si nunca habéis intentado hacer nada de ficción interactiva. Sólo tendréis que dedicar cuatro horas para poder participar, lo que no es mucho. Si queréis probar sólo tenéis que descargaros alguna de las muchas herramientas que existen para crear ficción interactiva como Squiffy, Twine o Ficdown. Con los cursos y tutoriales disponibles y esas herramientas no creo que tardéis ni un día en haber hecho vuestra primera ficción interactiva y si tenéis duda siempre podéis preguntarnos en algunos de los canales habituales:
TEXTUALIZA EN DISCORDCANAL DE TELEGRAM
¡Y si la experiencia os gusta o simplemente queréis saber más siempre os podéis apuntar a la Rayuela de este año! Donde encontraréis toda clase de recursos y una comunidad activa de creadores con los que podéis interactuar.
Categorías: Planeta

Retornando a las puertas del destino.

Mié, 23/06/2021 - 05:08

He tenido esto muy abandonado. Me propuse a principios de año hacer algo largo, depurado, terminado. Algo, en definitiva, que fuese una obra de verdad y no un esbozo, ensayo, una prueba... o más bien me propuse terminar dos proyectos. Una obra de literatura normal y una ficción interactiva.
Pero no tenía ni idea de cuál. 
La cosa es que entre tanto se han acabado definitivamente las Sillyberrys, se ha hecho la Rayuela de Arena de este año, y he tenido más cambios en mi vida... todo lo cual no me ha ayudado a decidirme sobre qué dos obras deseaba hacer. De hecho me ha desinflado los ánimos bastante. Hasta hoy.
En cuanto a la literatura tradicional parecía que me iba a centrar en un proyecto nuevo que me ha surgido, una colaboración en una antología de SF Hard con varios autores. Ese proyecto es el único para el que he escrito algo en este tiempo y ahora estamos ya en fase de revisión y ajuste, así que irá para delante, pero... necesito terminar algo más personal. Así que habrá una obra mía que casi seguro que será la colección de cuentos de 'Colonos de Tulgia' que se puede encontrar en este mismo blog, pero espero que muy depurado no sólo por mí, sino por algún editor externo si es que puedo conseguir uno de confianza. Quiero crear una buena portada y hacer una maquetación seria. Y sí, quiero autopublicar, sé que no me voy a comer un colín con esa forma de trabajar y que sólo será una perdida de dinero, pero le tengo cariño a esa colección de cuentos en concreto y quiero autopublicarlo yo mismo.
¿Y la obra de ficción interactiva?
Pues empecé el año pensando en retomar la reiteradamente postergada 'La torre y el mar'; pero luego pensé que para ser algo largo y terminado tal vez sería el momento de sacar de una vez 'Sortilegios' o una versión renovada de 'Apache'. Eso pensé, pero sin acabar de decidirme. Los conocidos me recomendaron intentar 'Sortilegios' que les parecía más interesante. Y en ello he estado... a ratos.
Pero sin avanzar gran cosa y sin entender porqué no avanzaba nada. Esta mañana, repentinamente, me he dado cuenta que 'Sortilegios' requiere muchísimo trabajo para generar una obra (masiva, sí, pero...) muy tradicional y, en el fondo, con una estructura narrativa muy normalita. Lo que... bueno, como que no me llena.
Parece que sí que necesito tener entre manos algo más rompedor, más experimental, y por eso he pensado en 'Puertas del destino'. 
'Puertas del destino' es un viejo proyecto totalmente personal (ni siquiera está listada en la wiki del caad como uno de mis proyectos) basado en Inform 7 que requiere un control técnico bastante complicado para que quede bien. Tal vez demasiado complicado, pero, diablos, parece que es justo lo que me apetece, así que ese va a ser.
'Puertas del destino' es una obra de una única localización que intenté crear para la XComp3, una obra que va de una tienda en la que puedes pagar para intentar cambia tu destino y... el de tu apellido. Será una obra mezcla de SF Soft y Fantasía.
No digo más que destrozaría las sorpresas que esta obra debería contener.
¡¡Deseadme suerte!!

Categorías: Planeta

Repertorio de acciones en Inform

Mié, 23/06/2021 - 05:08
Alien: La aventura (Alpha Aventuras 2008−2018)El analizador de comandos de toda ficción interactiva se presenta al usuario bajo la siguiente premisa: eres libre de escribir lo que quieras, como si de algún modo estuvieses conversando con el narrador de la obra o con el director de partida de un juego de rol —una idea que está detrás, de hecho, del término "aventura conversacional", utilizado ampliamente en el pasado para referirse al medio y que aún hoy sigue siendo popular entre algunas personas—. La premisa es falsa, por supuesto. A pesar de la ilusión de poder escribir cualquier cosa para comunicarte con la obra, la cantidad de entradas que puede procesar correctamente el analizador de comandos se reduce en realidad a un conjunto muy limitado de acciones.

Cada obra puede definir potencialmente su propio repertorio de acciones particular, completamente diferente (o no) de otras obras. Existe, no obstante, un cierto conjunto de acciones que es habitual encontrar en la gran mayoría de las ficciones interactivas. Gracias a esto los usuarios más veteranos pueden explotar lo aprendido al experimentar obras previas para hacerse una idea general de las acciones que pueden utilizar al iniciar una nueva FI.

El sistema de autoría Inform (tanto en su versión 6, como en la 7) implementa este conjunto de acciones básicas, junto con comportamientos y mensajes por defecto, de manera que cualquier obra de ficción interactiva creada con este sistema cuenta de partida con todas ellas. Los autores son libres después para eliminar o añadir acciones de acuerdo a sus necesidades, desde luego, pero lo más común en este caso —al menos si es que las acciones añadidas resultan clave para hacer avanzar la narración—, es que la obra informe al usuario de cuáles son las novedades que se salen del conjunto habitual. En The Inform Designers Manual (2001) Graham Nelson, autor de Inform, detalla el repertorio completo de acciones del sistema [1]. A continuación se reproduce esta relación de acciones, junto con las entradas de teclado típicas que genera cada una en la traducción de la librería al español INFSP.
Grupo 1Acciones relacionadas con la operación del software. No tienen que ver con la historia de la obra ni con el modelo de mundo subyacente.

Acción Producida típicamente por Notas Pronouns "pronombres" Lista correspondencia de pronombres con objetos de la obra Quit "fin" Restart "reiniciar" Restore "cargar" Save "guardar" Verify "verificar" Comprueba la integridad del fichero de la obra ScriptOn "script on" Inicia transcripción de la sesión en un fichero de texto ScriptOff "script off" Finaliza la transcripción NotifyOn "notificar on" Activa notificaciones de puntuación NotifyOff "notificar off" Desactiva notificaciones Places "lugares" Lista las localidades visitadas Objects "objetos" Lista los objetos manipulados Score "puntuación" FullScore "puntuación completa" Muestra la puntuación detallada de la partida Version "versión" Muestra la versión actual de la obra LMode1 "breve" Descripciones normales de las localidades LMode2 "largo" Siempre descripciones completas de las localidades LMode3 "superbreve" siempre descripciones abreviadas de las localidadesGrupo 2Acciones que de forma automática interactúan sobre el modelo de mundo, en caso de darse las condiciones adecuadas:

Acción Producida típicamente por Notas Look "mira" Examine "examina pez" Search "busca en el caja" Inv "inventario" InvTall "inventario alto" Se convierte en Inv InvWide "inventario ancho" Se convierte en Inv Take "coge pez" Drop "deja pez" Remove "coge pez de la caja" PutOn "pon caja en la estantería" Insert "pon pez en la caja" LetGo acción de apoyo interna Provocada por Remove Receive acción de apoyo interna Provocada por PutOn e Insert Empty "vacía caja" Se convierte en EmptyT d_obj EmptyT "vacía bolsa en la caja" Para cada elemento contenido, se convierte en Remove y después en Drop/PutOn/Insert Transfer "mueve manzana a la caja" Se convierte en Drop/PutOn/Insert Go "norte" Enter "entra en el armario" GetOff "sal del armario" GoIn "entra" Se convierte en Go in_obj Exit "sal" Puede convertirse en Go out_obj Unlock "abre puerta con llave" Lock "cierra puerta con llave" SwitchOn "enciende radio" SwitchOff "apaga radio" Open "abre puerta" Close "cierra puerta" Disrobe "quítate sombrero" Wear "ponte sombrero" Eat "come pez" Wait "espera" Grupo 3Imprimen un mensaje y finalizan en la fase before de la ejecución (sin producir ningún cambio en el modelo de mundo).

Acción Producida típicamente por Notas LookUnder "mira bajo [la alfombra]" noun puede ser nothing Listen "escucha [casete]" noun puede ser nothing Taste "prueba [escabeche]" noun puede ser nothing Touch "toca [pintura]" noun puede ser nothing Pull "tira carretilla" Push "empuja carretilla" Wave "agita varita" Turn "gira sintonizador" PushDir "empuja carretilla norte" ThrowAt "lanza dardo a diana" ThrownAt acción de apoyo interna Provocada por ThrowAt JumpOver "salta sobre verja" Tie "ata cuerda [al gancho]" second puede ser nothing Drink "bebe absenta" Attack "ataca soldados" Swing "columpiate en cuerda" Blow "sopla pipa" Rub "limpia mesa" Set "pon trampa" SetTo "pon temporizador a 10" second no es un objeto del modelo de mundo Buy "compra helado" Climb "escala escalera" Squeeze "aplasta tomate" Burn "quema papeles [con cerilla]" second puede ser nothing Dig "cava jardín [con pala]" second puede ser nothing Cut "corta papel" Consulta "consulta pez en libro" Establece noun y el asunto Tell "habla Gema sobre Arturo" Establece noun y el asunto Answer "responde confirmación a Álvaro" Establece noun y el asunto Ask "pregunta Gema sobre Isaac" Establece noun y el asunto Give "da moneda a troll" Show "muestra pasaporte al guardia" AskFor "pide margaritas a Gema" WakeOther "despierta a dormilón" Kiss "besa Gema" Sleep "duerme" Sing "canta" WaveHands "agita manos" Mira también Wave Swim "nada" Sorry "perdón" Strong palabras muy malsonantes Mild palabras algo malsonantes Jump "salta" Mira también JumpOver Think "piensa" Smell "huele [café]" noun puede ser nothing Pray "reza" VagueGo "anda" Yes "si" No "no" Wake "despierta" Mira también WakeOther
Acciones que se trasladan a las reglas life de los objetos:

Acción Producida típicamente por Answer "di si al cajero" Ask "pregunta mujer sobre plutonio" Attack "ataca soldados" Give "da moneda a Caronte" Kiss "besa Gema" Order "Thorin, ve al oeste" Show "muestra pasaporte al guardia" Tell "habla a Paris sobre Helena" ThrowAt "lanza hacha al enano" WakeOther "despierta a bella durmiente"
[Descargar repertorio completo como un fichero de texto].
[1] Nelson, G (2001). The Inform Designers Manual. (4th ed.) Interactive Fiction Library. (Disponible online: https://www.inform-fiction.org/manual/html/)
Categorías: Planeta

Sistemas de conversación en Inform 6

Mié, 23/06/2021 - 05:08

Uno de los principales retos a la hora de añadir personajes no jugadores (PNJs o NPCs, por sus siglas en inglés) en una ficción interactiva es la implementación de las conversaciones entre ellos y el personaje controlado por el jugador (PJ o PC). Existen múltiples maneras de crear un sistema de conversación, cada uno con sus ventajas e inconvenientes. Una buena práctica antes de decidirse por la utilización de uno u otro es analizar las particularidades de cada sistema y las necesidades de la propia obra a fin de seleccionar aquel que pueda adecuarse mejor a ella —para hacerse una imagen bastante completa de las diferentes opciones con las que cuenta un autor, el Manual Técnico de TADS 3 [1] incluye una sección dedicada a analizar con cierta exhaustividad algunos de los sistemas de conversación más utilizados—.

En líneas generales, estos sistemas de conversación pueden adoptar tres formas de interfaz: 1) "VERBO [PREPOSICIÓN] <PNJ>", algo en el estilo "habla con Fran"; 2) "VERBO [PREP.] <PNJ> [PREP.] <asunto>", estilo "pregunta a Fran sobre los sistemas de conversación"; 3) Entrada libre de texto, como en "me gustaría saber qué sistemas de conversación existen". A continuación se ofrece una relación rápida de las particularidades de cada uno de ellos junto con ejemplos de obras que los utilizan, así como herramientas para facilitar su implementación en el sistema de autoría Inform 6:
1) Interfaz "VERBO [PREP.] <PNJ>"
La interfaz más simple, utilizando comandos del tipo "HABLA CON <nombre_de_PNJ>" (y sinónimos). A priori facilita evitar situaciones de sordera que se pueden manifestar en las otras dos interfaces que analizamos —llamamos "sordera" a situaciones en las que el usuario no es capaz de hacerse entender por la obra, bien porque el analizador no haya podido comprendender correctamente la entrada o, en ocasiones, porque aún habiéndola entendido no ofrece después una respuesta adecuada para esta entrada. Algo que, por supuesto, conviene en lo posible evitar—. Con cada entrada del usuario se retorna un intercambio de conversación entre PJ y PNJ. Este intercambio puede ser contextual y variar, lo que permite cosas como que tras haber hablado ya con un personaje éste deje de estar interesado en volver a hablar y, así, subsiguientes intentos de introducir el mismo comando devuelvan una respuesta adecuada del PNJ. O, en conversaciones largas, éstas se pueden dividir en varios fragmentos e ir retornándolos secuencialmente con entradas sucesivas del comando "HABLA CON <nombre_de_PNJ>" hasta agotar la conversación por completo.

Ejemplos de uso: Ariadne in Aeaea (2016) y 1958: Dancing With Fear (2017), ambas de Víctor Ojuel.

El principal inconveniente de las interfaces de este estilo es que, en su forma más básica, limitan la agencia del usuario puesto que se le priva de formas con las que guiar la conversación —no puede escoger las respuestas del PJ, ni los temas sobre los que se habla—. Al final del artículo se discuten brevemente ciertos mecanismos que pueden ayudar a solucionar este último punto.

La forma más rápida de implementarlo en Inform 6 posiblemente sea reescribir las respuestas por defecto de la librería a las acciones ##Answer, ##Ask y ##Tell —en general será conveniente reescribir también las acciones ##AskFor, con la que los PJ pueden pedir objetos a los PNJs; y ##Order, con la que pueden introducir comandos e intentar que sean ejecutados por el PNJ en lugar del PJ— a través del objeto "LibraryMessages":

Object LibraryMessages
  with before [;
    Answer, Ask, Tell, AskFor, Order:
      "Para iniciar una conversación usa simplemente la acción HABLA (a/con) PERSONAJE.";
      [ ... ]
];

Y redefinir la gramática asociada al verbo 'habla' para que invoque a una nueva acción ##TalkTo:

Extend 'habla' replace
  * noun -> TalkTo
  * 'a'/'con' noun -> TalkTo
  * creature -> TalkTo
  * 'a'/'con' creature -> TalkTo
;

[ TalkToSub;
  ! Mensaje por defecto tipo:
  ! "No parece estar interesado en hablar ahora."
  [...]
];

De este modo cada uno de los PNJs del modelo de mundo pueden capturar la nueva acción ##TalkTo en sus rutinas before() y ofrecer respuestas adecuadas. (Advertir que los ejemplos de código propuestos más arriba son sólo un esbozo incompleto. Queda en manos de los autores añadir nuevas líneas de gramática para que, por ejemplo, términos como "conversa" funcionen como sinónimos de "habla", o que la lógica de la rutina TalkToSub() retorne mensajes por defecto adecuados y diferentes cuando el usuario intente lanzar la acción sobre objetos animados o inanimados o sobre sí mismo).
2) Interfaz "VERBO [PREP.] <PNJ> [PREP.] <asunto>"
Una de los sistemas de conversación más ampliamente utilizados a lo largo de los años. Consiste en el uso de comandos del tipo "PREGUNTA A <nombre_de_PNJ> ACERCA DE <asunto>" (habitualmente, además de "pregunta" se contemplan otros verbos como "responde", "di", "cuenta", etc.) o, también, "<nombre_de_PNJ>, <asunto>". Al permitir especificar un asunto sobre el que tratar presenta la ventaja de ofrecer una mayor libertad al usuario, algo que nos impedía el primer sistema analizado. Por contra, esta mayor libertad redunda en un mayor riesgo de provocar situaciones de sordera; cualquier intento por parte del usuario de tratar un asunto que no haya sido contemplado por el autor retornará algún mensaje genérico del tipo "No sé nada sobre ese tema.", lo que puede deteriorar la experiencia y llegar a generar frustraciones con la interfaz. O puede dar lugar a escenarios más indeseables aún: algunas obras requieren conseguir cierta información de un PNJ para avanzar en la historia, de manera que el usuario puede encontrarse en situaciones de bloqueo del tipo "adivina el asunto" en las que debe dar con las palabras adecuadas sobre las que hablar con ese personaje determiando para conseguir dicha información. Estas situaciones de bloqueo suelen revelar un grave problema de diseño y a menudo resultan más frustrantes para el usuario que los bloqueos motivados por situaciones del tipo "adivina el comando" —una de las principales barreras de accesibilidad en obras de ficción interactiva mal implementadas. Varios autores, como Andrew Plotkin (2011), han abordado ya en el pasado este tipo de problemas con más detalle [2]—. Al igual que con el primer ejempo de interfaz, al final del artículo se discuten mecanismos que pueden aliviar estos inconvenientes.

Dado que se trata del sistema más utilizado y se considera prácticamente estándar en el medio, la librería Inform 6 ofrece de partida toda la infraestructura necesaria (gramáticas, definición de acciones, modelo de mundo...) para implementarla.

Ejemplos de uso: Alien: La aventura (Alpha Aventuras, 2008−2018) o Anchorhead (Gentry, M. 1998−2018), entre muchas otras.
3) NLP aplicado sobre entrada libre del teclado
Esta interfaz plantea permitir la entrada de texto completamente libre por parte del usuario y que, a través de procesamiento de lenguaje natural, la obra pueda interpretar esta entrada y ofrecer respuestas de los PNJs acordes a ella. En la práctica no hay ficciones interactivas con analizador de comandos que hayan utilizado realmente sistemas de este estilo con éxito —sí versiones del sistema (2) que pueden parecer imitarlo al utilizar análisis no estricto para reconocer patrones entre la entrada de usuario y las palabras clave asociadas a cada tema de conversación—. No existen tampoco herramientas ideadas específicamente para implementar conversaciones así en Inform 6, por lo que sería tarea del autor crear el sistema por su cuenta —lo que no se antoja en absoluto sencillo—.

En cambio, algunas otras obras englobadas en clases distintas de narrativa electrónica si han experimentado con acercamientos de este tipo para establecer conversaciones con PNJs, como por ejemplo Starship Titanic (The Digital Village, 1998), Façade (Mateas, M. y Stern, A., 2005) o el reciente Restless (Short, E. 2018), presentado en la edición de 2018 de la ECTOCOMP y que hace uso, entre otros, de las capacidades procedimentales de generación de texto automático del MiddleWare Character Engine [3], desarrollado por la compañía Spirit AI.
Mecanismos para mitigar las desventajas de (1): menús
Los menús representan una posible forma de añadir capacidad de decisión por parte del usuario aún utilizando formas de interfaz simples como las vistas en el punto (1) para iniciar las conversaciones. Estos menús se presentan de forma similar a la que puede observarse en videojuegos como las aventuras gráficas —por ejemplo en The Curse of Monkey Island (LucasArts, 1997)— o los RPG occidentales —ej: Torment: Tides of Numenera (inXile Entertainment, 2017)—: al iniciar la conversación se presenta un conjunto de opciones al usuario (normalmente etiquetadas con números); el usuario selecciona una opción (su número asociado); el PNJ da la respuesta adecuada a esa opción; y se vuelve a repetir el mismo flujo hasta que se agote la conversación.

Algunas de las ficciones interactivas mejor valoradas por la comunidad [4] utilizan este tipo de sistema de conversación: Photopia (Cadre, A. 1998) , Rameses (Bond, S. 2000) o De Baron (Gijsbers, V. 2006), entre otras.

Existen diferentes extensiones para implementar un sistema de conversación basado en menús en Inform 6. Probablemente la más popular, la más robusta y la mejor documentada sea gtalk.h creada por Boettcher, G.; Fundin, K. y Tilford, M. J.:

El sistema basado en menús presenta, por su parte, ciertos inconvenientes —como con el resto de sistemas, para encontrar una descripción detallada del funcionamiento de cada uno junto con sus ventajas y sus inconvenientes, se emplaza de nuevo al lector a consultar el Manual de TADS 3[1]—, el más importante probablemente sea la ruptura de coherencia de la interfaz; durante todo el flujo de la conversación la entrada del usuario deja de consistir en un comando de entre el conjunto de comandos de texto definidos por la obra para convertirse en una selección de opciones del menú (habitualmente, la selección de un número asociado a cada opción). Roberts, M. J. et al. (2008) destacan cómo esta ruptura llama la atención sobre la interfaz de usuario y, por tanto, degrada la experiencia de estar interactuando con el narrador de la obra: «Una enumeración de opciones no encaja bien con el aspecto y comportamiento de un juego de texto. La interfaz de usuario de una ficción interactiva reivindica una salida que pueda ser interpretada como voz del narrador y simular, al menos, [un espacio de posibilidades abierto]».
Mecanismos para mitigar las desventajas de (2): inventario de temas
Con la pretensión de evitar las situaciones de bloqueo de tipo "adivina la palabra" de los sistemas de conversación basados en las interfaces de tipo (2), así como los inconvenientes de los sistemas basados en menús, surgen los inventarios de temas. Estos sistemas consisten en ofrecer directamente una lista de asuntos (un inventario) sobre los que se puede hablar con un PNJ, y que el usuario puede consultar en cualquier momento.

Esta lista de temas no tiene por qué ser completa. Es decir, el usuario potencialmente podría todavía intentar tocar asuntos no listados por el inventario, consciente de la posibilidad de que el PNJ retorne alguna respuesta genérica indicando que no sabe nada sobre ese tema. Al ser consciente de partida de esta posibilidad, se mitiga la frustración y, a cambio, se deja abierta la puerta a la exploración libre y a experimentar la sensación de recompensa y gratificación por descubrir temas y fragmentos de conversación secundarios ocultos o no evidentes. El grueso de la conversación, sin embargo, junto con toda la información que pueda resultar importante para la historia, debería incluirse dentro de los temas sugeridos por el inventario a fin de evitar los temidos bloqueos de "adivina la palabra".

Son numerosos los ejemplos de obras que han adoptado este sistema de conversación en la última década. Por citar algunos: Aotearoa (Wigdahl, M. 2010), Shelter from the storm (Eve, E. 2009) o Make It Good (Ingold, J. 2009).

Para facilitar a los autores la implementación de este tipo de sistema de conversación en Inform 6 he creado una extensión llamada choiceSet (basada en otra extensión previa: NPC_conversation [5]):
  • choiceSet.h (la parte final del código incluye un ejemplo de uso)
  • El Chico (pequeña obra con un ejemplo de uso de la extensión más completo)
Relación de obras citadas:
[1] Roberts, M. J.; Breslin, S; Eve, E.; Nizette, M. y Sewe, A. (2008). TADS 3 Technical Manual: Choosing a Conversation System [Online]. Disponible en: http://tads.org/t3doc/doc/techman/convbkg.htm (Consultado el 2019/02/08).
[2] Plotkin, A. (2011). 'Characterizing, If Not Defining, Interactive Fiction'. En Jackson-Mead, K. y Wheeler, J. R. (ed), IF Theory Reader. 1st ed. Boston, MA: Transcript On Press. pp.(59-66).
[3] Short, E. (2019) Conversation as Gameplay (Talk) [Online]. Transcripción de coloquio en la Oxford/London IF Meetup. Disponible en: https://emshort.blog/2019/01/20/conversation-as-gameplay-talk/ (Consultado el 2019/02/08).
[4] IFDB (2015). Interactive Fiction Top 50 of all time (2015 edition) [Online]. Gijsbers, V. (ed.). Disponible en: https://ifdb.tads.org/viewcomp?id=p6s9uem6td8rfihv (Consultado el 2019/02/10).
[5] Mastodon (2011). Ahora que me acuerdo... [Online]. Disponible en: https://lanemastodon.wordpress.com/2011/04/02/ahora-que-me-acuerdo/ (Consultado el 2019/02/10).
Categorías: Planeta

(c)1998-2019 CAAD

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