Planeta

Todas mis entradas de la #iftober

Planeta Aventurero - Hace 10 horas 31 mins


Me ha parecido que había demasiado ficherillo en mi itchio, así que he creado una página agluntinadora y ahora tenéis en una única creación los quince minirelatos que cree para Héctor el Inquisidor durante la #iftober. Podéis encontrarlo aquí.
CategorĂ­as: Planeta

15 obras para la #iftober

Planeta Aventurero - Hace 10 horas 31 mins
Acabo de subir 'Reloj' (https://johan-paz.itch.io/2018-iftober-14-reloj) que completa el grupo de las 15 primeras obras para #IFTober (https://twitter.com/search?q=%23iftober&src=typd) y tal vez las únicas. Hay de todo un poco en este grupo de 15 obras: cosas son puzle y sin puzle, algunos con algún efecto montado en javascript, cortos y algo más largos. Pero todos tienen en común el uso exclusivo de texto con una apariencia muy simplificada de negro, blanco y rojo.

La historia de Héctor está más o menos situada en el universo de los Colonos de Tulgia (https://docs.google.com/document/d/1qFe0axQiXeeFQwhLrM7sL6OhpEvMqxLYDL32ghIxgzE), en el que también están situados mis tweet de este wordtober (https://twitter.com/search?q=%23wordtober1&src=typd) y estará situado 'La Torre y el Mar' (http://wiki.caad.es/La_torre_y_el_mar)

Ha sido agotador, y eso que muchas las he subido sin revisar ni una vez. Este ritmo es simplemente insostenible. En estos días he creado más miniobrillas que en todas las Sillyberrys (http://sillyberrys.net/).

Es posible escribir una IF improvisada en muy pocas horas usando Squiffy, Twine o Ink; pero es un ejercicio muy diferente hacerlo constantemente día tras día. Llega un momento en el que simplemente se te acaban las fuerzas. Es raro, porque es algo que no me pasa con la Nanowrimo.
CategorĂ­as: Planeta

Y de pronto, #iftober...

Planeta Aventurero - Hace 10 horas 31 mins
Por culpa de Eduardo ha empezado una locura más y me ha dado por apuntarme (como si no estuviese ya bastante pillado).
Intentar hacer una miniobrilla cada día durante un puñetero mes entero es simplemente un disparate, o, para estar en sintonía con la serie que voy a crear, un sindiós. Ya resultaba casi imposible mantener el ritmo en el caso de las Sillyberrys, pero esto es peor. Mucho peor.
Esto será como hacer la nanowrimo. Una nanowrimo en la que el relato se resista, se agite como un demonio siendo exorcizado, y muerda con cada descuido.
Locura total.
¡La Emperatriz nos guarde!

CategorĂ­as: Planeta

Resultados de #RayuelaJam y nuevo concurso

Planeta Aventurero - Hace 10 horas 31 mins

Ya están disponibles los resultados de la jam Rayuela de Arena.

Los cinco primeros, según el jurado popular son:

Donde el cielo se une con el mar - Celephaïs de H.P.Lovecraft

Amazónico Té

Extraños escritos

La Zona

Alaxandú

Son dos juegos de parser, una novela visual, un híbrido de nanocuentos dispersos por un mapa, y un librojuego de exploración espacial.

Consulta todo el ranking aquí:

https://itch.io/jam/rayuela-de-arena-gamejam-narrativa/results

Cabe destacar lo cercanas que han quedado las notas, muchos juegos compitiendo por décimas.

Una jam se va, una competición que viene.

La ECTOMCOMP 2018 ya está disponible. Competición desenfadada de juegos tenebrosos para celebrar el Día de todos los santos, Día de los muertos y Halloween. ¡Manda tu aportación! Hay dos categorías, para juegos realizados muy muy rápido, en menos de 4 horas; y otra para juegos cuyo desarrollo ocupe más de 4 horas.

https://itch.io/jam/ectocomp-2018-espaol

CategorĂ­as: Planeta

Ya están disponibles los 22 participantes en #RayuelaJam

Planeta Aventurero - Hace 10 horas 31 mins

La jam y competición de juegos narrativos inspirados en mitología y religión, acaba de subir el telón y mostrar 22 obras disponibles para disfrutar.

https://itch.io/jam/rayuela-de-arena-gamejam-narrativa/entries

Ahora se inicia un plazo de 1 mes para que los jugadores evalúen y eligan el "mejor juego narrativo" de toda la competición. También se agradece si dejan feedback a los autores.

Como siempre, sigue el hashtag #RayuelaJam en redes sociales para seguir el desarrollo del final de la jam.

CategorĂ­as: Planeta

En busca del Parser Perdido.

Planeta Aventurero - Hace 10 horas 31 mins

Así que terminaba el post anterior anticipando un señor notición… y es que en realidad el plan original era relatar en él 2 acontecimientos en principio carentes de relacción, pero que, por aquello de las sinergias entre la retroinformática y la cosa esa de la literatura computerizada, confluyeron en un mismo tiempo y lugar…

Uno era, obviamente, la presencia de un stand del CAAD en el evento Valencia Va de Retro el pasado 4 de octubre, el otro…

…ahora permitidme por un día ejercer un ejercicio de sano ombligismo internetero (si tal cosa existe) y contarlo todo del modo más rebuscado, teatrero y peliculero posible XD

-VALENCIA, 4 de octubre de 2014:
Espero con ansiedad la llegada de Andrés Samudio a la feria para su encuentro con la afición en la mesa del CAAD y… Andrés que no llega… ¡Espera un momento! Esa historieta ya os la he contado en el último post XD . La cosa acabó con la llegada de Andrés, las oleadas de firmas de libros, CDs, posters, las fotos, las entrañables charlas con los fans…
Y ahora un flashback…

-INGLATERRA, entre mediados y finales de los felices 80:
Graeme Yeandle y Tim Gilberts gozan del éxito de público que han obtenido sus herramientas de creación de aventuras de texto, el Quill y el PAWS. La historia detallada la podéis leer (y yo aún diría aún más, ¡la debéis leer!) en la entrada dedicada al Quill en el blog del Digital Antiquarian, donde entre otras cosas se rastrean los orígenes e influencias del sistema en los artículos y estudios publicados en las revistas especializadas a primeros de la década sobre el motor de las aventuras de Scott Adams.
Quienes hayáis trasteado tanto con las herramientas de la era Quill/PAWS como con las distintas utilidades existentes para crear obras con el sistema de Adams, habréis notado rápidamente que éste último es el “abuelo” de todos los sitemas posteriores basados en lo que se acabaría llamando “condactos”: una base de datos con los mensajes, vocabulario y acciones de la aventura junto con un “árbol” de órdenes para manejarla.
El concepto tenía dos grandes virtudes. Por un lado era maravillosamente “virtualizable”, es decir, se podía ejecutar con intérpretes hechos para cualquier plataforma de la época. Por el otro, era razonablemente “liviano”, pudiendose cargar de una vez (es decir, desde cinta) en la límitada memoria de las máquinas de su momento. El resultado fue conseguir el pequeño “milagro” de trasladar el concepto de juego de la “Colossal Cave“, aparentemente reservado a los poderosos mainframes de las universidades y centros de investigación, a las humildes computadoras pioneras de la informática doméstica.

Si bien el artículo del Digital Antiquarian señala que la popularidad del Quill y del PAWS nunca se llegó a corresponder con su potencial beneficio económico debido a sus precios populares y a estar ambas herramientas dirigidas a los aficionados de a pie, lo cierto es que Graeme y Gilberts sí que hicieron una aproximación a su negocio con aspiraciones más lucrativas con un producto dirigido en esta ocasión al sector estrictamente profesional. Cambiando el nombre tradicional de su empresa “Gilsoft” por el de “Infinite Imaginations“, su nueva criatura fue bautizada con el no-nombre de “System Without A Name” y conocida por sus siglas “SWAN“. De un precio mucho más elevado y pensada más para empresas que para usuarios finales, el nuevo instrumento cambiaba la aproximación del Quill (distintas versiones para distintas plataformas) por una sóla versión desde la que crear automáticamente los ejecutables de las distintas versiones, además de tener un repertorio más avanzado de condactos y mayor versatilidad para manejarlos (bucles, indirecciones, cositas que le hacían más fácil la vida a los autores, vamos). La única obra conocida que se realizó con ella fue el meritorio “Mindfighter“, una muy buena aventura de ciencia-ficción apocalíptica escrita por Ferguss McNeil, conocido por sus divertidas obras en el equipo “Delta 4“.

Si tomásemos como referencia, como hace el bueno del Antiquarian, la prensa especializada inglesa y americana, parecería que las andanzas informáticas de los miembros de Gilsoft se acabarían ahí…

… pero, por suspuesto, los aficionados españoles sabemos que hay un capítulo más en esa historia

-VALENCIA, 2014:
Me pongo a la cola de los fans que esperan llevarse un autógrafo del señor Samudio. En realidad no busco una firmita, de hecho, voy a hacerle un regalo, y mientras, mi cabeza va rumiando… “¿Cómo resuelvo yo esto?

-VALENCIA, 1989:
El número de verano de Micro-Hobby de ese año, el 190, incluye las reseñas de aventuras conversacionales como “Ke Rulen Los Petas“, “Zipi y Zape” y… “La Aventura Original“. En las primeras páginas hay un reportaje sobre Aventuras AD con una foto al completo del orgulloso equipo. Se anuncia a página completa un concurso de creación de aventuras y la sección “El MUndo de la Aventura” de Samudio consiste en una entrevista a Tim Gilberts en la que Andrés afirma con rotundidad:

“Tim lleva en España cuatro meses trabajando para Aventuras AD en la producción del más completo Creador que se pueda soñar hasta el momento.”

Efectivamente, al grito de “vente pa’ España“, Andrés ha reclutado a Gilberts para la creación de una herramienta tuneada para su recién creada empresa de producción de aventuras conversacionales. Sería una utilidad con las prestaciones de lo que había sido el SWAN, preparada para la gramática del español, y con cuantas nuevas características pudieran añadirsele según surgiera la necesidad. En el texto se cuela de rondón el nombre de la criatura: DAAD, siglas que a posteriori se revelarían como las iniciales de “Diseñador de Aventuras de Aventuras AD“.

El resto es Historia… (Historia sobre la que, en estos mismos momentos, el señor Juanjo Muñoz está escribiendo un libro con todos los jugosos detalles que ninguno nos vamos a perder ). Con el DAAD se crearon las mejores obras de producción comercial de la aventura conversacional española en la era de los 8 bits. A su vez, la producción y comercialización de una versión española del PAWS causó un impacto, a nuestra escala, similar al que el Quill tuvo en su Inglaterra natal, demostrando que, si bien las conversacionales siempre fueron un género mayoritariamente denostado por el grueso de los aficionados a los videojuegos, sus entusiastas eran una tribu mucho más activa, con grandes dosis de creatividad, y, sobre todo, muchas historias que contar.

Ediciones de la primera y de la, hasta la fecha, última obra de Scott Adams, “abuelo” de las aventuras realizadas por sistemas de condactos. Herramientas de creación del entorno Gilsoft. MIndfighter, obra realizada con el SWAN. Las 6 obras clásicas realizadas en España con el DAAD .

El concuros de aventuras organizado por AD tuvo, mientras tanto, un final atípico e inesperado. Tras muchos traumas y requiebros (que fueron, con todo, el origen de una imparable escena homebrew aventurera hispana), la crisis de la industria del software de 8 bits, el tan fatídico momento en que la llamada “Edad de oro del Soft Español” dejó de serlo, obligó a finalizarlo con el reparto de copias del “creador” DAAD entre los finalistas…

… y pasó el tiempo. Aventuras AD cerró, pero el club creado a su sombra, el CAAD, sobrevivió durante una cantidad de tiempo bastante notable para tratarse del género “menor” de una industria “moribunda”. Y pasó más tiempo. Internet llegó en masa a los hogares. El CAAD se transmutó de un club con cuotas, carnets y membresías a una página web donde la línea dura de los aficionados a la ficción interactiva se reunía con libertad para  discutir sobre la evolución del medio. Hubo reemplazos generacionales, los fanzines impresos dieron paso al e-zine SPAC, que haciendo honor a su nombre, luchaba contra viento y marea por la “preservación” de la aventura conversacional. Y pasó más tiempo aún, y un buen día la retroinformática se puso de moda.

Los buenos y viejos programas de pronto andaban correteando por la red de redes en páginas empeñadas en que, por mucho que pasasen los años y cambiasen los ordenadores, las obras clásicas nunca se perdieran ni cayesen en el olvido. Esto incluía, por supuesto, las aventuras conversacionales hechas en España y las herramientas con que se crearon, particularmente el PAWS. Pero entonces todos nos dimos cuenta de que… nadie sabía qué había sido del “mítico” DAAD…

… o sí.

Entre los habituales del foro del CAAD se encontraban unos pocos de los ganadores del siempre recordado concurso (perdón si meto la pata con los nombres, el recuerdo de los detalles es, cuanto menos, borroso). Al menos uno de ellos, Johan Paz, conservaba los ficheros para MS-DOS del programa en un vetusto disquette de 5,25”, que no tenía donde leer ni ejecutar. El disco se lo pasó, de nuevo si lo recuerdo bien, a Carlos Sánchez (Uto), que hizo lo imposible para rescatar su contenido, incluyendo “rebañarlo” sector por sector… pero no se pudo hacer nada debido al deterioro físico del soporte. En aquel momento no se sabía absolutamente de nadie más que estuviese localizable y que pudiera tener una copia superviviente.
A efectos prácticos, el “Creador”, el mítico “Diseñador”, tenía el status de, como les gusta decir en los foros ingleses del Spectrum, “missing in action” (“desaparecido en combate”). El paso del tiempo, además de hacer crecer su “leyenda”, no hizo sino acrecentar la sensación de que el DAAD se trataba de un sistema irremediablemente “perdido”…

… o no.

-VALENCIA, 2014:
En medio del barullo de la feria llega mi turno frente a Andrés, y como todos los ensayos mentales sobre cómo abordar el tema se borraron fulminantemente, improviso: “Eer, yo no venía a pedirte un autógrafo, sino ¡a hacerte un regalo!” (en realidad, es el mismo regalo que le hacemos en todos los saraos: una copia impresa del ultimo SPAC, eso sí, edición lulú con portada a color, la reproducción faccsímil del nº 0 del fanzine del CAAD, que cumplía sus 25 añitos, y un CD con juegos) “… y ya que estoy, de paso iba a pedirte un favor…

Y en ese momento todo el mundo se calla y se me queda mirando ^_^’

Estoo… tenía un tema de que hablarte, algo que te atañe directamente y que requiere la máxima discreción y confidencialidad…

Secuestrar a Andrés Samudio en plena sesión de firmas era, desde luego, una osadía, pero ¡hey! el encuentro con los aficionados se estaba realizando en el stand del CAAD ¡nuestro stand! Así que si alguien se podía permitir una pequeña tiranía, ¡ese era yo! XD

Ni que decir tiene que Andrés se prestó con toda naturalidad a tener una pequeña charla privada en el pasillo de al lado.

Eer, a ver por dónde empiezo a contarte ésto...”

-MADRID, 2013:
Corre el mes de septiembre y en el espacio cultural Matadero Madrid se celebra una conferencia-coloquio a cargo de Andrés Samudio de la que un servidor dio detallada cuenta en este post y en la que compartió con el público unas cuantas rarezas de su historia aventurera: sus manifiestos en pro de la creación de aventuras de texto en español y una copia “superviviente” de la primera versión de la Diosa de Cozumel muy anterior a la que se comercializó en su día.
Pero si el acto en sí era de un incuestionable interés, no menos interés tenían las líneas de acontecimientos que se hilvanaban en su “trastienda”. Líneas que, aparentemente inconexas en principio, no tardarían en converger en un mismo punto.
Por un lado, Samudio y el presentador del evento, Adonías, a la sazón presidente de la Asociación de Usuarios de Informática Clásica (AUIC), acordaban que el primero les prestaría un lote de material de exhibición para la “zona retro” de la edición del Madrid Games Week de ese año, en el que la AUIC colaboraba con una zona de exposición.
Por otro, se estaba acordando la cesión del juego original de Cozumel para su venta en exclusiva, y en forma de copia física, a los sucriptores de la edición española de la revista Retro-Gamer. Para esto último, ciertamente, primero había que rescatar el juego de la vieja cinta de casette para Spectrum en que se encontraba. Como suele ocurrir, la cinta, con, literalmente, décadas de antiguedad, no se encontraba en su mejor estado de conservación, lo que impediría recuperar el juego. Afortunadamente,  lo más granadito de los expertos en preservación de software clásico de la AUIC se encontraba a mano :-). Jaime (Deepfb, Alt) Soriano y Javi (Habi) Chocano se encargaron de filtrar la grabación, quitarle el ruido producido por el deterioro físico del soporte, y conseguir una imagen plenamente funcional de la cinta a partir de la cual se podrían fabricar las nuevas copias físicas. Sin su labor, no acreditada hasta la fecha, nunca habríamos tenido esa nueva/vieja versión de “La Diosa de Cozumel” para jugarla en nuestras máquinas en el siglo XXI. Otra cosa es que luego la editorial Axel-Springer metiese la pata y encargase una cantidad de copias inferior a la demanda de los suscriptores de la revista. Si fue desidia o dejadez ya es, ciertamente, un misterio para otra historia, pero queda la esperanza de que no hayamos oido aún lo último sobre ese juego.

Mientras todo eso pasaba, se celebró la Madrid Games Week, y en ella, como estaba previsto, se expuso el material cedido por Samudio. Ediciones de los buenos y viejos juegos de AD, la cinta con la versión primigenia de Cozumel y… unos curiosos disquettes de trabajo. Curiosamente, todo ello habría pasado casi desapercibido si no fuera por los visitantes que sacaban fotos de la feria y luego las colgaban en Internet. Casi por casualidad en algunas de ellas se podían distinguir las anotaciones hechas a mano en las etiquetas de esos discos: “DAAD developer utilities“, “DAAD Amiga“, “DAAD CPC“…

“¿Cómo?¿Qué?¿Cuálo?” 0_0! El mismo día que algunas de esas fotos empezaron a ser vistas, en los foros del CAAD se nos quedaron los ojos como platos “¡Oiga usted! ¿eso es exactamente lo que parece que sugiere que dice que es?” XD

La reacción inmediata de un servidor fue mandar un mail a mi contacto más cercano (por verle habitualmente en las quedadas madrileñas del Grupo de Usuarios de Amstrad) con la AUIC, de nuevo, Jaime Soriano. Al grito de “A mí los preservacionistas” le urgía a que me contase si se había mirado el contenido de esos discos. Su respuesta fue… ¡desconcertante! Casi parecía no saber a qué me refería “Parece que no hay nada raro en esos discos, lo interesante es esa cinta de Cozumel” (en aquel momento aún no se había hecho público que se había preservado con éxito y que iba a venderse con la revista Retro-Gamer) “Por lo visto es una versión algo más picantona que la que se hizo después“…
Tuve que responderle con inmediatez y algo (bastante XD) de vehemencia que no, que lo de Cozumel estaba muy bien (nota mental, jugar la versión vieja/nueva para comprobar cuanto más “picantona” quiere decir exactamente lo de “algo más picantona” XDD ) pero lo que nos iba a quitar el sueño esa noche en el CAAD eran los discos, potencialmente poseedores de la herramienta de creación de aventuras conversaciones española más buscada de la Historia de la creación de aventuras conversacionales en España XD

Tras varios días en vilo recibí la noticia que esperaba. Todo el lote de disquettes que Samudio había aportado para la exposición había pasado, de nuevo, por las sabías manos de Jaime y Javi quienes, de nuevo, hicieron el milagro: la práctica totalidad del contenido había sido satisfactoriamente rescatado. En realidad, si entendí bien como me lo contaron, no tuvo mayor dificultad, ya que para ahorrar tiempo los pasaron por la herramienta KryoFlux sin que ofrecieran apenas resistencia. Digo “la práctica totalidad” porque, y ahora es cuando mi amigo Bieno Marti se va a llevar un señor disgusto, los discos con los ejecutables necesarios para crear aventuras en Commodore 64 estaban envolviendo al resto cogidos con una goma elástica, y la doblez producida los había estropeado más allá de toda posibilidad de rescate ^_^’

Pero en lo que respecta al resto… se podía afirmar con rotundidad que el mítico “Creador”, el legendario “Diseñador de Aventuras de Aventuras AD”, el tan desesperadamente buscado “DAAD” había sido recuperado con éxito tras haber estado durante años en el lugar en que, mirándolo ahora con lógica, tenía que estar ¡el trastero de Andrés Samudio!

El enlace temporal a las imágenes de los discos recuperados se nos facilitó a un reducido número de interesados, básicamente Jaime, Javi, Miguel Matias, autor de la reciente “Aventura GAME” para Spectrum, y un servidor. Junto al link venía una tajante instrucción: no revelar nada del asunto públicamente, vamos, no decir “ni mu”, ni, menos aún, distribuir los ficheros de ningún modo hasta que, por elementales motivos de ética y respeto que todos compartíamos, se contase con una autorización expresa al respecto del propio Andrés, absoluto y legítimo propietario de todo ese material.
Así que durante un tiempo nos quedamos todos, literalmente, “callados como putas” Fue un momento en el que todos estábamos emocionalmente “dividos”: por un lado, nos haría toda la ilusión del mundo que todo ese material pudiese salir a la luz, tanto por su interés histórico como por la posibilidad de que los aficionados pudiesen trastear con él… y por el otro, entenderíamos perfectamente que a Andrés Samudio no le pareciese bien, ya que este fue un producto que en su día le costó simultaneamente un buen montón de disgustos y, además, un buen montón de dinero… para ser exactos, unos dos millones y medio de pesetas de la época. Si él no estuviese de acuerdo, mal que nos pesase, respetaríamos escrupulosamente su decisión.

La tarea de contactar con Andrés, exponerle la recuperación del contenido de los discos y pedirle autorización para ponerlos a disposición del público iba a caer en la persona más apropiada para ello, el propio Adonías, que fue a quien Andrés le cedió el material para exponer, pero entonces… sobrevino la debacle. A pocas semanas de la celebración de RetroMadrid 2014, un grave contratiempo de caracter personal obligó a Adonías a retirarse de la organización del evento, dejar su puesto al frente de la AUIC y sus colaboraciones en distintos medios y, en definitiva, a quedar a efectos prácticos “fuera de la circulación”. El tema “DAAD” quedó, también a efectos prácticos, en el limbo, salvo por el hecho de que durante un tiempo no dejé de dar la brasa a Jaime con mails del tipo “¿se sabe algo ya?” e insistiendo hasta el colmo de la plastez con preguntas sobre si se había efectuado la delicada y diplomática tarea de obtener ese permiso.

Y mientras todo eso sucedía, no pudimos evitar sucumbir a la tentación de poner a prueba el “nuevo/viejo” invento. Tras examinar minuciosamente el contenido de los distintos discos y la documentación, que andaba dispersa en varios ficheros de formato exótico (una versión del WordStar del año catapún, pero catapún, catapún XD ) pudimos comprobar que había suficiente material e información para tratar de poner el sistema en funcionamiento.

Básicamente el DAAD funcionaba escribiendo en un fichero de texto la aventura en un formato de condactos muy similar al PAWS, aunque sin algunos de sus mecanismos por defecto (dejando en manos del autor reproducirlos por su cuenta y añadiendo una dosis mayor de “libertad a costa de mayor esfuerzo”). Este fichero, mediante un compilador llamado desde la linea de comandos del MS-DOS, se transformaría en una base de datos que, dependiendo de los parámetros invocados al ejecutarlo, sería específica de cada una de las distintas plataformas de la época soportadas (Spectrum, CPC, Amiga, etc…). La base datos se traspasaría, con el hardware adecuado, a la plataforma destino, donde se fusionaría con un progama ejecutable también específico de cada sistema para producir el juego final.

La buena noticia es que el proceso era, en la mayoría de los casos, maravillosamente reproducible usando imágenes para emuladores de hoy en día, con lo que fue “relativamente” (siempre entre comillas) fácil crear una pequeña demo de ensayo. Durante un par de mañanas domingueras en las “CPCmaniacas” quedadas madrileñas del GUA pude, netbook en mano, crear una pequeña aventura: unas pocas localidades, un par de puzzles facilones, unos PSI bastante estáticos y muy poco habladores basados en chistes privados de los habituales a esas reuniones, y hasta un cameo del propio Samudio Incluso fue posible añadir, a las versiones para máquinas de 16 bits, unos pequeños gráficos digitalizados con fotos de los asistentes (tras pelearse un buen rato con las paletas de 16 colores propias de la época y con los formatos de los ficheros de Atari ST, la máquina donde se manipulaban por defecto en AD en su momento).
Lo verdaderamente interesante era cómo, tras haber diseñado la aventura en si misma, era totalmente factible crear, con unos pocos cambios en los parámetros del compilador y algo de trasteo en las máquinas de destino, las distintas versiones totalmente funcionales para los distintos sistemas. En nuestro caso pude hacer versiones para Spectrum y CPC (sin gráficos, no porque no se pudiera sino por falta material de tiempo) y para MS-DOS, Atari ST y Amiga (éstas con gráficos de fotitos digitalizadas en b/n). Podrían haberse hecho también versiones para Amstrad PCW, MSX y C64. No hize para PCW por desconocimiento absoluto por mi parte de la máquina, pero seguro que es totalmente posible. Para MSX el tema era más peliagudo, ya que la documentación, en la parte que tendría que explicar como hacer el port, se limitaba a aseverar que el proceso en esta máquina era algo así como para “darle de comer aparte” y zanjar la cuestión diciendo que la explicación se salía de las posibilidades del manual (eer, sí, tal cual XD ). Y para C64… como ya comenté, los ficheros se han perdido, pero… ¡hey! si hemos llegado hasta aquí, no hay que perder la esperanza

Si alguien tiene curiosidad por ver el resultado de la demo, muy convenientemente titulada “En Busca del Paser Perdido“, puede echar un tejo por aquí.

Edición de RetroGamer de La Diosa de Cozumel, producida por Matra y con portada de Azpiri. Foto del material de Samudio expuesto en Madrid games Week 2013 sacada del blog de Vintagenarios en la que pueden verse los discos del DAAD. Pruebas realizadas durante una quedada del GUA, con la demo de En Busca del Parser Perdido ejecutandose en un Amstrad CPC real y las versiones MS-DOS y Spectrum emuladas en un netbook y una tablet respectivamente.

Pero aún con la demo acabada y el “parser perdido” aparente convertido en el “parser encontrado”, al menos en un 90% de su totalidad, seguíamos teniendo la asignatura pendiente de, con Adonías fuera del mapa, encontrar quien le pusiera el cascabel al gato y obtuviese la deseada autorización de su autor para poder compartirlo. Pasaron, literalmente, meses con el tema en suspenso. No pasaba una sola quedad del GUA sin que persiguiese hasta la extenuación a Jaime preguntandole “¿alguien ha hablado ya con Samudio?“, “¿alguien ha hablado ya con Samudio?“, “¿alguien ha hablado ya con Samudio?“… y así ad nauseam XD … hasta que me dio la respuesta obvia: “oye, y ¿por qué no lo intentas tú…?

-VALENCIA, 2014:
Y en un pasillo apartado de la feria Valencia Va De Retro, tras secuestrar a Andrés Samudio de su sesión de firmas, me dirijo a él diciendo: “Eer, a ver por dónde empiezo a contarte ésto…

… ahora, por obra y gracia de la elipsis, puedo ahorraros la charla en la que que le cuento a Andrés todo el bloque de párrafos anterior y pasar directamente a su respuesta, que, tal y como le contaba en un mail a Jaime pocos días después, venía a ser…

… … que estará encantado de que se use el DAAD para hacer aventuras y de que lo pongamos a la libre disposición del público colgándolo donde y como nos parezca! Que si volvemos a necesitar los discos para lo que sea que se los pidamos con toda tranquilidad, y que, en sus (casi exactas) palabras “os corresponde a vosotros ahora usarlo, ponerlo donde sea, y darle el uso que queráis

Eer ¿Había dicho antes que, además de ser una figura fundacional e inspiracional en el mundo de la aventura conversacional en español, Andrés Samudio es… un tío majo?

Poco después de que se publique este post, los ficheros se subirán a la zona de descargas de la web del CAAD, y no mucho después, con toda seguridad y Jaime mediante, al FTP habitual de los usarios de Amstrad, amén de otros posibles repositorios. Seguramente actualize el post con los enlaces concretos o los añada en la sección de comentarios. De momento también hay un enlace a un dropbox en la misma página que la demo, además de un enlace al pdf de la documentación básica para quienes quieran echar un vistazo por curiosidad sin bajarse los 40 MB del conjunto. La idea es que, para evitar el riesgo de que el DAAD vuelva a ser “el parser perdido” estén al menos en varios sitios.

Con la autorización verbal del Sr. Samudio podemos entender que los ficheros tienen lo que podríamos llamar una licencia “freeware”. Sentíos libres de descargarlos, copiarlos, hacer aventuras con ellos… pero si pensáis en algo más raro, como modificarlos o incluirlos en proyectos que tengan el menor ánimo de lucro, recordad que lo procedente, además de lo legal y elegante, es… hacer lo mismo que nosotros, o sea, aseguraos de consultar con el propietario y contar con su autorización.

Tal y como está en la actualidad, la descarga consiste en las imágenes de los discos tal y como se han encontrado. Para trabajar con ellas, el potencial autor de aventuras tendrá que examinarlas por su cuenta y localizar dónde está cada cosa. En la práctica, los únicos requisitos para sacarle partido son:

-un entorno de MS-DOS, real o emulado. Dosbox sirve a la perfección.
-familiaridad con la programación en PAWS (y estar dispuesto a aprender las diferencias)
-no tener miedo a los “entornos de programación sin entorno de programación” o sea, a trabajar con ficheros de texto compilados desde la línea de comandos.
-controlar algo de inglés, ya que parte del manual está en ese idioma.

Como mínima ayuda, al menos en la versión que subiremos en el CAAD, se incluirá la documentación recopilada en un fichero pdf fácilmente legible en un ordenador moderno. Originalmente eran varios ficheros dispersos de WordStar… ¿os acordáis cuando el procesador de textos WordStar era lo más de lo más? XD

Trabajar con el DAAD no es difícil, pero tampoco es un proceso que pudieramos llamar “intuitivo”. Acostumbrados a las facilidades de los sistemas de creación de software actuales, la aridez de las ventanas negras del MS-DOS puede intimidar a más de uno. Pero si un servidor, que es cualquier cosa menos un ingeniero informático, ha podido hacer una aventura pequeñita de prueba, seguro que muchos de vosotros, y no digo ya los expertos en programación “retroinformática”, puede, con el tiempo y la calma debidos, embarcarse en proyectos más ambiciosos de aventuras largas para varios sistemas. Cabe la posibilidad de que en un futuro se prepare una descarga con el material más organizado, o puesto de un modo más “user-friendly” que dirían los guiris. Hasta podría pensarse en un tutorial. Pero todo eso son planes hipotéticos y a largo plazo.

Lo bueno es que ahora tenemos la oportunidad al alcance de la mano de asomarnos a la ventana de la Historia aventurera española y, si nos atrevemos, de tocarla con nuestras manos y hasta de experimentar con ella. Me gustaría, a riesgo de pasarme tres pueblos de cursi, invitaros a todos los entusiastas de la aventura a uniros a mí en un agradecimiento colectivo a Andrés Samudio…

… por haber guardado esos discos durante todos estos años (¡eh! imaginate que le hubiese dado por tirarlos pensando que ya no servían para nada XD )
… y por no tener inconveniente en que se pongan al alcance de quienes estén interesados en su uso o estudio.

Un trozo más de la Historia del soft clásico español ha sido recuperado. Así que ya sabéis: ¡corred la voz! y, por supuesto, nunca dejéis de jugar aventuras, y si, además, os apetece hacerlas para sistemas “retro”, ya tenéis una opción más… ¡y ésta de las profesionales!

CategorĂ­as: Planeta

Mis planes tras la Rayuela

Planeta Aventurero - Hace 10 horas 31 mins

Ya casi ha terminado el plazo de presentación de obras de la Rayuela interactiva. Ya van más de diez obras presentadas, lo que está muy bien, aunque dado el número de inscritos espero que se alcancen más de veinte obras en las próximas horas.
Yo no he podido participar como quería, y como mucho me limitaré a subir una versión revisada de Ananké, con alguna mejora en cómo se ganan y pierden los puntos de 'adoración', para darle más dinamismo al juego.
He estado tentado —para ser sinceros sigo tentado— de crear una versión interactiva de un viejo relato no publicado llamado 'Por nuestro Señor' que va de relatividad en las religiones.  También he estado pensado en terminar la versión uno de mi 'Sillyberry' porno que va de rollo de demonios, llamada 'Lo hacemos porque os amamos' y subirla a itchio. Pero sería una participación enormemente precipitada, mala, puramente testimonial, por darme el gusto de haber incluido un texto interactivo a la Rayuela, así que lo verdaderamente lógico es pensar en qué voy a hacer en el futuro.
Tengo un relato bastante pensado para 'Actos de Fé' de Cerbero, pero no he escrito ni una palabra, así que creo será buena idea intentarlo. Conociéndome será algo como dos tardes de improvisar como un animal hasta las tres mil palabras, luego dos semanas de arrastrar los pies en la corrección y finalmente un arrebato absurdo de mandarlo en la que me dejaré un porrón de erratas.
Pero necesito pero YA ponerme a hacer una obra interactiva larga. Y la verdad es que tengo dudas, entre rehacer 'Apache' en Inform 7 y completarla, o hacer la obra que más me apetece pero que no creo que sea muy popular 'Sortilegios'.
Tal vez haga las dos cosas.
:)
Pero sin prisas.
CategorĂ­as: Planeta

Rayuela de Arena - 9 y 12 de Agosto

Planeta Aventurero - Hace 10 horas 31 mins
El jueves 9 preparé mi primera y, tal vez única, aportación a la Rayuela de Arena: Ananké, un juego print and play con mucha aleatoriedad y muchos dados, como a mí me gusta.
:)
He tenido más bien poco tiempo para probarlo, así que tan sólo espero que no esté demasiado desbalanceado. Lo que sí que tengo claro es que tiene una buena cantidad de color y 'cosas chulas', como decía Rubén hace tiempo. Así que, al menos, espero que sea divertido. ¡No os olvidéis de comentar aquí mismo vuestra experiencias con Ananké, que tengo mucha curiosidad!
Y ahora vamos con 'La Torre y el Mar'. Dadas las circunstancias médicas de mi madre ya me queda claro que no puedo implementarlo con Inform 7, así que hoy he decidido pasar el proyecto a Squiffy. Ya he traspasado textos y también he estado recopilando efectos sonoros adecuados.
Tal vez intente localizar efectos visuales para el fondo, pero no sé si me dará para tanto...
Y... ¡¡Suerte a todos los participantes!!
CategorĂ­as: Planeta

Rayuela de Arena - 7 de Agosto

Planeta Aventurero - Hace 10 horas 31 mins

La cosa va avanzando pero demasiado lento. Al final estoy teniendo mucho menos tiempo de lo esperado, pero al menos ya casi tengo la primera versión de 'Ananké', el Print and Play que dije que iba a presentar. Han quedado una reglas chulas, complejillas, pero fáciles de entender (espero) y creo que puede dar bastante juego.
Me falta terminar de maquetar y diseñar las fichas/cartas del juego, supongo que esta semana estará para subirlo. Así me olvidaré de él y podré intentar centrar mi cabeza en 'La torre y el mar', aunque... la verdad es que por alguna razón se me va el pensamiento en el relato que se me a ocurrido para esta convocatoria de Editorial Cerbero y al relato que he empezado a hacer con Gema Moratalla.
CategorĂ­as: Planeta

Rayuela de Arena - 2 de Agosto

Planeta Aventurero - Hace 10 horas 31 mins
Hoy no he tenido casi tiempo, así que ha sido sobre todo un día de reflexión y revisión. He estado seleccionando algunas imágenes para "Ananké", y viendo si queda mejor en forma de documento o de powerpoint. Normalmente hago un powerpoint para los Print and Play, pero no queda nada profesional, así que esta vez creo que haré un documento, como cuando Rubén me obligó a montar unas instrucciones independientes para "Kala". 
En cuanto a "La torre y el mar", he hecho algunas pruebas con Squiffy (sí, realmente lo voy  reescribir), porque tiene mucho componente de diálogo y en Inform 7 siempre me quedo insatisfecho con las conversaciones. No me gustó nada como quedó en El Anillo 3 el diálogo final por menús. En lo que hice de Berg al menos el menú tenía gracia, pero seguía por ser insatisfactorios. En el mundo anglo se usa mucho las conversaciones por 'tema', pero siempre me ha parecido que es una forma de elección 'ciega'. Incluso en Alabaster, que es de las mejores conversaciones que he visto por 'tema' en realidad queda regular.
Así que le he estado dando muchas, muchas vueltas; y muy cerca he estado de pasarme a Squiffy, pero las pruebas de hoy no me han convencido, quiero que el interlector tenga más libertad. Así que al final lo que he decidido es usar masivamente las librerías AKI y mezclar los 'temas' de conversación entre los diversos enlaces del texto disponible, y tal vez cree un comando '>> temas'.
Ya iremos viendo.
CategorĂ­as: Planeta

Rayuela de Arena - Inicio

Planeta Aventurero - Hace 10 horas 31 mins
Ya empieza la Jam de ficción interactiva de este año. De hecho dado el número de inscritos se puede decir que es la Comp de esta década, es más, con ochenta inscritos es sin duda la de mayor éxito de la historia desde el concurso de aventuras de MH, que tuvo cien participantes.
Sí señores ya empieza la Rayuela de Arena y si alguna vez habéis estado en esto de la narrativa interactiva no deberíais perdérosla, ya que la cosa promete marcar un antes y un después.
Sinceramente estoy muy sorprendido. Cuando Edu Sánchez apareció por euphoria diciendo que iba a crear una Jam que lo iba a petar, sinceramente no le creí. ¿Por qué iba a creerle? Yo mismo he organizado unas cuantas comps a lo largo de los años, incluso poniendo premios o dinero como acicate y el resultado ha sido reguleras. Nunca he logrado atraer a más de veintipocos inscritos y no sé si alguna vez hemos llegado a las diez obras participantes.
¡Así que congratulémonos!
Voy a preparar dos obras, como hice en la Jam del Mar: un juego P&P que he estado bosquejando estos días y si hay suerte subiré La torre y el mar. El juego P&P es porque me conozco y sé que en Agosto me entierro en partidas de rol del viejo Akaram y lo mismo... en fin, es para que al menos haya algo mío en este evento que espero que sea histórico. Os puedo adelantar el título 'Ananké'. En cuanto a "La torre y el mar", muchas han sido las cosas que han cambiado desde que la inicié, incluyendo la muerte de mi padre, así que básicamente la voy a reescribir por completo y además he decidido no hacer nada hasta hoy, el día de comienzo de la jam.
Es por una tontería romántica.
La verdad es que siempre he querido ser capaz de hacer esto. Sólo cuando cree desde cero en un fin de semana Pronto me acerqué a ello; y sin duda "Pronto" es mi obra más extraña y personal. Y necesito que "La torre y el mar" lo vuelva a ser. Y, claro, también envidio a Blue Lacuna en muchos otros aspectos, empezando por su sorprendentemente hermosa web (¿no veis, no sé, cierto parecido con mi blog?, pues ya sabéis), pasando por su longitud y terminando en el impacto que tuvo lo conseguido de su sistema de comandos de una palabra, que me hizo crear una librería a partir de la de Aaron y modificar Anillo 3 con ella.
Pero no nos engañemos, aunque empiezo mis vacaciones el viernes, sé que muchos días no tendré tiempo ni para sentarme aquí. Y la verdad, ahora mismo sufro un 'síndrome' (o una realidad) del impostor (parece que ni en 200 palabras soy capaz de detectar todos los gazapos), bastante chungo, así que... es más probable que no veáis esta vez tampoco "La torre y el mar".
No voy a hacer una web tan chula, ni grabar un video chulo como el de Blue Lacuna, pero al menos intentaré mantener un diario de mis avances en la Rayuela del Siglo en este blog.

CategorĂ­as: Planeta

Tutorial de juegos 'rpg' para Inform 7 - Acero (5) - Acciones

Planeta Aventurero - Hace 10 horas 31 mins
Hasta ahora tenemos una forma 'crear' personajes, obtener sus características, niveles de grupo de habilidad y porcentaje de habilidades, así como hemos creado lo necesario para poder hacer las tiradas; pero nos falta relacionar lo que 'ocurre' en la narración con las tiradas y sus resultados.

Desde luego podríamos usar las funciones que hemos creado hasta ahora para incluir verificaciones en cada una de las tiradas necesarias en todos 'Instead of' de la obra, de una manera similar a cómo informábamos del lanzamiento de flechas por parte de nuestro lagarto. Pero entonces tendríamos un código bastante feo y nada propio de Inform 7. ¿Cómo podemos hacerlo más natural?

Lo primero sería relacionar las acciones con la tirada que les corresponde, podríamos pensar en tablas para hacer esto, pero las 'acciones' en las tablas de Inform 7 están limitadas a definiciones de acciones concretas y nosotros necesitaríamos una relación con acciones genéricas, tal abiertas como sea necesarias. De forma que vamos a organizarlo mediante unas reglas nuevas 'validate roll', y así de paso aprendemos cómo usar libros de reglas nuevas. Nuestro objetivo será lograr algo como esto:

The last roll result is a skill roll result that varies.

Before doing anything:
now last roll result is the skill roll result produced by the validate roll rules.

Before a character (called the actor) doing anything:
now last roll result is the skill roll result produced by the validate roll rules.

Podemos usar una variable global porque Inform 7 sólo va a verificar una acción cada vez y 'doing anything' va a cubrir todas las acciones. Se puede ver que Inform 7 tiene acciones para el jugador y para los PNJs, así que tenemos que cubrir las dos. Las reglas de 'validate roll' se declaran de esta forma:

Validate roll rules is a rulebook producing a skill roll result.

Es decir, son reglas que actuarán sobre una acción y generan un resultado de tirada. Los valores por defecto serían:

Validate roll doing anything:
rule succeeds with result success.

Validate roll a character (called actor) doing anything:
rule succeeds with result success.

Es decir, si no definimos una verificación concreta a hacer cualquier acción tiene un éxito como resultado. Una verificación básica podría ser:

Validate roll jumping:
rule succeeds with result the normal roll jump for the player.

Validate roll a character (called actor) jumping:
rule succeeds with result the normal roll jump for the actor.

Y ya aquí nos encontramos con una dificultad, si corremos el juego e intentamos '>> salta'  os dará un error. Se debe a que el jugador ahora mismo no es un character y por lo tanto no tiene porcentajes en sus tiradas.

No es posible simplemente decir que el jugador es un personaje de tal o cual tipo porque el jugador y nace como un person y no se puede redefinir sobre la marcha. Para dar cualidades especiales al jugador en Inform 7 hay que crear un objeto de personaje nuevo y cambiar tras el inicio del juego el objeto del jugador por el que hemos creado para él, por ejemplo con:

The selected player is wolferm human in the explanada.

When play begins:
let old player be the player;
now the player is the selected player;
remove old player from play.

Fijaos que lo he llamado 'jugador seleccionado', porque en realidad en el juego habrá que crear alguna clase de introducción que nos permita seleccionar o crear dicho personaje. Con esto ya funcionará el verbo salta para el jugador, claro que si queréis que se use la tirada del salto tendréis que crear reglas específicas sobre lo que pasa con el jugador cuando da un saltito. Eso os lo voy a dejar como ejercicio. Hagamos ahora que el lagarto dispare de 'verdad'. Lo primero es que en S3 cada arma tiene una dificultad de disparo diferente, así que tendremos que adelantar un poco del futuro capítulo de armas para poder definir la categoría de arco que el lagarto va a usar:

Chapter - Weapons

A weapon is a kind of thing.
A projectile weapon is a kind of weapon.
A bow is a kind of projectile weapon.
A long bow is a kind of bow.
A short bow is a kind of bow.
A composite bow is a kind of bow.

Y ahora ya le podemos dar al lagarto un arma haciendo esto:

El arco blanco is a long bow.
Sherack is carrying arco blanco.

Y ya podemos hacer una versión simplificada de las reglas de 'disparar', para el caso de 'arco largo' de esta forma:


Validate roll shooting a long bow:
rule succeeds with result the difficult roll use bow for the player.

Validate roll a character (called actor) shooting a long bow:
rule succeeds with result the difficult roll use bow for the actor.

Dado que disparar con el arco largo  en S3 es una acción dificil. Si añadimos un poco de maquillaje para verificar el resultado de la acción con:

Chapter - Definition for simplified the when for Insteads

To decide if success:
if the last roll result is success:
decide yes;
decide no.

To decide if success completely:
if the last roll result is special success:
decide yes;
decide no.

To decide if failed:
if the last roll result is failure:
decide yes;
decide no.

To decide if failed completely:
if the last roll result is disaster:
decide yes;
decide no.

Ahora ya podemos escribir:

To say Sherack disparando:
say "Sherack dispara contra la diana".

Instead of Sherack shooting when failed completely:
say "[Sherack disparando], pero tan sólo consigue golpearse con la cuerda del arco en la mejilla.".

Instead of Sherack shooting when failed:
say "[Sherack disparando], pero la flecha pasa por encima del muñeco.".

Instead of Sherack shooting when success:
say "[Sherack disparando] y acierta en el muñeco de entrenamiento.".

Instead of Sherack shooting when success completely:
say "[Sherack disparando] y acierta justo en entre los ojos del muñeco de entrenamiento.".

Véase como se pueden escribir frases de 'To say' para no repetir texto. Y ahora ya sólo tenemos que decirle al lagarto que dispare cada turno:

Every turn:
try Sherack shooting arco blanco.

Pues ya tenemos una forma de añadir las tiradas necesarias para cada acción que ya podemos usar en nuestra historia. En la próxima entrega hablaremos de armas y, tal vez, armaduras.

El estado de 'acero' es este y el de la librería este.
CategorĂ­as: Planeta

Midiendo la agencia

Planeta Aventurero - Hace 10 horas 31 mins
Debido a la cercana jam de narraciones interactivas religiosas-mitológicas, se ha estado hablando de la 'agencia' de los relatos interactivos. De su importancia o falta de importancia —en realidad la 'agencia' en casi todas las obras interactivas que ha creado el mundillo en décadas es muy baja—, y de cuánta 'agencia' tienen las obras que son interesantes. ¿Y qué es eso de la 'agencia'?
La definición filosófica como puedes leer en la wikipedia es: "[...] la capacidad que posee un agente (una persona u otra identidad) para actuar en un mundo [...]". Podéis ver que en realidad es un concepto muy abstracto y que para los que no creemos en el 'libre albedrío', pues casi que es cháchara, pero en el contexto de las creaciones interactivas tiene un significado muy concreto: la agencia es la capacidad que tiene el 'interlector' de seleccionar el devenir de la historia. Si estamos hablando una ficción interactiva es evidente que el 'interlector' va a hacer elecciones y que el detalle del discurrir de la historia será diferente en 'extensión', pero si resulta que la historia tiene una estructura como esta:


¿Realmente ha habido alguna capacidad de "actuar sobre el mundo"? Más bien no, de hecho podemos decir que con ese esquema de historia la 'agencia' es de 1: sólo hay un destino final posible hagas lo que hagas. No tienes elección real, no tienes capacidad para modificar el mundo.
Hay un montón de artículos que intentan clasificar 'topologías' de historias, analizando la 'forma' de estos árboles de branching. Por ejemplo este es un artículo interesante sobre el asunto. Y más allá, hay mucha gente intentando escapar de diversas formas de estos modelos de bifurcación y buscando alternativas que dependen del estado del mundo, o de bifurcaciones 'retrasadas', etc... pero este artículo no va a ir de nada de eso.
Este artículo va de algo más 'numérico', ¿podemos medir la agencia? y... ¿podemos evaluar la utilidad de desarrollar una determinada rama o es preferible podarla? Para ello usaremos siempre el mismo ejemplo, que debemos detallar primero. Imaginemos una historia muy corta que tiene esta árbol de escenas:

En esta historia empezamos con la escena I (de inicial) que nos permite escoger entre A y B. A nos permite escoger entre los finales C y D, mientras que la B siempre nos lleva al final E. ¿Cuál es la agencia de esta historia? Una respuesta simple sería 3. Hay tres finales posibles, ¿no? Así que el interlector puede escoger entre 3 destinos diferentes según escoja a lo largo de la historia. Pero eso es una respuesta en realidad demasiado simplificada. Imaginemos que nuestra historia tiene 'tirón' y podemos hacer estadísticas y nos encontramos con que cada final tiene una probabilidad muy diferente, por ejemplo esta:

Seguir diciendo que la agencia de la historia es 3, sería bastante ingenuo ya que la mayor parte de los interlectores 'ven' el mismo destino podríamos inclinarnos por pensar que la agencia es más bien 1; pero eso tampoco es muy 'correcto'. ¿Podemos dar un número más objetivo al número de 'destinos aparentes' de la historia y por lo tanto más cercano a la 'realidad' de su agencia?

Sí, podemos.  Podemos recurrir a la teoría de la información de Shannon, que nos indica que el número de bits mínimo que necesitamos para codificar un símbolo de un sistema de comunicación (¿y no es una historia interactiva un sistema  de comunicación con mensajes potenciales diferentes?) tiene como valor:


Li=log2(1/Pi) = -log2(Pi)
Y que por lo tanto el total de bits que proporcionan todos los símbolos posibles del sistema de comunicación (en nuestro caso los finales) es la suma ponderada de esos bits, o sea:



Que no es otra cosa más que la 'entropía' del sistema de comunicación, y en nuestro caso la entropía de nuestra historia. Dado que esa métrica está en número de bits necesarios para saber cuánto es la 'agencia' en 'destinos diferenciables' nos basta con elevar dos a ese número. Daos cuenta que en el caso de que las probabilidades de elección de los diversos finales estuviese perfectamente equilibrada el valor de agencia obtenido coincidiría exactamente con el número de finales posibles.

¿Cuánto valdría la agencia en el caso del ejemplo? Pues:


H = - 0.05 * log2(0.05) - 0.8 * log2(0.8) - 0.15 * log2(0.15)H =  0.216 + 0.257 + 0.410H = 0,883
Agencia = 2^H = 1,84
Es decir, en realidad hemos escrito una historia que se percibe como de 'agencia' algo inferior a 2. En esta historia, como es muy simple, sólo con la estadística de los finales escogidos podemos reconstruir cuál a sido la preferencia de elección del interlector en cada nodo.

Con todos los porcentajes de elección a la vista resulta evidente que la elección A --> C no es nada deseada por nuestros interlectores, ¿ha merecido la pena gastar el tiempo en hacerla? Veamos la agencia percibida sin la existencia de C.
% de D sería 85% y el de E 15%H = -0.85 * log2(0.85) -0.15 * log2(0.15)H = 0.199 + 0.410H =0.609 
Agencia = 2 ^ H = 1,5
La diferencia entre poner y no poner C es de 0.3 finales, mientras que el coste se ha incrementado... ¿en cuanto? Suponiendo que cada nodo cuesta lo mismo habríamos incrementado el coste de la historia en un 1/6 para incrementar su valor de agencia en un 0.3/1.84, o sea un 17% de incremento de coste para un 16% de incremento de valor. Aún es un ratio razonable, pero ya bajo (Daos cuenta que si todos los finales fuesen equivalente estaríamos pasando de agencia 2 a 3 y de coste 5 a 6, es decir un 17% de incremento del coste para un incremento de un 33% del valor percibido).
¡Parece que hemos obtenido una herramienta para calcular si merece la pena o no crear un serie de ramas en una ficción interactiva! 
¿O no?
Alguno estará pensando que he usado las estadísticas finales, es decir, lo que de verdad piensan los usuarios sobre nuestra historia y que cuando la estemos creando no hay forma de saber eso. Bueno... el total es difícil, pero podemos hacer una buena estimación, ya que no es tan difícil hacerse una idea de qué podría escoger un interlector enfrentado a cada elección dada. Hagamos el ejercicio hipotético...
La historia empieza en I y el interlector tiene que escoger entre A y B. Pensándolo un poco vemos que es bastante más probable que escoja A, usando los porcentaje podemos usar por ejemplo que el 80% escogerá A y el 20% escogerá B. En B ya no hay más elecciones, pero A hay que escoger entre C y D, y D parece mucho más probable que C. Siendo generosos (ya que creemos en nuestra historia) asignamos un 10% a C. Para calcular los porcentajes de cada final basta con ir multiplicando hacia el origen y sumando cuando se junten ramas, y nos quedan estos valores:




Los porcentajes no son los mismos, pero se parecen y nos dan una buena idea de que los finales están bastante desequilibrado!! De hecho la agencia que nos sale es de:


H = - 0.08 * log2(0.08) - 0.72 * log2(0.72) - 0.20 * log2(0.20)H =  0.292 + 0.342 + 0.466H = 1,1

Agencia = 2^H = 2,1
Como veis, incluso con nuestra estimación demasiado generosas con la elección B y la elección C, parece claro que algunas de los finales y ramas están sobrando, y viendo los porcentajes que salen queda claro qué rama/elección es la que sobra.

Este cálculo lo podríais refinar más si en cada punto de decisión tenéis en cuenta cuántos nodos/trabajo hay bajo la decisión que os parece improbable, y recordad que si añadís una rama de 'baja popularidad', excepto que se una mucho más adelante con una de mucha popularidad la probabilidad de los finales que vaya a generar no hará más que bajar y bajar a medida que avance la historia.

Una última anotación: la forma de la función H(p) = -p * log2(p) es la de la gráfica de abajo...




Podéis ver que el máximo de esta función está entre el 0.3 y el 0.4, así que cuando vayáis a bifucar vuestra historia deberías pensaros bien si merece la pena incluir alguna opción que tenga menos del 30% de probabilidad de ser escogida por parte de los interlectores.

Espero que este articulillo lleno de logaritmos os haya resultado ilustrativo y os sea de utilidad a la hora de decidir cuántas y qué elecciones ponéis en vuestras historias.

Nota final sobre el valor de los finales: todo lo que hemos argumentado aquí puede verse significativamente modificado si algunos de los finales aunque sean muy improbables son muy impactantes. Puedes ajustar los cálculos del valor de las ramas añadiéndoles un valor del impacto de tal final improbable, pero ¡cuidado!, piénsate muy bien si quieres realmente gastar tu tiempo en crear un final muy muy chulo pero que muy poca gente vaya a ver, ya que eso, más que parte integrante de la obra, será un 'huevo de pascua'.



CategorĂ­as: Planeta

Tutorial de juegos 'rpg' para Inform 7 - Acero (4) - Tiradas

Planeta Aventurero - Hace 10 horas 31 mins
En la anterior entrega vimos como en S3 se calculan los porcentajes de cada una de las habilidades y cómo esto se podría trasladar a la extensión que estamos haciendo; pero aún nos quedan dos pasos más que dar. Lo primero es conocer cómo se hace la tirada de éxito en sí. Es decir, en una partida de tablero como tal si un jugador intenta digamos que acertar algo con una flecha, ¿qué tira y cómo sabe si ha tenido éxito o no? Lo segundo que nos falta es ver cómo aplicar estas tiradas a las 'acciones' de una obra interactiva de parser.
Veamos lo primero. Las tiradas de acción en S3 se hacen lanzando un d%, es decir, dos dados de diez caras en los que se ha escogido cuál es el dado de las unidades y cuál es el de las decenas. La regla básica es muy simple, si la tirada es igual o menor que el porcentaje es un éxito y si es superior es un fracaso. 
En S3 en realidad se distinguen entre dos categorías de éxito y dos de fracaso. Cuando el dado de unidades es un 1 y el número total es inferior al porcentaje entonces no sólo es un éxito sino un éxito especial. En el caso de fallos, los fallos pares acabados en cero serán desastres. Los especiales y los desastres permiten dar más color a las partidas y jugar con cosas improbables. Lo primero sería declarar las categorías de resultados posibles, esto lo podemos hacer creando un nuevo tipo de valor de esta forma:
Chapter - Rolling a skill

A skill roll result is a kind of value.
The skill roll results are disaster, failure, success, special success.

Ahora necesitamos la función que haga la tirada y nos diga qué ha resultado. Usaremos de nuevo la librería de dados y algunos cuantos cálculos matemáticos con partes enteras y la función 'módulo' de esta forma:

To decide which skill roll result is the roll ( skill - a skill ) for ( char - a character ):
let base roll be the roll of d%;
let success percent be the percent in skill for char;
let units be the remainder after dividing base roll by 10;
let tens be base roll divided by 10;
if base roll is greater than the success percent:
[FAILURE]
if units is 0 and the remainder after dividing tens by 2 is 0:
decide on disaster;
otherwise:
decide on failure;
otherwise:
[SUCCESS]
if units is 1:
decide on special success;
otherwise:
decide on success.

¿Cómo se usaría esta función? Pues hagamos que nuestro lagarto arquero dispare todos los turnos de juego, como si estuviese practicando con el arco:

Every turn:
say "Sherack dispara contra la diana: [roll bow for Sherack].".

Si corremos ahora la obra veremos que salen esta clase de mensajes:

>i
No llevas nada.

Sherack dispara contra la diana: special success.

>i
No llevas nada.

Sherack dispara contra la diana: success.

>i
No llevas nada.

Sherack dispara contra la diana: failure.

>i
No llevas nada.

Sherack dispara contra la diana: disaster.

Mola, aunque evidentemente habría que darle un formato mucho más bonito, ¿no? Algo como:

Every turn:
say "Sherack dispara contra la diana";
let result be roll bow for Sherack;
if result is special success:
say " acertando justo en entre los ojos del muñeco de entrenamiento.";
otherwise if result is success:
say " acertando en el muñeco de entrenamiento.";
otherwise if result is failure:
say ", pero la flecha pasa por encima del muñeco.";
otherwise:
say ", pero tan sólo consigue golpearse con la cuerda del arco en la mejilla.".

Mucho mejor ahora, pero hacer esto por todas partes de la historia no parece muy buena idea, ¿no? Parte del problema es el que os expliqué en la primera entrada del tutorial, ¿realmente quieres todo esto en tu obra? Pero en realidad podemos buscar algunos mecanismos generales que nos permitan simplificar un poco toda esta codificación. Eso lo veremos en la siguiente entrega.

En realidad las tiradas en S3 no son siempre el porcentaje de la habilidad, a veces es necesario considerar tiradas sencillas, difíciles, etc... esto se logra de esta forma:

Chapter - Difficulty levels

A difficulty level is a kind of value.
The difficulty levels are extremely easy, very easy, quite easy, easy,
simple, normal, complex, difficult, quite difficult, very difficult, extremely difficult, impossible.

To decide which number is the modification percent of (difficulty - a difficulty level):
if difficulty is extremely easy:
decide on 75;
if difficulty is very easy:
decide on 60;
if difficulty is quite easy:
decide on 45;
if difficulty is easy:
decide on 30;
if difficulty is simple:
decide on 15;
if difficulty is normal:
decide on 0;
if difficulty is complex:
decide on -15;
if difficulty is difficult:
decide on -30;
if difficulty is quite difficult:
decide on -45;
if difficulty is very difficult:
decide on -60;
if difficulty is extremely difficult:
decide on -75;
if difficulty is impossible:
decide on -90.

To decide which skill roll result is the roll (skill - a skill) for (char - a character):
decide on normal roll skill for char.

To decide which skill roll result is the (difficulty - a difficulty level) roll (skill - a skill) for (char - a character):
let base roll be the roll of d%;
let success percent be the percent in skill for char;
increase success percent by the modification percent of difficulty;
let units be the remainder after dividing base roll by 10;
let tens be base roll divided by 10;
if base roll is greater than the success percent:
[FAILURE]
if units is 0 and the remainder after dividing tens by 2 is 0:
decide on disaster;
otherwise:
decide on failure;
otherwise:
[SUCCESS]
if units is 1:
decide on special success;
otherwise:
decide on success.
Basta por hoy. La obra actualmente está en este estado y la librería en este.
CategorĂ­as: Planeta

Tutorial de juegos 'rpg' para Inform 7 - Acero (3) - Habilidades

Planeta Aventurero - Hace 10 horas 31 mins
En S3 como en BRP las acciones se deciden si son un ´éxito o un fracaso según una tirada de d%. Primero se calcula el porcentaje de éxito, y luego se lanza un d% cuyo resultado debe ser igual o menor que ese porcentaje. Las tiradas en sí y cómo se relacionan con las acciones que Inform 7 entiende lo veremos en el siguiente capítulo pero veamos en este cómo se calcula en S3 el porcentaje de éxito.

He de avisar que este capítulo del tutorial será con diferencia el más enrevesado, de forma que si hay algo que no entendéis muy bien o que os parece demasiado complicado no os preocupéis demasiado. Podría haber simplificado mucho este tema pero he preferido dejarlo tal cuál es en S3 en realidad para que veáis un sistema complejo, la codificación que necesita y opciones de cómo podéis hacerla.

En S3 hay tres capas (es otra de las razones del nombre) de abstracción que determinan finalmente la probabilidad de éxito de una acción concreta. Primero está el conocimiento general más o menos teórico sobre un campo de experiencia del personaje (tales como 'ciencia' o 'sigilo' o 'artesanía), estos conocimientos están clasificados en lo que se llama 'grupo de habilidades' y tienen un valor que va desde 0 (desconocimiento completo) a 10 (máximo conocimiento teórico). Se llama a estos valores 'niveles' y es lo más parecido que tiene S3 a los niveles de d20. Modelemos primero los niveles de los grupos de habilidad:

Chapter - Group of skills

A group of skills is a kind of object.

Algunos de estos niveles tienen valores 'naturales' en el caso de que sean lo bastante intuitivo como para que cualquier personaje con suficiente agilidad, fuerza o inteligencia pudiese intentar hacer acciones de ese grupo sin necesidad de un entrenamiento. Esto se resuelve en S3 mediante unos niveles base relacionados con las características. Las tablas de estos valores base se han ido ajustando con los años y, aunque se corresponden con niveles de distribución gaussianos, en realidad son fruto sobre todo de la prueba y error. Añado todo el código necesario para calcular los niveles básicos de un tirón (mediante tablas y funciones):

Some group of skills are defined by Table of Groups of Skills.

Table of Groups of Skills
a group of skills strength base agility base intelligence base will base size base constitution base
shoot 2 1 0 0 0 0
hand to hand combat 1 0 0 0 0 0
art 0 0 1 1 0 0
craft 0 0 0 0 0 0
athletic 1 1 0 0 0 0
science 0 0 0 0 0 0
language 0 0 0 0 0 0
geo-hist 0 0 0 0 0 0
medicine 0 0 0 0 0 0
perception 0 0 0 1 0 1
stealth 0 1 1 0 1 0
magic 0 0 0 0 0 0

[
FUE CON TAM INT VOL AGI
0 – 5 -2 0 – 1 -2 0 – 5 -2 0 – 3 -2 0 – 2 -2 0 – 2 -2
6 – 9 -1 2 – 4 -1 6 – 9 -1 4 – 5 -1 3 – 4 -1 3 – 4 -1
10 – 13 0 5 – 6 0 10 – 13 0 6 – 8 0 5 – 8 0 5 – 8 0
14 – 17 1 7 – 8 1 14 – 17 1 9 – 11 1 9 – 13 1 9 – 13 1
18 – 21 2 9 – 10 2 18 – 21 2 12 – 15 2 14 – 17 2 14 – 17 2
22 – 24 3 11 - 12 3 22 – 24 3 16 – 19 3 18 – 21 3 18 – 21 3
25+ 4 13+ 4 25+ 4 20+ 4 22+ 4 22+ 4
]

To decide which number is strength base plus of (car - a number):
if car is less than 6:
decide on -2;
if car is less than 10:
decide on -1;
if car is less than 14:
decide on 0;
if car is less than 18:
decide on 1;
if car is less than 22:
decide on 2;
if car is less than 25:
decide on 3;
decide on 4.

To decide which number is size base plus of (car - a number):
decide on strength base plus of car.

To decide which number is constitution base plus of (car - a number):
if car is less than 2:
decide on -2;
if car is less than 5:
decide on -1;
if car is less than 7:
decide on 0;
if car is less than 9:
decide on 1;
if car is less than 11:
decide on 2;
if car is less than 13:
decide on 3;
decide on 4.

To decide which number is intelligence base plus of (car - a number):
if car is less than 4:
decide on -2;
if car is less than 6:
decide on -1;
if car is less than 9:
decide on 0;
if car is less than 12:
decide on 1;
if car is less than 16:
decide on 2;
if car is less than 20:
decide on 3;
decide on 4.

To decide which number is will base plus of (car - a number):
if car is less than 3:
decide on -2;
if car is less than 5:
decide on -1;
if car is less than 9:
decide on 0;
if car is less than 14:
decide on 1;
if car is less than 18:
decide on 2;
if car is less than 22:
decide on 3;
decide on 4.

To decide which number is agility base plus of (car - a number):
decide on will base plus of car.

To decide which number is base level of (group - a group of skills) for (char - a character):
let level be 0;
if strength base of group is greater than 0:
let byStrength be strength base plus of strength of char;
if strength base of group is greater than 1:
increase level by byStrength divided by strength base of group;
otherwise:
increase level by byStrength;
if agility base of group is greater than 0:
let byAgility be agility base plus of agility of char;
if agility base of group is greater than 1:
increase level by byAgility divided by agility base of group;
otherwise:
increase level by byAgility;
if intelligence base of group is greater than 0:
let byIntelligence be intelligence base plus of intelligence of char;
if intelligence base of group is greater than 1:
increase level by byIntelligence divided by intelligence base of group;
otherwise:
increase level by byIntelligence;
if will base of group is greater than 0:
let byWill be will base plus of will of char;
if will base of group is greater than 1:
increase level by byWill divided by will base of group;
otherwise:
increase level by byWill;
if size base of group is greater than 0:
let bySize be size base plus of will of char;
if size base of group is greater than 1:
decrease level by bySize divided by size base of group;
otherwise:
decrease level by bySize;
if constitution base of group is greater than 0:
let byConstitution be will base plus of constitution of char;
if constitution base of group is greater than 1:
increase level by byConstitution divided by constitution base of group;
otherwise:
increase level by byConstitution;
decide on level.

Como he dicho no hay más que experiencia de los años en ese código, no una razón fácilmente explicable. Aunque...

:)

...seguro que se os ocurre cómo simplificar el código que acabo de incluir haciéndolo algo más general y de menor complejidad. Os animo a revisar la sección de listas del manual de Inform 7 y pensar en cómo se podrían usar para mejorar y generalizar el código anterior.

Ya tenemos una forma de 'calcular' los niveles de grupo de habilidad básicos, pero cada personaje tendrá además una experiencia dada en digamos  combate cuerpo a cuerpo o en puntería, ¿no? ¿Cómo incorporamos esta información al personaje en cuestión? La respuesta más obvia sería añadir a character los campos numéricos necesarios que representen todos los niveles que tiene el personaje, pero serían 12 números más y cuando luego añadamos las habilidades serían otros 60 números más... uff... empieza a sonar excesivo. Pensemos un poco mejor. Lo primero es que vamos a usar estos números muy pocas veces a lo largo de la lógica del juego, sólo cuando haya algo de acción usaremos uno de esos números y sólo uno, así que nos podríamos permitir calcularlos 'sobre la marcha', además esto tiene la ventaja de que si provocamos un cambio temporal de las características (por un hechizo por ejemplo) el valor del número se verá afectado sin más. Lo otro a considerar es que probablemente tus PNJs no serán por lo general 'personas completas', tendrán algo de arquetipo y seguramente sólo te interesarán los valores 'relevantes' de cada personaje (la habilidad de arco de un arquero, por ejemplo y no su habilidad para cocinas), así que podríamos pensar en algo que se rellene sólo cuando sea necesario, cuando los valores se desvíen de la base. Esto se puede hacer con tablas en Inform 7 de esta forma (añadiendo el hecho de que la suma total de niveles sólo puede llegar a 10):

Table of Group Skill Level by Character
character group extra
a character a group of skills a number
with 500 blank rows.

To decide which number is the extra level of (group - a group of skills) for (char - a character):
repeat through the Table of Group Skill Level by Character:
if character entry is char and group entry is group:
decide on extra entry;
decide on 0.

To decide which number is the level of (group - a group of skills) for (char - a character):
let total be base level of group for char;
increase total by the extra level of group for char;
if total is less than 10:
decide on total;
otherwise:
decide on 10.

Esta aproximación en Inform 7 tiene alguna limitaciones, puedes ver que he dejado 500 líneas en blanco, eso es todo lo que va a poder soportar la librería. 500 valores de incrementos de niveles de los grupos de habilidad frente a su base. Si pones en tu obra muchíiiisimos PNJs mejor cambia ese número, así que no pongas 10000 orcos distinguibles cada uno con su nombre y sus habilidades.

:)

Nos faltaría una forma de incrementar esos niveles a lo largo del juego, algo como esto:

To increase (group - a group of skills) level of (char - a character) by (amount - a number):
let found be false;
repeat through the Table of Group Skill Level by Character:
if character entry is char and group entry is group:
let initial be extra entry;
increase initial by amount;
now extra entry is initial;
now found is true;
if found is false:
choose a blank row in Table of Group Skill Level by Character;
now character entry is char;
now group entry is group;
now extra entry is amount.

To increase (group - a group of skills) level of (char - a character):
increase group level of char by 1.

Y también una forma de darle valores de niveles a los PNJs al principio del juego, que podríamos hacerlo con esto:

Chapter - Initial levels for characters

When play begins:
repeat through the Table of Initial Extra Levels for Characters:
increase group entry level of character entry by extra entry.

Table of Initial Extra Levels for Characters
character group extra
-- -- --

Ahora ya podríamos proporcionar a Sherack de algo más de carácter haciendo que sea alguien con conocimiento en armas de distancia medio aceptable de esta forma:

Table of Initial Extra Levels for Characters (continued)
character group extra
Sherack shoot 4

Vale, las habilidades son de un grupo de habilidades en S3, y cada una tiene un multiplicador que proporciona el porcentaje base al que se añade la experiencia de cada personaje. Por ejemplo, un personaje con puntería 5 tiene una base de 25% en arco, que puede haber subido hasta 50% si tiene 25% extra que ha ganado como experiencia. Implementar esto es en realidad casi lo mismo que hemos hecho con los niveles:

Chapter - Skill

A skill is a kind of object. Some skills are defined by Table of Defined Skills.

Table of Defined Skills
a skill group multiplier
bow shoot 5

Chapter - Skill sheet for all characters

Table of Skill Percents by Character
character skill base extra
a character a skill a number
with 500 blank rows

To decide which number is the extra percent in (skill - a skill) for (char - a character):
repeat through the Table of Skill Percents by Character:
if character entry is char and skill base entry is skill:
decide on extra entry;
decide on 0.

To decide which number is the percent in (skill - a skill) for (char - a character):
let total be the extra percent in skill for char;
let base level be the level of group of skill for char;
increase total by base level multiplied by multiplier of skill;
decide on total.

To increase (skill - a skill) percent of (char - a character) by (amount - a number):
let found be false;
repeat through the Table of Skill Percents by Character:
if character entry is char and skill base entry is skill:
let initial be extra entry;
increase initial by amount;
now extra entry is initial;
now found is true;
if found is false:
choose a blank row in Table of Skill Percents by Character;
now character entry is char;
now skill base entry is skill;
now extra entry is amount.

To increase (skill - a skill) percent of (char - a character):
increase skill percent of char by the roll of 1d4.

Chapter - Initial percents for characters

When play begins:
repeat through the Table of Initial Extra Percents for Characters:
increase skill entry percent of character entry by extra entry.

Table of Initial Extra Percents for Characters
character skill extra
-- -- --

En este caso sólo he incluido la habilidad de 'arco' en la tabla de habilidades para simplificar un poco el texto. Ahora ya podemos hacer a Sherack un arquero de verdad con:

Table of Initial Extra Percents for Characters (continued)
character skill extra
Sherack bow 60

Y ya tendríamos todo un sistema de habilidades en funcionamiento... al menos para calcular los porcentajes, en los próximos capítulos veremos cómo usar estos porcentajes de verdad en la resolución de acciones.

Podéis ver el estado actual de la librería aquí y del juego aquí.
CategorĂ­as: Planeta

Tutorial de juegos 'rpg' para Inform 7 - Acero (2) - CaracterĂ­sticas

Planeta Aventurero - Hace 10 horas 31 mins

Empecemos con los personajes. En casi todos los sistema de rol los personajes tienen un grupo de números que representan lo más básico y fijo de los mismos: su altura, cómo de fornidos están, su belleza, su relación con la magia, etc... A estos números se les llama por lo general 'características' y es lo primero que se escoge mediante algún procedimiento como el reparto de puntos o el lanzamiento de dados.
En el sistema de ejemplo que estamos usando S3 las características se deciden mediante el lanzamiento de dados y existen:
  • Tamaño: altura y dimensiones en general, para antropomorfos se expresa en unidades de 10 cm de altura, así alguien de tamaño 17 tendrá 170 cm de altura.
  • Constitución: resistencia al dolor, a las heridas, a las enfermedades, etc...
  • Fuerza: la capacidad de levantar pesos, golpear con intensidad, etc... está expresado en unidades equivalentes en número al tamaño para que puedan compararse.
  • Inteligencia: expresados en decenas del CI, así alguien con un INT: 11 tendrá un CI de 110.
  • Agilidad: velocidad, capacidad de reacción, etc... expresado en un rango de hasta 20 puntos para poder transformar en un porcentaje multiplicando por 5.
  • Voluntad: capacidad de concentración, esfuerzo mental, se usa tanto para el aprendizaje como para la imposición de efectos mágico en los demás. También expresados en rangos de hasta 20.
  • Aspecto: belleza física, capacidad de empatía y en general lo agraciado que resulta el personaje hacia los demás. También se expresa en valores de hasta 20, pero en realidad sólo se considera sin ajuste dentro de su propia especie.
  • Poder: esta característica en realidad cambia de significado de campaña en campaña pero representa la conexión del personaje con lo paranormal, ya sea la magia, los poderes psíquicos, etc...
Podríamos incluir en nuestro juego las tiradas correspondientes, pero no parece lo más adecuado, mejor creemos una nueva extensión para el sistema de juego e incluyamos en ella todo lo que tiene que ver con la capa 'rolera' de la historia. Ya sabéis como File >> New extension. Yo a la mía la he llamado 'S3 role playing system'. En realidad debería haber añadido detrás 'SP' para indicar que estará escrita en español, pero dado que va a ser original nuestra, si alguien la quiere traducir al inglés que llame a la suya 'EN'.
:)
Lo primero en la extensión sería extender la clase 'person' a una que va a contener todos los aspectos roleros, de esta formas si hay otras 'person' en la historia que no requieren tener 'ficha de personaje' no sobrecargarán el tamaño de la obra con elementos innecesarios. Esto ya sabéis que se hace con algo tan simple como:
A character is a kind of person.
Sobre esta nueva clase añadimos todas las características de las que hemos hablado, eso es algo tan sencillo como:

A character has a number called strength.
A character has a number called constitution.
A character has a number called size.
A character has a number called intelligence.
A character has a number called agility.
A character has a number called will.
A character has a number called beauty.
A character has a number called power.

Ahora nos queda explicar cómo rellenamos estos valores de características. Normalmente la tirada o la forma de elección en casi todos los sistemas depende de una agrupación a la que se le llama 'especie' o 'raza' y que indica si el personaje es humano, enano, elfo, orco o lo que sea. En la campaña que vamos a usar de base (Akaram) hay una enorme multiplicidad de razas jugables antropomorfas, pero nuestro juego se va a situar en la frontera del Reino de Renorf con las tierras salvajes de los hombres lagarto; por allí sólo suelen encontrarse las razas de humanos del norte (los altos raynos pelirrojos, los fornidos normer de los mares helados y los wolferm morenos) y dos de los tipos de hombres lagaro (los azules sershas y los más grandes, más tontos y rojos slalash). Incluiremos tan sólo estas cinco razas en la extensión de esta forma:

Chapter - Races

A breed is a kind of object. Some breeds are defined by Table of Races

Table of races
a race strength roll constitution roll size roll intelligence roll
agility roll will roll beauty roll power roll
rayno 3d4+11 2d4+2 3d4+11 3d4+2 5d4 5d4 5d4 3d4+2
wolferm 3d4+11 2d4+3 3d4+10 3d4+2 5d4 5d4 5d4 3d4
normer 2d4+15 2d4+3 2d4+14 3d4+1 5d4 5d4 5d4 2d4+2
sersha 3d4+10 1d4+4 3d4+9 3d4+1 5d4+2 2d4+3 5d4 2d4+2
slalash 3d4+12 1d4+7 3d4+11 2d4+2 4d4+1 2d4+2 5d4 2d4

Chapter - Characters

A character is a kind of person. A character has a breed called race.

¿Y cómo se calculan las características de los personajes? Pues incluiremos una función que lance los dados de la raza a la que pertenezca el personaje de esta forma:

To roll dice for (char - a character):
now the strength of char is the roll of the strength roll of the race of char;
now the constitution of char is the roll of the constitution roll of the race of char;
now the size of char is the roll of the size roll of the race of char;
now the intelligence of char is the roll of the intelligence roll of the race of char;
now the agility of char is the roll of the agility roll of the race of char;
now the will of char is the roll of the will roll of the race of char;
now the beauty of char is the roll of the beauty roll of the race of char;
now the power of char is the roll of the power roll of the race of char.

Y cuando comience a ejecutarse la obra buscaremos a todos los personajes y lanzaremos sus dados:

When play begins:
repeat with char running through characters:
roll dice for char.

Esto creará las características de todos los personajes no jugador, para el jugador seguramente querremos al menos permitirle escoger la raza al principio de la obra, así que tendremos que usar 'roll dice for' de forma explícita, pero ya llegaremos a eso. Para simplificar la creación de personajes podemos crear sub-clases de 'character' que sean de una raza dada como por ejemplo:

A rayno human is a kind of character. The race of a rayno human is usually rayno.
A wolferm human is a kind of character. The race of a wolferm human is usually wolferm.
A normer human is a kind of character. The race of a normer human is usually normer.
A sersha lizardman is a kind of character. The race of a sersha lizardman is usually sersha.
A slalash lizardman is a kind of character. The race of a slalash lizardman is usually slalash.

Bien, ya podríamos empezar a escribir un poco de historia. Por ejemplo, creemos un lugar que suene interesante y un PNJ lagarto que esté justo allí.

Chapter 1 - Mapeado

Section 1 - La puerta de las ruinas de Shatard

La explanada is a room. The printed name of explanada is "La explanada frente a la puerta de Shatard".

Sherack is a sersha lizardman in la explanada.

Estupendo, ahora Sherack existe y tendrá su altura, su fuerza, su agilidad, etc...  pero no podemos verlo, ¿no? Incluyamos una función básica para mostrar la 'ficha' del personaje en la extensión:

Chapter - Describing characters

To say sheet of (char - a character):
say "[char]: ([race of char]) STR: [strength of char] CON: [constitution of char]
SIZ: [size of char] INT: [intelligence of char] AGI: [agility of char]
WIL: [will of char] BEA: [beauty of char] POW: [power of char].".

Y cambiemos un poco el examine de los personajes para usar esta pequeña función, así:

Instead of examining a character:
say sheet of the noun.

Si probáis la obra ahora veréis que Sherack mantiene sus características a lo largo de la obra, pero cambiará cada vez que la reiniciéis. Hemos avanzado bastante para un capítulo, en el próximo veremos la habilidades y cómo se usan para decidir si una acción ha sido un éxito o un fracaso.

Podéis descargaros la versión de la extensión aquí y el estado actual de la obra aquí.




CategorĂ­as: Planeta

Fabularium, un intérprete Glk, TADS, HTML, y más, con compiladores integrados

Planeta Aventurero - Hace 10 horas 31 mins

Grandes noticias para los usuarios de Android. Fabularium es un intérprete de juegos de Inform, TADS, Twine, Adrift, Level 9, Scott Adams, Magnetic Scrolls, entre otros, creado por Tim Cadogan-Cowper.

Es una implementación de la especificación Glk de Andrew Plotkin con algunas extensiones e incluso un par de compiladores integrados: el de Inform 6 y el de TADS, lo cual permite crear juegos desde la aplicación.

Esta maravilla es una de las mejores implementaciones de Glk de forma que incluso los juegos más intensivos en multimedia funcionan perfectamente. Por ejemplo, Kerkerkruip, Photopia 2.0, etc.

Está en pleno desarrollo así que es posible contactar con el autor a partir de este hilo en Intfiction.org:

https://www.intfiction.org/forum/viewtopic.php?f=38&t=25433

La aplicación la podéis instalar desde Google Play:

https://play.google.com/store/apps/details?id=com.luxlunae.fabularium

CategorĂ­as: Planeta

Tutorial de juegos 'rpg' para Inform 7 - Acero (1) - Dados

Planeta Aventurero - Hace 10 horas 31 mins
Empecemos por lo más evidente. Si quieres un sistema 'rolero' vamos necesitar tiradas, dados, alguna clase de aleatoriedad. Inform 7 tiene un montón de mecanismos de aleatoriedad disponibles como podéis ver en este capítulo del manual y en otras secciones como las referentes a listas o tablas, así que en realidad no necesitaríamos desarrollar nada, pero la verdad es que la mayor parte de los sistemas expresan sus tiradas en forma de combinaciones de dados más o menos complejas y si incluimos una notación común para expresar 'tiradas' nos resultará mucho más sencillo luego incluir tablas con toda clase de conceptos que constituyan el sistema sobre el que se soporte la historia. Por otra parte es un buen momento para aprender cómo se hace y se incluye una extensión, así que hagamos una extensión de dados y sus tiradas.
La mayor parte de los sistemas usa dados poliédricos numerados, aunque algunos usan cosas más extrañas (es un clásico mencionar que el juego de rol del Príncipe Valiente usa sólo monedas para las tiradas), y expresan la tirada en la forma de xdy+z ó xdy-z, que significa tira 'x' dados de 'y' caras y suma (o resta) 'z' al total. Otra tirada muy habitual es la de 1d100 o d%, que es una tirada entre 00 y 99 ó 01 y 100, según sea el sistema; que habitualmente se consigue tirando dos dados de diez caras y leyendo de forma consecutiva (una junto a la otra) el valor de cada dado. 
Podemos crear una nueva extensión desde el propio IDE (File >> New Extension), lo que genera una estructura completamente vacía como esta:

Rolling Dices by Johan Paz begins here.

Rolling Dices ends here.

Lo mínimo que deberíamos incluir en cualquier extensión es la documentación de la misma de esta forma:

Rolling Dices by Johan Paz begins here.

"This extension allows express set of dices as a value and rolling them"

Rolling Dices ends here.

---- DOCUMENTATION ----

This extension allows express set of dices as a value and rolling them.

En la parte de la documentación explicaremos la extensión y pondremos al menos un ejemplo de uso. Estos ejemplos son muy útiles porque se pueden cargar como proyecto nuevo y así probar directamente la extensión tal y como la haya creado su autor. Si construis una extensión no dudéis en contarlo por aquí o aquí y, si es realmente útil, os explicaremos como publicarla, adaptarla, etc...

Inform 7 tiene una forma de incluir notaciones de unidades con más de una parte, y es bastante general, así que podríamos usarla para incluir el formato de dados, de esta forma:

A roll is a kind of value. 99d99+99 specifies a roll with parts dices, sides and pluses (optional, preamble optional).

Ahora podríamos incluir el 'lanzado' de dados de esta forma:

To decide which number is the throw of (dices - a roll):
let numPart be the dices part of dices;
let sidePart be the sides part of dices;
let randomPart be 0;
repeat with index running from 1 to numPart:
increase randomPart by a random number from 1 to sidePart;
increase randomPart by the pluses part of dices;
decide on randomPart.

Si añadimos una excepción para el d% ya tendríamos casi todo lo relativo a tiradas que vamos a necesitar:

To decide which number is the roll of d%:
decide on a random number from 1 to 100.

Añadiendo un ejemplo de prueba como este:

"Dices" by Johan Paz

Include Rolling Dices by Johan Paz.

Rolling site is a room.

A dice (m) is a kind of thing. A dice has a roll called dice roll.

A four sided dice is a dice in rolling site. The dice roll of four sided dice is 1d4.
A six sided dice is a dice in rolling site. The dice roll of six sided dice is 1d6.
A eight sided dice is a dice in rolling site. The dice roll of eight sided dice is 1d8.

Dice rolling is an action applying to nothing.

Understand "roll dices" as dice rolling.

Carry out dice rolling:
let total be 0;
repeat with dice running through dices carried by player:
let result be roll of dice roll of dice;
say "You roll the [dice]... obtaining [result].";
increase total by result;
say "The total is [total].".

Test me with "take four sided dice / roll dices / take six sided dice / roll dices / drop all / take all / roll dices".

ya tendríamos nuestra primera extensión lista para ser usada. La podéis ver completa aquí.

CategorĂ­as: Planeta

Tutorial de juegos 'rpg' para Inform 7 - Acero (0)

Planeta Aventurero - Hace 10 horas 31 mins
A lo largo de los años he visto y escuchado hablar a mucha gente de hacer una ficción interactiva con 'elementos roleros', o decir que le gustaría hacer un 'rpg' o algo parecido. Y no sólo eso, sino les he visto buscar herramientas o librerías 'de rol'. A este respecto he decir que cuando se habla de esto no me parece que se esté hablando realmente de 'juegos de rol', sino de 'crpg'. La realidad es que cuando se habla de 'incluir elementos roleros' en una ficción interactiva se está pensando en cosas como que haya combates, que los personajes tengan habilidades, puntos de vida, etc... es decir, la parte de los juegos de rol menos interesante, el sistema de juego.
Las mejores sesiones de rol de mesa son aquellas en las que ni se sacan las fichas de personaje porque no es necesario, en las que no se tira ni un dado ni se mira ningún número. Las mejores sesiones de rol de mesa tienen interpretación, descripciones y muchos diálogos. Sí, como alguno estará pensando, las mejores sesiones de rol de mesa son ficciones interactivas sin 'elementos roleros' y donde el parser es un humano. Las sesiones en las que se usa masivamente el sistema de juego son habitualmente largas tardes de combate que a mí, normalmente, me aburren. Evidentemente de tanto en tanto se hacen y hay que hacerlas, porque a veces no queda otra que resolver las cosas por la fuerza de las armas, pero al final es un repetitivo uso de dados y listas de poco interés.
El otro 'aspecto rolero' que suele despertar interés es el 'coleccionismo de objetos', aquello de 'oh, wow, tengo una espada +3 con Protect The Innocent encantado'. De nuevo esto sólo es tangencialmente 'rolero' de hecho nosotros al montón de objetos 'mágicos' que llevan los personajes lo llamamos en las partidas 'quincalla' y decimos cosas como 'uff... esto lo hemos resuelto gracias a la quincalla, tenemos que pensarlo mejor la próxima vez'. El coleccionismo de objetos alcanza verdaderamente su clímax en los que han dado en llamar 'arpg'. De hecho no le veo ningún interés a jugar a un 'arpg' si no es por la montaña de objetos 'especiales' que se sacan de ir despanzurrando 'enemigos' con repetidos clicks del ratón.
Así que antes de incluir 'elementos roleros' en tu ficción interactiva lo primero que te debo decir es que te pienses bien si realmente los necesitas. La parte 'chula' del rol ya está en cualquier ficción interactiva, y lo que vas a incluir es en realidad accesorio y más un inconveniente a la narrativa que una ventaja. Asegúrate de saber bien lo que estás haciendo y ten en cuenta las diferencias que existen entre el medio que es la FI con el que puede ser un 'rogue', un 'crpg' o un 'arpg'. Si intentas duplicar un 'arpg', por ejemplo, en texto te va a quedar bastante soso, porque probablemente en un 'arpg' la parte visual y sonora es parte fundamental de la experiencia.
Si estás seguro de que quieres incluir 'elementos roleros' el siguiente problema que vamos a encontrarnos es de qué sistema queremos partir. Hay muchos y no se parecen demasiado. No tiene mucho que ver incluir reglas inspiradas en BRP, en d20, en D6, en Rolemaster, en GURPS... En realidad, si creamos una librería 'rolera' inspirada en d20 habrá cosas que recordarán a D&D de forma parecida a cómo la experiencia de los juegos de Elder Scroll a mí me recuerda a los juegos de Rolemaster. Y, encima, no es tan fácil crear un módulo para una de esos sistemas, tienen que haberlos usado bastante para hacerte una idea de qué va a funcionar y ser interesante en cada uno de ellos. Yo me atrevería a hacer módulos de BRP, d20 y, tal vez, D6, pero ni de lejos me atrevería a escribir un módulo de otro de esos sistemas, al menos no un módulo que no sea minúsculo. Vamos, ni se me pasaría por la cabeza intentar escribir un módulo para 'Vampiro: La Mascarada', por poner un ejemplo.
Una buena posibilidad sería que sabiendo la historia que vayas a contar buscaras la campaña de rol que más te recordara a tu historia y te empapes del sistema de juego que se ha usado normalmente para los módulos de dicha campaña. Es decir, si vas a contar una historia basada en Star Wars u otro space opera, probablemente sea buena idea basarte en D6, si es un rollo alta fantasía tira por d20 y si es algo de fantasía más adulta y sucia prueba con BRP.
Dicho esto en los próximos capítulos de este tutorial os daré ejemplos de cómo hacer diversas cosas 'roleras' y lo haremos en el marco de una obra a la que llamaré 'Acero'. Para los ejemplos usaré el sistema que llevamos años usando en mi grupo de rol al que llamamos S3 y que surgió a partir de BRP.
CategorĂ­as: Planeta

Conferencia de Graham Nelson sobre el pasado, presente y futuro de Inform 7

Planeta Aventurero - Hace 10 horas 31 mins

Tras 3 años de silencio y sin tener noticias ni actualizaciones de Inform 7, el pasado Sábado día 9 de Junio, Graham Nelson dio una conferencia en un meetup en Oxford/Londres.

La conferencia, muy técnica, explica el por qué de Inform 7 como sistema de programación en lenguaje natural. Aborda sus logros y carencias y explica que Graham ha estado trabajando en mejorar algunos de sus problemas durante estos tres años.

Resumiendo mucho, el trabajo ha consistido en mejorar los engranajes internos, de forma que las mejoras, aunque importantes, pasarán desapercibidas para los usuarios. No lo dice explícitamente, pero parece que ha sido toda una labor de adecentar el código para, quizás, algún día pasarlo a software libre.

También habla de un futuro en el que inform 7 sea capaz de manejar de serie interfaz de elecciones (CYOA) e hipertexto (algo que ya se puede hacer con librerías como demuestra La Cerillera).

Además, parte de este proceso y mejora propiciará la posibilidad de exportar programas de Inform 7 a Unity o Javascript. Todo esto mediante que en el futuro se construyan esas herramientas que permitan traducir código objeto de Inform 7 a esos lenguajes de script destino. También se prevee de la posibilidad de encapsular los programas para autoejecución directa.

Accede a esta charla y diapositivas desde la web de Emily Short:

https://emshort.blog/2018/06/10/notes-on-the-direction-of-inform/

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.