lunes, 14 de julio de 2008

Aventuras para Speccy con Inferno

En la Kdd de Zaragoza 2008, presenté Inferno a todos los que estaban allí y todavía no lo conocían. Grendel se interesó por todos los lenguajes que Inferno (en realidad, txtMap), es capaz de generar. Se interesó mucho por "BAS", el plugin que genera la aventura en Basic.

El código está adaptado (ya que hay millones de varianes de Basic) a Blassic, un intérprete de BASIC que reclama compatibilidad con el mayor número de BASIC's posibles.

Entonces, comenté que podía servir para aquellos interesados en crear aventuras en BASIC para el Speccy, puesto que crea los DATA's con las conexiones entre localidades, las localidades y los objetos.

Grendel preguntó ... ¿podemos hacerlo? ... me dejó un poco descolocado, pero dije que sí, claro. Tenía instalado el BASIn, así que ¿por qué no intentarlo?

Generamos el código con Inferno, lo copiamos y lo pegamos en BASIn, y nos dió un error. Se trata de un error chorras, ya que genera dos líneas con el mismo número de línea: así que modificamos el número de línea y ya está.

La aventura se ejecutó, aparte de este problemilla (que estará arreglado en la siguiente versión de txtMap), sin ningún problema, excepto por un pequeño detalle: sólo se mostraba la primera letra de la descripción de cada localidad.

Esto es un problema de Blassic, que emula mejor el Microsoft Basic, digámoslo así, que el Sinclair Basic. Así, en Blassic, para crear un vector de MaxLocalidades, txtMap genera el siguiente código, compatible con Blassic:

6000 LET MaxLocalidades = 2: Dim H$(MaxLocalidades)





... para después cargar las descripciones de los DATA's .

Para el Sinclair BASIC, en realidad, es necesario hacer lo siguiente:

6000 LET MaxLocalidades = 2: Dim H$(MaxLocalidades, 255)





Curiosamente, en Sinclair BASIC es necesario hacer una tabla de caracteres, y no un vector de cadenas, cuando cada cadena individual no tiene límite de caracteres. Una curiosa decisión.

Por supuesto, esta segunda forma no es compatible con Blassic, que trataría de generar una tabla de cadenas, que no es lo que se persigue.

Una vez hecho esto, el código se ejecutó correctamente en BASIn, sin ningún problema.

Aquel que quiera hacer aventuras en Basic, pues ya sabe ... :-D

martes, 8 de julio de 2008

Funny Games

El otro día fui a ver esta película al cine. Una gran peli, puede gustar o no gustar, pero desde luego, no dejará indiferente. Se trata de terror psicológico.

(...) El pequeño George, con lágrimas en los ojos, sujetaba una escopeta entre sus tiernas y temblorosas manos. "Amartíllala" - dijo el joven, ajustando el guante inmaculadamente blanco en una de sus manos. Se acercaba al pequeño, peligrosamente. El crío, haciendo palanca con la culata de la escopeta y sus caderas, amartillo ambos cañones. Mientras, el joven seguía acercándose. "Aprieta el gatillo" - dijo. El niño, con gruesos lagrimones corriendo sus mejillas, sí tenía claro que no quería que ni a él ni a sus padres les pasase lo que les había pasado a sus vecinos.
Apoyo la culata contra su pecho. Dudó. El joven continuaba acercándose.
Y, finalmente, apretó el gatillo.
Sólo que no había cartuchos en las recámaras. (...)


Esto sería, más o menos, una literaturalización personal de lo que pasaba en una de las escenas de la película. Nada agradable, desde luego.

¿Y si no es agradable, de qué se reía la pandilla de quinceañeros del cine?

Pues así toda la película, a carcajada limpia. Nos amargaron la película de mala manera, hasta tal punto que nos quejamos al salir de la sala (aunque claro, ya no había nada que hacer). Es triste gastarse una pasta en el cine (pq es una pasta), y que venga un imbécil a amargártela con sus comentarios y/o carcajadas.

Se trata de un problema de educación, evidentemente, pues yo no recuerdo haber hecho nada parecido, quitando la casa de mis padres, cuando tenía ... doce años.

En definitiva, un problema de educación y respeto por los demás ...

miércoles, 2 de julio de 2008

Síndrome de la palabra exacta

Desde hace algún tiempo, estoy comprándome todas las aventuras gráficas que puedo. Para casi todas, sus precios son irrisorios, ya que normalmente entran en la categoría de juego de oferta en muy poco. Pero lo más importante es que es lo que queda más parecido a una aventura conversacional.

Por ejemplo, el otro día terminé el Monkey 4, aunque tuve que recurrir a la solución en un par de ocasiones (especialmente para poner en marcha cierto mono y escapar de Monkey Island).

Una de las que me compré es Runaway 2, de FX Interactive. Esta aventura incluye la primera parte, Runaway, una aventura que por lo que he podido ver hasta ahora está muy bien cuidada.

Sin embargo, me ha sorprendido encontrarme con el "síndrome de la palabra exacta" en una aventura gráfica. En un momento del primer episodio, se hacía evidente que debía hacer disparar cierta alarma de incendios. Conseguí unas cerillas, pero el prota me decía que el temita estaba muy alto y que no le llegaba. Tenía también un spray de laca, y se me ocurrió que podría combinar las cerillas con la laca y después hacer saltar la alarma de incendios aplicando el "lanzallamas" (producto de la combinación anterior) a la citada alarma.

Sin embargo, cuando intento aplicar el spray a las cerillas, me dice "¡No quiero quemar eso!", que descubrí que era la respuesta estándar para todo lo que quisiera hacer con las cerillas, excepto aplicarlas a la alarma, con lo que me decía que "está demasiado alta". Yo intuía que la solución era eso, así que no me desanimé, e intenté lo contrario: combinar el spray con las cerillas, a lo que va y me responde: "¡Eso no tiene sentido!" ... desesperado, cojo el spray y lo aplico a la alarma de incendios y me responde ... "¡buena idea, construiré un lanzallamas con las cerillas", ante mi total estupefacción. Y efectivamente, funcionó. No parece que los señores que han diseñado esta aventura, pese a tener unos diálogos chulos, un argumento bueno y unos dibujos muy bien hechos, nunca han jugado una conversacional, de otra forma no habrían caído en un error así ... ¡el síndroem de la palabra exacta en aventuras gráficas! ... vaya descubrimiento. :-D

Inferno 0.2

Inferno 0.2 está ya en fase de pruebas beta, y espero ponerlo a disposición de todo el mundo en esta misma semana. Esta versión de Inferno trata directamente con Glulx (aunque sigue produciendo archivos z5/8), y es enormemente sencillo añadir gráficos y sonidos a tu aventura.

He tenido dos graves inconvenientes a la hora de sacar esta versión: las herramientas blorb y babel, y los espacios (sí, el ASCII #32).

Empezando por lo primero, recompile las herramientas de Ross en Mingw, ya que de otra forma me resultaba imposible llamarlas desde Java sin que cascaran. Tuve que parchear el comportamiento de bres, y sólo entonces recordé que aquello ya estaba hecho (disponible en la sección de descargas, si no me equivoco). Se lo he enviado a Ross, pero no sé si le importa lo más mínimo, pq no me ha respondido nada. Una pena. Además, sus herramientas devuelven a menudo códigos distintos de cero incluso cuando todo va bien ... una pena.

Continuando con el carácter 32 del código ASCII, me gustaría saber quién fue el inteligente al que se le ocurrió que se deberían permitir los espacios en los nombres de archivos/directorios. Es realmente absurdo, no dá más que problemas, y seguro que casi nadie lo usa (yo prefiero usar el carácter '_' de ser necesario). El problema es que cada SO lo resuelve de una manera distinta, lo que no ha hecho más que lastrar el desarrollo de Inferno 0.2. Acabo de comprobar que el babelificador no funciona en Windows. Genial.