Planeta Aventurero

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

Sistemas de creación de aventuras

Vie, 24/03/2023 - 06:08

Ficción interactiva Sistemas de creación de aventuras Fecha de creación de este documento: Febrero de 2013
Baltasar García Perez-Schofield
Introducción Sistemas de creación de aventuras hay muchos. Y muchos más si observamos la historia pasada en la forma de aplicaciones para plataformas obsoletas. En este documento se trata de hacer una revisión de los sistemas de escritura de ficción interactiva (o aventuras conversacionales) desde un punto de vista actual, es decir, herramientas que cualquier autor podría utilizar a día de hoy (al menos en el momento de escribir este documento) para crear juegos basados en literatura.

    Evidentemente, este documento no trata de ser un ensayo riguroso; es obvio que si existen muchos sistemas de creación de aventuras, será necesario escoger los más relevantes, y eso supone implicar la subjetividad del autor, lo cual es inevitable.

    Nótese que  las aventuras conversacionales, como se las llamaba entonces, eran los juegos predominantes en los años 70 y 80. El objetivo era sencillo: jugar con el ordenador. Sin embargo, en aquella época las interfaces con los ordenadores eran absolutamente textuales, sin posibilidades gráficas. Aunque las primeras aventuras fueron creadas con lenguajes de programación generalistas, como Fortran (Adventure, de Crowther & Woods), pronto se puso en práctica en varias compañías la idea de desarrollar una plataforma común para todos los sistemas existentes en la época. El uso en aventuras conversacionales, donde no se precisa de una velocidad especial, pudiéndose interpretar los programas, fue probablemente el primero, con éxito, de máquinas virtuales. La idea, descrita de una manera basta, consistía en crear un programa intérprete para cada sistema (por ejemplo, Spectrum, Amstrad, Commodore...), y posteriormente, escribir el juego en el código entendible por ese intérprete. Aunque la idea supone una inversión inicial importante en tiempo y esfuerzo, para crear el intérprete adaptado a cada máquina, es ainversión pronto se enjuga con la facilidad de escribir aventuras sin preocuparse de las características específicas de cada máquina. Los casos más famosos son el A-Code, de Level 9, que permitía comprimir una aventura como Adventure en 8K, o la máquina Z, de Infocom, que como se mostrará más adelante sobrevivió hasta nuestra época.

    Hoy en día es interesante el soporte de juego en línea, es decir, directamente desde el navegador, sin instalar nada ni ocasionar problemas extraños al usuario. En esta categoría, hay sistemas de autor que lo soportan, marcados con ,  sistemas que no lo soportan, marcados con No, y sistemas que lo soportan parcialmente, marcados como parcial. Estos últimos son los más comunes: en muchas ocasiones, permiten jugar en línea, pero recomiendan bajarse el intérprete para una experiencia más plena.

    En cuanto al juego en el escritorio, es decir, en la propia máquina, la existencia de tantos diferentes intérpretes ha supuesto la creación de multiintérpretes como Gargoyle. Este programa, primero identifica la aventura a ejecutar, y, a continuación, lanza el intérprete adecuado. Gargoyle aúna muchos intérpretes que muchas veces no son los oficiales, puesto que estos no existen en una versión multiplataforma (Gargoyle puede ejecutarse en Windows, Linux y Mac). Superglús Superglús (2003) se basa en un proyecto anterior, llamado Paguaglús. El objetivo era aprovechar la nueva máquina virtual que acababa de ser creada, Glulx, para Inform 6, con soporte de imágenes y sonido, para ejecutar aventuras en PAWS, bien fueran nuevas o antiguas (previa conversión mediante la recompilación del código fuente).

    La creación de aventuras en este sistema se basa en crear entradas en tablas de vocabulario, objetos, localidades y procesos. Los mensajes han sido relegados a tareas de sistema, pudiendo visualizarse directamente mediante Write. Los comandos Beep y Picture han sido extendidos para poder reproducir música e imágenes. Finalmente, con la extensión txtpaws, que se distribuye y se utiliza de serie en Superglús, es posible utilizar identificadores en lugar de números para objetos, localidades y flags.
Licencia: Libre.
Plataformas: Windows, Linux, Mac.
Plataformas de juego: innumerables, incluso smartphones (a través de Git o Gargoyle).
IDE: Sí.
Soporte de juego en línea: Parcial.
Wiki: http://wiki.caad.es/Supergl%C3%BAs
Inform 6 Sp Inform 6 es un compilador creado por Graham Nelson, mediante la inspección e ingeniería inversa de los relatos interactivos de Infocom. Así, programó la máquina Z (la máquina virtual de Infocom) en base a sus descubrimientos, y después desarrolló un lenguaje de programación (tipo C) para poder crear nuevos juegos. La versión Sp sustituye a la antigua InformATE! (Inform ahora totalmente español!), en la que se traducían todo al español (incluso los nombres de las acciones (Ir en lugar de Go), o de los atributos disponibles Comestible en lugar de Edible), debido a la petición popular de aquel momento de hacerlo más próximo a los desarrolladores. Desafortunadamente, esto hacía que fuese muy difícil portar librerías hechas por ingleses  de Inform 6 a InformATE!, así como aplicar los parches de las nuevas versiones.

    Así, Inform 6 Sp es la versión en español con las traducciones mínimas, de tal forma que todas las librerías son válidas, y las traducciones/variaciones son mínimas (se puede utilizar el manual de Graham Nelson para programar, por ejemplo). El parser de inform es probablemente, el mejor en este momento, con diferencia, permitiendo distinguir objetos fácilmente unos de otros (desambiguación, pregunta si te refieres a la llave pequeña o la grande, la roja o la azul), apilarlos, acumularlos, tener varios objetos iguales (canicas, por ejemplo). Permite la comprensión de cuestiones que van más allá de lo que entienden los parser "normales" hoy en día.

    Inform 6 soporta dos máquinas virtuales, la "tradicional" máquina Z, sólo texto, y la máquina Glulx, diseñada para soportar gráficos y sonido. El soporte para máquina Z es absolutamente fantástico, mientras que para Glulx el soporte es mucho más escaso. Hoy en día, no hay un buen sistema de juego en web para aventuras Glulx, siendo lo más recomendable Zag, que es capaz de bajarse la aventura antes de jugar. Sin embargo, Zag está muy desactualizado en este momento y no es fiel a colores y estilos utilizados.

    La forma de programar en Inform 6 consiste en crear una serie de objetos (en el sentido de Programación Orientada a Objetos), de tal forma que unos representan las localidades, los objetos en ellas, etc. Requiere un cierto esfuerzo hacerse con este sistema de programación, ya que aunque es bastante sencillo, la curva de acceso para el que tan solo quiere escribir una aventura es un tanto empinada. El compilador tampoco ayuda demasiado, si bien ha mejorado muchísimo en los últimos años. Eso sí, una vez comprendido el modelo, es probablemente el sistema más potente.
Licencia: Libre.
Plataformas
: Windows, Linux, Mac.
Plataformas de juego: innumerables, incluso smartphones.
IDE: Varios (no existe uno oficial).
Soporte de juego en línea: Sí para máquina Z, parcial para Glulx.
Wiki: http://wiki.caad.es/Inform
Adrift Adrift revisita la idea de que los escritores de aventuras no tiene por qué ser programadores, y crea un entorno sencillo para crear aventuras sin programar (si bien para realizar ciertas tareas complehas soporta un lenguaje de script). Está programado en Visual Basic, y de hecho el creador de aventuras sólo puede ser utilizado en Windows. En el pasado, la última versión (hasta la 4.0) era shareware, y las anteriores eran gratis. Nótese que digo gratis y no libre, pues el código fuente no está disponible.

    La gran desventaja de Adrift es que no soporta directamente el idioma español. Es necesario traducir una serie de vocabularios y tablas de respuestas. Si bien esto es posible, sólo un autor español se animó a empezar el trabajo para presentar sus propias aventuras en Adrift, y el trabajo sólo se llevó a cabo parcialmente.

    La creación de aventuras se basa en crear nodos en un mapa, que al hacer doble-click sobre ellos permiten cambiar sus características, o añadir nuevas entidades (objetos, por ejemplo). Es muy cómodo para cualquiera, pues no es necesario saber programar en nada.
Licencia: Gratis (a partir de la versión 5).
Plataformas: Windows (ADRIFT Developer).
Plataformas de juego: Windows (ADRIFT Runner), Linux (Adrift Runner), Mac (con Scare o Gargoyle).
IDE: Sí.
Soporte de juego en línea: Parcial.
Wiki: http://wiki.caad.es/Adrift Aetheria Game Engine AGE es un sistema complejísimo (fue diseñado para crear juegos de ROL, soporta partidas cooperativas...) creado meritoriamente por un español, por lo que soporta directamente la creación de aventuras en esta lengua. Desgraciadamente, su parser no es demasiado complejo, y probablemente no sea excesivamente complicado traducir el sistema para crear una aventura en inglés. Por decisión personal del autor, no soporta las características medianamente complejas en un sistema de autor de este tipo, como por ejemplo, contenedores.

    AGE está programado en Java, lo que le da varios enteros en cuanto a soporte multiplataforma. Sin embargo, no incorpora ninguna forma de juego en línea, sin tener que descargar nada. AGE, pese a todos los años que tiene a sus espaldas, aún no ha alcanzado completamente estable, y es muchas veces necesario tener que descargar el sistema de ejecución junto con la aventura a jugar (muchas veces los cambios han creado cambios incompatibles entre sí).

   AGE soporta para programar un lenguaje de script llamado BSH, que es muy parecido a Java. Así, la curva de entrada es bastante pronunciada, pues requiere que el escritor de aventuras sea también programador, como en Inform 6 Sp, por ejemplo. Es necesario tener instalado Java en el ordenador, y bajarse los paquetes que se desee según se quiera sólo jugar o desarrollar también. Finalmente, es de resaltar la existencia de Puck, un IDE visual que hace menos necesario conocer la programación, pues reduce la necesidad de crear scripts.
Licencia: Libre.
Plataformas: Windows, Mac y Linux.
Plataformas de juego: Windows, Mac y Linux.
IDE: Sí (Puck).
Soporte de juego en línea: No.
Wiki: http://wiki.caad.es/Aetheria_Game_Engine Quest Quest es un sistema como Adrift, programado en C#, por lo que, como Adrift, es soportado por la máquina virtual .NET. Sin embargo, tiene versiones web tanto para el creador de aventuras como para el jugador, lo cual lo hace virtualmente multiplataforma. Además, un miembro de la comunidad lo tradujo en su momento al español.

    Así, no es necesario tener ningún conocimiento de programación para crear juegos en Quest, puesto que es tan sencillo como manipular nodos en pantalla, como en Adrift. Finalmente, su sistema de juego en web lo hace muy accesible a todo el mundo.
Licencia: Gratis (excepto si se comercializa como App para Smartphones).
Plataformas: Windows, multiplataforma (en web).
Plataformas de juego: Windows, multiplataforma (en web).
IDE: Sí.
Soporte de juego en línea: Sí.
Wiki: http://wiki.caad.es/Quest Inform 7 Inform 7 es la evolución de Inform 6. Sin embargo, en este caso se trata de una revolución respecto al tradicional uso de un compilador y un lenguaje de programación medianamente complejo: Graham Nelson reclama que es posible programar en lenguaje natural (inglés). Además, un entorno integrado especialmente diseñado hace la edición y depuración de la aventura de una forma mucho más sencilla. Por ejemplo, mientras se trabaja en un puzzle en una localidad, el sistema con cada compilación, rejuega hasta esa localidad para poder centrarse en ella. Los mensajes de error también son mucho más elaborados, lo cual ayuda mucho al escritor de aventuras.

    En el lado negativo, no es cierto que se pueda crear una aventura escribiendo en lenguaje natural. La realidad es que el lenguaje de programación se parece muchísimo a la lengua inglesa, pero desde luego, el formato para describir localidades u objetos no es ni mucho menos libre. En el momento en el que se hace necesario programar, estructuras como bucles o decisiones están simplemente un tanto camuflados, pero son fácilmente reconocibles.

    El hecho de utilizar una sintaxis tan parecida a la inglesa hace que la traducción del sistema al español resulte en un resultado macarrónico (Salón is a room. Its description is "Estás en el salón"), aunque evidentemente tolerable si al escritor de aventuras le resulta cómodo. Inform 7 genera sus juegos en máquina Z (con lo cual son altamente multiplataforma, y jugables a través de Web) o en Glulx (todavía bastante multiplataforma pero sin soporte claro para jugar a través de internet). Evidentemente, en el caso de escoger la máquina Z, no será posible utilizar gráficos.
Licencia: Libre.
Plataformas: Windows, Mac y Linux (parcialmente).
Plataformas de juego: Windows, Mac y Linux e innumerables (máquina Z y Glulx).
IDE: Sí.
Soporte de juego en línea: Parcial.
Wiki: http://wiki.caad.es/Inform7_Doc Kenshira

Kenshira es un sistema de creación de aventuras basado totalmente en web. Así, soporta hiperenlaces de forma totalmente natural (es decir, sin requerir ningún tipo de librería o artificio), por poner un ejemplo. La web de Kenshira incluye el IDE creador/editor (para el escritor del juego) y el jugador (para el resto de visitantes a la web).

    Por supuesto, para todo esto es necesario emplear un navegador relativamente moderno, Chrome o Firefox son totalmente compatibles, IExplorer es lo bastante compatible para jugar.

    Para crear aventuras se utiliza un lenguaje de script bastante parecido al de Inform, pero con sintaxis del tipo de Visual Basic. Para utilizar este sistema el escritor de aventuras debe ser también programador, pero al utilizar scripts basados en Basic, la curva de acceso no es excesiva. Está creado por un español, así que la lengua a utilizar es exclusivamente el español. El parser es casi tan completo como el de Inform.

    En el lado negativo, no tiene demasiada documentación, ya que todavía no goza de gran aceptación o uso.

Licencia: Libre.
Plataformas: Multiplataforma (web).
Plataformas de juego: Multiplataforma (web).
IDE: Sí.
Soporte de juego en línea: Sí.
Wiki: http://wiki.caad.es/Kenshira


Categorías: Planeta

Asesino

Vie, 24/03/2023 - 06:08

Esta semana ha visto la publicación de Asesino. Más que una aventura conversacional, es un hiperrelato, creado con un Undum.

Sinopsis
La historia trata de un asesino, quien ya tiene a su víctima atrapada y se la va a cargar. Para ello, la ha secuestrado y se la ha llevado a Fraguas, un pueblo abandonado que efectivamente existe en la realidad (esta es la única conexión con algún tipo de evento real, por cierto).

Lo lógico es que el jugador al comienzo sienta un tanto de repulsa por las acciones del protagonista, y que poco a poco pase de la repulsión a la comprensión (o no), provocando, o esa es la intención, una serie de sentimientos encontrados. El final está abierto a tres posibilidades.

Cuestiones técnicas
El manejo de Undum es muy sencillo, aunque es necesario programar un tanto en Javascript. Para ello, empleé el editor Komodo Edit, que tiene un buen soporte para Javascript.

En cuanto al relato en sí, normalmente lo hubiera implementado como una aventura conversacional, pero hubiera sido una aventura absolutamente linear, sin grandes decisiones que tomar (excepto al final), con muchos recuerdos por parte del personaje protagonista, que hubiera habido que forzar (o peor, confiar en que el jugador hubiera tecleado "recordar" tras visualizar una breve pista en algún momento). Así, y dado que tenía ganas, por otra parte, de probar Undum, decidí que era el momento de abandonar el terreno conversacional. No es que sea una decisión definitiva, ni nada por el estilo, aunque desde luego es una forma que también permite llegar a más público. El tiempo dirá...

Categorías: Planeta

eBooks

Vie, 24/03/2023 - 06:08

Mi experiencia con los eBooks empezó hace ya bastante tiempo con la Papyre, que sigue siendo mi lector de libros preferido. Aunque la primera que tuve fue una Papyre 6.1, y ahora tengo, desde hace ya bastante tiempo, una Papyre 5.1. La biblioteca de la PapyreMis primeras lecturas, con la Papyre 6.1, fueron las que incluía la biblioteca de la Papyre (dentro del propio lector, no hay conexión Wi-Fi). Recuerdo haber leído varios relatos de terror, que me gustaron bastante, así como libros clásicos (como los de Galdós), a los que no hubiera tenido acceso de ninguna otra forma (a no ser que se edite en plan coleccionismo o algo así). Estaba prendado de mi Papyre, y para mi era el siguiente paso lógico en la evolución de la lectura, y aún sigo pensándolo. No hay ningún otro medio que te dé acceso simple y rápido a estas joyas de la literatura.

Además, la biblioteca Papyre da acceso a bastantes novedades y semi-novedades, que se pueden comprar a buen precio. Libros en inglésEntonces pensé en comprar libros. Pero... ¡sorpresa! en aquel momento no se podían comprar libros en español... me fui a una tienda extranjera, diesel-ebooks.com, y me compré un par de ellos... al mismo precio que en formato de papel, y con DRM (aunque es verdad que eran novedades). Eso sí, me gustaron muchísimo. ... y entonces "vino" el DRMCuando estaba terminando "Under enemy colors" (me quedaban unas 25 páginas), actualicé el firmware de mi ebook. Y ¡sorpresa!, me decía, cuando intentaba leerlo, que aquel ebook no era compatible. Cuando me fijé en la lista de cambios, me fijé en que ya no se soportaba (sería temporal) el DRM de adobe (?)... ¡Había pagado por mi libro y no podía leerlo! Cabreado, me lo terminé de leer en el PC (con el adobe digital editions), y me juré a mi mismo que nunca más... yo había terminado con el DRM. ¿No poder leer el libro por el que había pagado? ¡De eso nada! Me bajé un programa quita-drm's, y les quité el DRM a mis dos libros. No, no para venderlos ni para pasárselos a nadie, sino para poder leer mis libros donde me diera la gana.

Por aquel entonces también conocí a Calibre, el gestor de eBooks que uso desde entonces.

También conocí distribuidoras de libros SIN DRM, con títulos muy interesantes. El KindleAmazon.com suele distribuir sus libros en un formato propio, asz o algo por el estilo. Los muy pesaos te obligan a bajarte un programa para poder leer los libros. Bueno, pues recientemente me bajé un libro gratis que me gustaba de Amazon, lo convertí a epub con el Calibre, y ya está. Wi-FiLa Wi-Fi se vende como un acceso desde tu propio lector a los periódicos, librerías, etc. Comprar un libro nuevo es tan sencillo como conectarte, elegir el libro, comprarlo, y empezar a leer. Sin embargo, el tema ha venido con polémica después de que Amazon borrase libros del Kindle a propósito por diferentes motivos. Un día tenías el libro por el que habías pagado, y al otro no. Según parece, los títulos afectados fueron 1984 (también, son ganas de buscársela) y el Marqués de Sade.

Por mi parte, no me he comprado ninguno con Wi-Fi precisamente por "miedo" a esto. Los caminantesMe leí todos los libros de Carlos Sisí de la saga de los caminantes. Después vino Edén interrumpido, otro gran libro (además, muy asequible). Desgraciadamente, todos estos libros venían con DRM... ¿qué hacer? Realmente, contacté con Carlos Sisí en Facebook después de leerme los Caminantes y antes del Edén. Bueno, pues le pedí su número de cuenta y se los pagué, después de bajármelos "pirateados", es decir, en EPUB y sin DRM.

Todo esto da pie a pensar en un nuevo modelo de negocio, en el que los autores podrían vender sus obras casi directamente, eliminando las editoriales de la ecuación. ConclusiónHace ya mucho tiempo que no compro libros en papel, y no pienso volver a hacerlo. Seguiré moviéndome con mis ideas por el mundillo, a ver cómo se estila. Aquí en España el DRM durará muchos años, imagino, pero yo sigo sin estar dispuesto a ello. Aún así, tengo la esperanza de que todo se normalice con el tiempo. No sólo me parece bien pagar por el eBook, sino que creo que debe hacerse, pero obteniendo lo mismo que obtienes por un libro físico: total control sobre el mismo.

Categorías: Planeta

V MiniComp

Vie, 24/03/2023 - 06:08

Pues sí, al final la convocatoria de la V MiniComp ha sido todo un éxito. Desde aquí quiero agradecer a los autores que se han liado la manta a la cabeza en estas fechas, y han escrito algo para esta competición, que se está empezando a establecer como reto navideño. Como siempre, influido por el miedo a que no hubiera participantes, yo preparé GEO, una aventurilla un tanto especial en cuanto a que se trata del género de acción. En fin, la convocatoria ha sido todo un éxito, ¡ahora sólo queda votar a las mejores que cada uno considere!

Categorías: Planeta

Estación Acuario, premicada en la FIComp 2011

Vie, 24/03/2023 - 06:08

Finalmente, el largo periodo de votación pasó, dejandonos unos buenos resultados para el que escribe.

Estación Acuario ha resultado vencedora en la competición, si bien empatada con Reflejos Blancos, la obra de Incanus.

Por otra parte, también ha recibido el premio al mejor PSI, sin duda por Samil, quien, de forma colaborativa con el jugador, desarrolla toda la historia.

Estoy muy contento con este relato de ciencia ficción y con los resultados obtenidos. Lástima que el organizador haya dejado el concurso un poco a la deriva, y el periodo de votaciones se haya convertido en una travesía del desierto, sin apenas publicaciones ni publicidad sobre la competición teniendo lugar.

Me preocupa todavía más, de todas formas, que sólo hubiera del orden de media docena de votaciones. Realmente todo esto está empezando a ponerse crudo.

Categorías: Planeta

Estación Acuario, lista para la FIComp

Vie, 24/03/2023 - 06:08

Pues eso, ya sólo queda el tedioso trabajo de depurarla, pero la aventura ya está lista para ser entregada el próximo día 30 a la organización.




Por poder, sería posible entrgarla ahora, pero ya se sabe, sin depurar no quedaría ni de última. No deja de ser curioso que, por muy bien que crea uno que ha quedado, siempre haya errores, incluso de lo más obvio, en una aventura.
Categorías: Planeta

Estación acuario

Vie, 24/03/2023 - 06:08

Estación acuario es un proyecto de remake que estoy realizando para la FIComp. En estos momentos, creo que el proyecto se encuentra entre un 60 y un 70%, es decir, próximo a la finalización, aunque aún queda bastante trabajo.

El relato original es de Luís Sánchez Palacios y otros.



Una de las tareas iniciales fue revitalizar los gráficos, es decir, ponerlos de manera que luzcan mejor en pantallas de hoy en día, pero aún así recuerden mucho a sus originales de Spectrum. El problema se "reduce" (no soy muy hábil con el tema gráfico) a colorear los gráficos originales.



Aquí (un poco más abajo) se puede comparar el trabajo realizado.



En cuanto a la aventura en sí, está realizada con InfSP6, como todas mis aventuras recientes. Estoy tratando de quitar todas las muertes, sean súbitas o no, de tal manera que sea posible realizar varias de las tareas a base de intentonas sin caer en un callejón sin salida. Aunque esto no es especialmente difícil, sí que requiere, en algunas ocasiones, una reinterpretación de los puzzles. Espero que el resultado sea interesante.

Uno de los mayores problemas consiste en el laberinto. El original se trata de un conjunto de tres o cuatro localidades, que difícilmente se pueden mapear (los objetos se hunden en el fango tras dejarlos), y que se resuelve a base de fuerza bruta (es la única manera), una vez que tienes los flotfeets. Lo cierto es que los laberintos siempre plantean un reto para obtener una versión jugable. Ahora mismo, el laberinto contiene unas treinta localidades, y no me convence nada por lo complejo (aunque no responde a las características típicas de los laberintos). Está prácticamente descartado. Mi apuesta actual tiene más que ver con diez localidades. Cada localidad tendrá una, y sólo una dirección correcta que lleve a la siguiente, y será fácil de atravesar habiendo oído las indicaciones de Samil. Un movimiento en la dirección incorrecta conllevará un vagar por el laberinto, y el recomienzo en la primera localidad. Esto hará que el laberinto se pueda intentar y reintentar, aún sin conocer las indicaciones de Samil, a base de prueba y error, logrando un resultado más sencillo que también espero que resulte más jugable.

Categorías: Planeta

Versión MSX de "Asalto y Castigo"

Vie, 24/03/2023 - 06:08

Después de una larga, larguísima gestación, la versión para ordenadores MSX y compatibles ya está publcada en la web del relato:

caad.es/baltasarq/if/asalto/

Esta versión no ha quedado mal, pese a que la combinación de colores se ha "caído" de la versión final. El manejo de colores en MSX es bastante pobre, y sólo se podía hacer en SCREEN 2 con bastante código. Lo malo es que entonces se perdía la posibilidad de hacer scroll del texto, como en el resto de plataformas. Finalmente, las limitaciones de memoria me hicieron desistir del intento.



Lo cierto es que las limitaciones de memoria de MSX son verdaderamente draconianas. Mientras el Speccy deja unos 38k libres para trabajar en BASIC (de los 48K disponibles en total), o el Amstrad unos 42k, los MSX dejan tan solo 28K libres para los programas de los usuarios, lo cual es claramente insuficiente. Por si fuera poco, añadirle una unidad de disco al MSX supone perder 5k más, dejándo la memoria disponible en unos 23k, como máximo.

Así, fue necesario prácticamente mutilar el código fuente para que ocupara lo menos posible, a la vez que recurrir a trucos sucios como renunciar a los DATA's de descripciones de localidades y objetos para pasar a mostrar las descripciones de las localidades, directamente.

En fin, la versión para MSX me apetecía mucho sacarla por disponer del hardware necesario para trabajar con un MSX real (una unidad de discos Sony).

En su momento (estoy hablando de los años 80) nunca vi ni siquiera de cerca un MSX, y o cierto es que esta tarea me ha ayudado a conocer estos ordenadores personales que tuvieron en realidad menos repercusión que Spectrum y Amstrad.

Finalmente, está versión se ha hecho realidad, y he aprendido un poco más.
Categorías: Planeta

Cómo no llegar a no escribir aventuras

Vie, 24/03/2023 - 06:08

Un aficionado a la programación de aventuras conversacionales me ha mandado un enlace a su propio blog. Creo que realmente merece la pena echarle un vistazo.

Cómo no escribir aventuras.

Categorías: Planeta

Estación acuario

Vie, 24/03/2023 - 06:08

Estoy volcado en escribir Estación Acuario, un remake de la misma aventura de Luís Sánchez Palacios para PAWS/Speccy.



Una de las cosas que estoy haciendo, entre tarea y tarea, es revitalizar los gráficos. Quiero que siga teniendo la misma pinta retro que tiene el original, así que voy a utilizar los mismos gráficos. Pero claro, rechinarían en una máquina moderna. Así que los estoy suavizando y recoloreando. Podéis ver algunos resultados en esta entrada.



En cuanto al argumento, no lo voy a tocar demasiado. En todo caso, he decidido ahondar un poquito más en las circunstancias de los extraños hechos de la estación, pero el protagonista, e incluso buena parte de los puzzles, serán los mismos. La aventura, como ya comenté en el SPAC es realmente muy moderna, y no creo que se merezca menos.

Categorías: Planeta

Scinf

Vie, 24/03/2023 - 06:08

Al final, he comprendido cómo configurar ScITE para soportar la compilación y ejecución de relatos interactivos en Inform 6, en todas sus variedades (Inform 6, InformATE! e Inf6Sp), y poder crear una distribución que se pueda instalar cómodamente para empezar a desarrollar aventuras en unos minutos.

Se trata de la distribución Scinf, que se puede descargar, como siempre, desde mi web:

http://www.caad.es/baltasarq/prys/scinf/

Categorías: Planeta

Desarrollo en Inform 6

Vie, 24/03/2023 - 06:08

Desgraciadamente, todavía no hay un modo sencillo de descargarse una simple aplicación, y empezar a desarrollar en Inform6

Por supuesto, hay opciones. Está JIF, que es multiplataforma, y Wide, que también lo es, pero hecho para C++. Desgraciadamente, configurar cualquiera de los dos sistemas no es sencillo. De hecho, es más sencillo bajarse Inferno, y empezar a trabajar.

Aunque Inferno puede ser una opción, yo en mi ordenador personal utilizo SciTE. Aunque no es especialmente sencillo de configurar, el resultado es muy satisfactorio.




La forma de configurar SciTE es añadir las siguientes líneas al archivo asm.properties:




# Inform

#Compile&Run section. General Prop. Especific project prop could be set in SciTE.properties file, in the same *.inf game file directory

#Glulx Machine
#custom Tool|command . 0-9 can be defined for CTRL+0 to Ctrl+9 (total of 0-99 is allowed, need to edit user.shortcuts prop)
#Need set apropiate path for inform, BRES, BLC and Glulx Interpreter
#options1: switches options | options2:libraries paths for correct compiling
options=+include_path=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\lib\I6Sp,C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\lib\I6Gb,C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\lib\contrib
command.name.0.$(file.patterns.inform)=Glulx | Crear Recursos
command.0.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\tools\tools_windows\bresc.exe --blionly "$(FileName).res"
command.name.1.$(file.patterns.inform)=Glulx | Compilar
command.1.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\inform\inform_windows\inform.exe -G $(options) "$(FilePath)"
command.name.2.$(file.patterns.inform)=Glulx | Crear BLB
command.2.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\tools\tools_windows\bresc.exe --nobli "$(FileName).blc"
command.name.3.$(file.patterns.inform)=Glulx | Ejecutar gBlorb
command.3.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\gargoyle\gargoyle_windows\gargoyle.exe "$(FileName).gblorb"
command.name.4.$(file.patterns.inform)=Glulx | Ejecutar ULX
command.4.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\gargoyle\gargoyle_windows\gargoyle.exe "$(FileName).ulx"
command.name.5.$(file.patterns.inform)=Glulx | Ejecutar zBlorb
command.5.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\gargoyle\gargoyle_windows\gargoyle.exe "$(FileName).zblorb"
command.name.6.$(file.patterns.inform)=Glulx | Ejecutar BLB
command.6.$(file.patterns.inform)=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\gargoyle\gargoyle_windows\gargoyle.exe "$(FileName).blb"
#Z Machine
command.compile.*.inf=C:\Users\baltasarq\Documents\mydrop~1\prys\if\inferno\res\inform\inform_windows\inform.exe $(options) "$(FilePath)"
#by default, z5 is the compiled game assumed
command.go.*.inf=c:\windows\system32\cmd.exe /c "start $(FileName).z5"


Por supuesto, es necesario cambiar los directorios para que apunten a la localización de Inform en tu sistema.

Si quieres coloreado de "sintaxis", necesitas añadir, además, las siguientes líneas:


file.patterns.asm=*.asm
file.patterns.inform=*.inf;*.h

filter.asm=Assembler (asm)|$(file.patterns.asm)|
filter.inform=Inform (inf h)|$(file.patterns.inform)|

lexer.$(file.patterns.asm)=asm
lexer.$(file.patterns.inform)=asm

# these keywords are taken from the masm book (v6.13)
# updated with Intel Pentium 4, MMX, SSE, SSE2 instructions from NASM
# (note that some are undocumented instructions)

cpu_instruction=box break continue default do else font for give goto if include constant inversion jump \
move new_line objectloop print print_ret quit read remove restore return rfalse \
rtrue save spaces string style switch to until while class object release statusline

# these are mostly non-MMX/SSE/SSE2 486+ instructions

cpu_instruction2=
# fpu instructions, updated for 486+

fpu_instruction=Abbreviate Array Attribute private Default \
Dictionary End Endif Extend Fake_action Global Ifdef \
Iffalse Ifndef Ifnot Iftrue Ifv3 Ifv5 Import Include \
Link Lowstring Message Nearby Object Property Release \
Replace Serial Switches Statusline Stub System_file Trace \
Verb Version has hasnt ofclass or in notin with && AMUSING_PROVIDED \
DEATH_MENTION_UNDO DEBUG Headline MANUAL_PRONOUNS MAX_CARRIED \
MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS OBJECT_SCORE ROOM_SCORE \
SACK_OBJECT Story TASKS_PROVIDED USE_MODULES WITHOUT_DIRECTIONS

# these are MMX, SSE, SSE2 instructions

ext_instruction=abierta abierto abrible animado ausente banderaux cerrojo cerrojoechado comestible \
conmutable encendido entrable escenario estatico femenina femenino general hablable \
luz masculino movido neutro nombreplural nombreusado oculto prenda propio puerta \
puesto recipiente soporte transparente valepuntos visitado \
open openable animated absent lockable locked edible \
conmutable on enterable scenery static female general talkable \
light male moved neuter pluralname concealed clothing proper door \
worn container supporter transparent scored visited


register=abajo adentro adjetivos afuera al_e al_n al_ne al_no al_o al_s al_se al_so antes arriba articulo \
articulos cada_turno cantidad capacidad con_llave daemon describir descripcion descripcion_dentro \
despues direcc_puerta direcciones esta_en genero gramatica imperativo inicial irrelevante \
listar_juntos listarse no_puedes_ir nombre nombre_corto nombre_corto_indef nombre_f \
nombre_fp nombre_m nombre_mp ordenes parse_nombre plural puerta_a reaccionar_antes \
reaccionar_despues salidas si_abierto si_apagado si_cerrado si_encendido suma_al_alcance \
tiempo_agotado tiempo_restante vida \
d_to in_to out_to e_to n_to ne_to nw_to o_to s_to se_to sw_to before u_to article \
articles each_turn number capacity with_key describe description inside_description \
after door_dir found_in gramatica imperative initial \
list_together invent cant_go name short_name short_name_indef name_f \
name_fp name_m name_mp orders parse_name plural door_to react_before \
react_after when_open when_closed when_on when_off add_to_scope \
time_out time_left life


Como ves, de esta manera soporta Inform 6 e Inf6Sp.

Queda que autocomplete. Necesitas modificar la línea:


api.*.inf=C:\Program Files\wscite\inform.api


De nuevo, deberás cambiar los directorios. Y el archivo inform.api contiene las palabras reservadas de Inform más habituales, una en cada línea:


abierto
open
abrible
openable
animado
animated
ausente
absent
banderaux
cerrojo
lock
cerrojoechado
locked
comestible
edible
conmutable
encendido
switched
entrable
enterable
escenario
scenery
estatico
static
femenino
female
general
glk_cancel_char_event
glk_cancel_hyperlink_event
glk_cancel_line_event
glk_cancel_mouse_event
glk_char_to_lower
glk_char_to_upper
glk_exit
glk_fileref_create_by_name
glk_fileref_create_by_prompt
glk_fileref_create_from_fileref
glk_fileref_create_temp
glk_fileref_delete_file
glk_fileref_destroy
glk_fileref_does_file_exist
glk_fileref_get_rock
glk_fileref_iterate
glk_gestalt(glui32 sel, glui32 val); Test de capacidad del interprete
glk_gestalt_ext
glk_get_buffer_stream
glk_get_char_stream
glk_get_line_stream
glk_image_draw
glk_image_draw_scaled
glk_image_get_info
glk_put_buffer
glk_put_buffer_stream
glk_put_char
glk_put_char_stream
glk_put_string
glk_put_string_stream
glk_request_char_event
glk_request_hyperlink_event
glk_request_line_event
glk_request_mouse_event
glk_request_timer_events
glk_schannel_create
glk_schannel_destroy
glk_schannel_get_rock
glk_schannel_iterate
glk_schannel_play
glk_schannel_play_ext
glk_schannel_set_volume
glk_schannel_stop
glk_select event
glk_select_poll event
glk_set_hyperlink
glk_set_hyperlink_stream
glk_set_interrupt_handler
glk_set_style
glk_set_style_stream
glk_set_window
glk_sound_load_hint
glk_stream_close
glk_stream_get_current
glk_stream_get_position
glk_stream_get_rock
glk_stream_iterate
glk_stream_open_file
glk_stream_open_memory
glk_stream_set_current
glk_stream_set_position
glk_style_distinguish
glk_style_measure
glk_stylehint_clear
glk_stylehint_set
glk_tick
glk_window_clear
glk_window_close
glk_window_erase_rect
glk_window_fill_rect
glk_window_flow_break
glk_window_get_arrangement
glk_window_get_echo_stream
glk_window_get_parent
glk_window_get_rock
glk_window_get_root
glk_window_get_sibling
glk_window_get_size
glk_window_get_stream
glk_window_get_type
glk_window_iterate
glk_window_move_cursor
glk_window_open
glk_window_set_arrangement
glk_window_set_background_color
glk_window_set_echo_stream
hablable
talkable
HandleGlkEvent
IdentifyGlkObject
InitGlkWindow
luz
light
masculino
male
movido
moved
neutro
neutral
nombreplural
pluralname
nombreusado
oculto
concealed
prenda
clothing
propio
proper
puerta
door
puesto
worn
recipiente
recipient
soporte
support
transparente
transparent
valepuntos
visitado
visited

Categorías: Planeta

Cyclops

Vie, 24/03/2023 - 06:08

Un nuevo relato: más que una aventura, se trata de un librojuego para la IV MiniComp.




La trama comienza con unas vacaciones en el mar, a bordo del Spray, tu yate. Una vez en alta mar, una visita inesperada, en forma de navío abandonada, intentará, por todos los medios, entrar en tu vida.

Lee Cyclops pulsando aquí...

Categorías: Planeta

¡Sobrevive!

Vie, 24/03/2023 - 06:08

Bueno, pues ya está Sobrevive completamente integrada en mi web. Incluso puede jugarse en línea, un aliciente para aquellos temerosos de instalar cosas...




Espero que la disfrutéis... Mientras tanto, estoy intentando corregir los fallos que ha visto Jarel, después de sus comentarios, tan positivos, sobre esta aventura.

http://caad.es/baltasarq/if/sobrevive/

Categorías: Planeta

Sobrevive

Vie, 24/03/2023 - 06:08

¡Por fin!
He terminado finalmente la traducción de Survive, aquella aventura que presenté la concurso de juegos casuales en JayIsGames.

Ahora se puede jugar en español bajándosela desde:
http://caad.es/baltasarq/if/sobreviveDicen.html

Espero que os guste, y que tenga algo más de éxito que entre los ingleses... :-D

Categorías: Planeta

Relatos publicados en la web del arquero

Vie, 24/03/2023 - 06:08

Tal y como prometí, he subido mis relatos a mi web del CAAD. Podéis encontrarlos directamente en:

http://www.caad.es/baltasarq/relatos/

Sentíos libres de opinad sobre ellos, así como de coger ideas para vuestros propios relatos, interactivos o no.

Categorías: Planeta

El asunto Carvalho

Vie, 24/03/2023 - 06:08


Normal 0 false false false EN-US X-NONE X-NONE
Hace cosa de un año acepté proseguir con el remake  de los ‘Pájaros de Bangkok’ partiendo del excelente trabajo de Akbarr en Kenshira. Ya había jugado a los pájaros en los tiempos del Spectrum cuando la aventura venía en el pack 5º Aniversario de Dinamic, y la experiencia fue buena. En ella encarnas al detective Carvalho encargado de encontrar a la hija de un conocido magnate. La aventura era de desarrollo clásico con unos pocos puzles, nunca olvidaré el del taxista, pero muy divertida y de sabor exótico. 
El remake de Akbarr estaba realmente avanzado con un montón de material fotográfico y muchas de las localidades ya implementadas. Pensé que podría tratarse de un proyecto para ir rellenando huecos mientras me dedicaba a otras cosas. Jugando un poco el remake observé algunos cambios en la relación con el guía, que tan importante es en el libro, y que es ignorado en el original de Dinamic. Me surgió la duda de hasta que punto modificar los pájaros, ¿trabajar en un remake con algunos bugs y descripciones adicionales o hacer algo más ?. 
Leí el libro un par de veces y comencé a diseccionar la historia. Anoté en un cuaderno descripciones y detalles de los personajes, una línea de tiempo, las situaciones y poco a poco Carvalho comenzó a adueñarse de mis pensamientos. Me dí cuenta que ya no podía hacer un remake de los pájaros, la historia y los personajes originales daban para mucho más. Decidí no seguir adelante con el remake y plantearlo como una aventura completamente nueva.
Me fascinan particularmente las dos líneas de tiempo que discurren por el libro y que se tocan en los telegramas entre Carvalho y Biscuter. En el libro hay dos casos abiertos, ambos con desarrollos y finales imprevistos. ¿Cómo plasmar esto en una aventura?. Y lo más importante, ¿cómo plasmar la libertad de desarrollo del caso de forma que podamos transportar al jugador a este nuevo mundo?.
En una aventura siempre surge la duda del papel del jugador. Si el jugador encarna a un detective, ¿cómo podría tener acceso a esa experiencia y conocimiento durante el juego?. Es más, ¿necesitaría Carvalho la ayuda del jugador o podría jugar y resolver la aventura el solito?. ¿Podría darse que el jugador no resuelva el caso?. En la ciudad y los personajes ¿hasta que punto bajamos en nivel de detalle?. Este sin duda está siendo un caso difícil.

Categorías: Planeta

Próximo lanzamiento

Vie, 24/03/2023 - 06:08
Buenas,Pues tras haber añadido las últimas ilustraciones y melodías, EL ULTIMO JEDI está ya prácticamente listo para su publicación.Durante la semana que viene haré una última prueba de juego completo para ver que no he roto nada con las últimas modificaciones que se han añadido.
Un saludo,Joru.
Categorías: Planeta

Brum brum

Vie, 24/03/2023 - 06:08

Un speeder en acuarelas.


Categorías: Planeta

me paso a Damusix

Vie, 24/03/2023 - 06:08

El sistema de sonido que venía usando hasta ahora, basado en Efectos.h, tenía un fallito relacionado con el volumen de los canales de sonido, que a veces sonaban más bajo como si arrastrasen una configuración anterior sin actualizarse correctamente.
Pero ayer Urba me reportó un nuevo bug gordísimo: al guardar una posición con el sonido desactivado, y volver a cargarla, el sonido reaparecía y no había forma ya de quitarlo.

Como en el tema de la restauración GLK mis conocimientos se reducen al COPYPASTE y se me estaba hinchando la cabeza, opté por la mejor solución. Damusix funciona bien... pues me paso a DAMUSIX.

El manual parece un tocho, pero está escrito con letras grandes y tampoco es para tanto. Es una librería bastante sencilla de usar, con funciones minimalistas -como las llama el autor- que me han venido de miedo para realizar la sustitución a nivel de funciones de sonido sin tener que reescribir un código que ya estaba hecho. A parte que me servirá para parchear otras aventuras antiguas.
Por ejemplo, la instrucción musica (sonido, volumen); la mantengo en el código, pero el contenido de la función en lugar de llamar a instrucciones de Efectos.h, ahora llama a instrucciones de DAMUSIX.

[musica que_sonido quevolumen;
Damusix.AsignarCanal(que_sonido,0,quevolumen,-1);
Damusix.Tocar(que_sonido);
cancionquesuena=que_sonido;
bajandovolumen=0;
cancionquesonara=0;
rtrue;
];
Y así con todas. Algunas variables son ya innecesarias, pero las mantengo porque se usan en los códigos, y se trata de que estos tengan que modificarse lo mínimo.

Es una librería muy fácil de utilizar. No hay que quebrarse la cabeza ni planificar nada. Sólo mandarle instrucciones al kernel de la librería, y éste ya se ocupa de lanzar un sonido, apagar otro anterior que ocupara el mismo canal; o de cosas más peliagudas como las restauraciones y los UNDO.

El único tropezón lo he tenido por las interferencias de los HandleGlkEvent e IdentifyGlkObject de la librería DAMUSIX con los míos propios. Culpa mía por lanzarme a compilar sin terminar de leer el manual, donde se explicaba la resolución de estos puntos.

Categorías: Planeta

(c)1998-2023 CAAD

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