Canal de Noticias del equipo INFSP y asuntos técnicos relacionados

lunes, 15 de noviembre de 2010

I7 Build 6F95

Ha salido una nueva compilación de I7; de las del tipo "edicion de mantenimiento", corrigiendo los bugs reportados por los usuarios.
Lo destacable:
* Ya trae de fábrica el interprete web para VM Glulx; con lo que la publicacion web del juego será cosa de coser y cantar (ilusos).
* Trae de fábrica la extension Epistemology, que toma nota del metaconocimiento del personaje durante el juego.
*180 bugs fuera.

La extension Spanish que compila con ella, la encontrarán en el repositorio de infsp7.

* En el aspecto Documentación, Ron ha reescrito su Inform 7 Programmer's Manual. Disponibe en PDF.


viernes, 16 de julio de 2010

I7 - Cambiando los mensajes por defecto

Los mensajes por defecto del parser...ahh ese texto con que una aventura nos daba la sensación de entender (casi) todo lo tipeado en el prompt. Pero solo se trata de una explicación educada de que "el autor no se le dio la pegada gana de considerar la accion que intentas hacer y por ello te pongo el mensaje por defecto de la libreria". Tendrá sus detractores, pero aun así me resulta agradable que exista.

Inform 7 heredó de I6 la mayoria de los mensajes por defecto para muchas de las acciones que soporta y la extensión Spanish heredó los textos de informATE. Pero, como un apologista martilló una vez, tu aventura debe tener TUS mensajes por defecto, imprimiendo tu sello creativo aun en ese resquicio del juego.

¿Cómo cambiar un mensaje por defecto de la librería?
Veamos un método
Debes saber de qué acción se trata primero.
Para ello, desde el panel Game (es decir, ya has compilado tu juego) debes intentar la accion en cuestión.
Pero antes ejecuta el comando-debug  ACTIONS.


>actions
Actions listing on.


>canta
[singing]
Cantas fatal.
[singing - failed the block singing rule]



Ok, se trata de la accion singing (en nuestro ejemplo)
Aplica entonces la regla Instead en tu codigo y listo:

Instead of singing, say "I got the feeling..... ".

Bravo, ya tienes tu nuevo texto cada vez que cantas.
Pero yo quiero que muestre un texto distinto cada vez.
Ok, Vamos a usar una tabla de mensajes para ello, y una instruccion en el bloque de la regla Instead para que  elija un texto diferente cada vez:


Instead of singing:
 choose a random row in the Table of Msg Sing; 
say "[msg entry][line break]".




Table of Msg Sing
msg
"Oid mortales el grito sagrado....."
"Aqui hay amor, amor, amor, amor...."
"I got a feeling..."
"Sueños que son dolooooooor..."
"No voy en tren, voy en avión..."
"No, mejor no."

(puede ser que si copias y pegas no se copien correctamentes las tabulaciones, ten en cuenta eso)
En el panel Index>Actions verás los nombres de todas las acciones que soporta la libreria Inform, más las que agreguen las extensiones que hayas incluido.

También tienes acceso a las variables I7 que utilizan algunos mensajes, como noun y second noun;que hacen referencias al Objeto1 y Objeto2 asociados a la acción (algunas acciones solo tienen objeto1, como cerrar, otras -como cantar- ninguno). Hay otras variables más que podríamos analizar en otra ocación. Las tienes en la pestaña Index>Contens, seccion List of named values.



Para otros tipos de mensajes, como los mensajes de error del parser, puedes usar la Actividad printing a parser error:

Rule for printing a parser error when the latest parser error is the I beg your pardon error: 
    say "Cómo dices? Habla de una vez!" instead. 
  
Lo anterior reemplaza el >>Perdon? cuando le das intro al prompt sin decir nada.
Consulta la ayuda en Chapter 17 Activities: 17.33. Printing a parser error
Tienes 19 tipos diferentes de mensajes errores para modificar. Cada tipo de error lo pondrás despues del when...

Si husmeas en libro de recetas de la ayuda de I7 (The Inform Recipe Book) seccion 6.16. Alternate Default Messages, encontrarás en un ejemplo otra forma sencilla de alterar algunos mensajes.

¿Cómo cambio muchos mensajes por defecto de un tirón?
Una técnica muy chula es utilizando tablas.
Ah...las tablas resuelven muchas cosas. Ordenan los datos, convierten unidades, resuelven partidas de ajedrez, etc.

Con Inform 7 puedes usar una tabla para colocar los mensajes de manera ordenada.
Pero primero debes bajar e instalar la extension que te permite hacer eso (ya que de fábrica no tiene esa capacidad de poder alterar mensajes mediante tablas).
Te recomiendo la Default Messages by Ron Newcomb; una extension sencilla y compacta; con una documentacion breve que exlica la manera de usarla.

Veamos un ejemplo:

Include Spanish by Sebastian Arg.
Include Default Messages by Ron Newcomb.


Use library message alerts.


The Garden is a room.
A mapa is here.




Table of custom library messages (continued)
library-action library-message-id library-message-text
singing action 1         "La, la, la!!!!"
-- 30 "Lo qué?"



Qué tenemos aqui?
Use library message alerts: Una option use provista por la extension. Imaginalo como un switch que habilita algunas cositas que hará la extension. En este caso, te dirá el library-message-id de la accion asociada que la libreria dispará por defecto. Esto lo necesitas para saber indicar en la tabla qué mensaje vas a reemplazar.
Las acciones normalmente tienen solo un mensaje para mostrar (usaras un library-message-id de 1). Pero hay acciones que tienen varios mensajes, dependiendo del resultado de dicha accion. Por ejemplo, la accion opening tiene 7 mensajes diferentes, dependiendo de si la accion fracasó o tuvo éxito.
Hay una accion interna que Inform genera cuando debe mostrar mensajes de error del parser, mensajes ante algunos metacommandos, o algunos mensajes de librería no relacionados con acción alguna. Se le llama la library message.

Por ejemplo, el fastidioso "No veo eso que dices." corresponde a la library message #30.
Ok, con la opcion library message alerts activada, sabremos los datos para completar la tabla de reemmplazo de mensajes.

> COJE EL MAPA
{ taking action #1 }


Cojido.


> COJE LA LINTERNA
{ library message #30 }


"No veo eso que dices."

Lo que ves entre {} es a lo que me refiero. Esos {avisos} desaparecen en la version final del juego o al efectivamente reemplazarlos en la Tabla. Son solo debugstrativos.

Table of custom library messages: La tabla de reemplazo de mensajes propiemante dicha. Tiene 3 columnas. En la primera pones el nombre de la accion, en la segunda el numero de mensaje a reemplazar (1 si es una accion con un solo mensaje) y en la ulima pones el texto del mensaje que usará tu aventura. Asi que cada FILA de la tabla se usará para cada mensaje que quieras reemlazar. Un tip: si la accion que reemplazas es la library message, solo pon "--" en la columna library-action y el parser te entenderá.


Tamien aqui tienes un puñado de variables que puedes utilizar en el texto de tus mensajes, que se explican en la ayuda de la extension.


Si quieres comentar este articulo, me parece que lo mejor sea en el foro del CAAD, porque la edicion de comentarios de blogspot es bastante cutre.

martes, 6 de julio de 2010

I7 Build 6E72 - cazando bichos

El flamante sistema de bug tracking para Inform7  abierto a la comunidad ya dio su primer resultado: la Build 6E72. Se trata de una edición que recoge una selección de correcciones de bugs informados a través de //inform7.com/bugs; incluida una incidencia denunciada por un servidor. El sistema está montado sobre MantisBT; usados tambien (desde hace un tiempo) por Superglus (y creo que AGE lo usó un tiempo).
Desde Spanish no han habido cambios. Bueno, solo uno interno, relacionado con el checkeo de Build para no andar compilando ediciones anacrónicas.

Gozenlo!

viernes, 18 de junio de 2010

I7 - “end the game” vs. “end the story”



Bajar MP3

Nota de voz;  respecto a un cambio en la manera de terminar la aventura desde el código. (Según se lee en el blog de I7)


El siguiente texto te servirá como guía:

Nuevas frases para terminar la aventura (en el código):

Antes:

end the game in death;
end the game in victory;
end the game saying "Has llegado a un callejón sin salida."


Ahora:

end the story;
end the story finally;
end the story saying "You have reached an impasse, a stalemate";
end the story finally saying "You have succeeded.";


martes, 15 de junio de 2010

Inform 7 Build 6E59 - Nueva versión


La nueva edición de I7 ya está en la web disponible para descarga (la version para Linux va a demorarse un par de días).
El changeLog es un poco extenso, pero supongo que puede leerse transverlamente (un apologista me enseñó a usar esa palabara).

De alli destaco:
* Nuevos iconos para Inform
* 250 bugs eliminados
* Win IDE: Menus recargados: Nuevo menu Format, y acceso directos a todos los TABS.
* Puede publicarse la aventura embebida en un html junto con el interprete web parchment. Lista para colgar en la web.
* Elementos y conceptos del lenguaje (como relations, assemblies, adjetives, kinds, etc) se han extendido para abarcar mayores casos (u objetos).
* Agregadas nuevas operaciones con listas (MAP, FILTER AND REDUCE)
* Los juegos por defecto se compilan ahora en modo VERBOSE (referido a la descripcion de localidades), dejando el modo BRIEF a gusto particular del autor (que lo puede vover a poner por código).
* Problem Messages revisionados
* Procedural Rules con sus días contados. Van a eliminarse de I7.
* Cuando da error un codigo de alguna extension, ahora aparece el link correcto a dicha seccion de código.

Muy bien; respecto a la extensión Spanish (que permite que I7 produzca juegos en español) he realizado los cambios minimos para acomodarse a esta nueva Build.
Seguiré revisandola, pero parece que no hay que hacer mucho cambio.
A medida que los autores detecten incosistencias, me iré enterando.

De momento está accesible desde su hosting de GoogleCode. (la version madura se pondrá en el centro de descarga infsp7).

Pueden patalear en el foro inform del CAAD, en su lista de correo.

Y no se olviden de visitar el centro de Documentación infsp7 de vez en cuando.

Etiquetas

>>Buscar en este blog

>>Foro