domingo, 26 de diciembre de 2010

Desarrollo en Inform 6

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

martes, 14 de diciembre de 2010

Cyclops

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í...

miércoles, 1 de septiembre de 2010

¡Sobrevive!

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

Sobrevive


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/

miércoles, 18 de agosto de 2010

Sobrevive

¡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

lunes, 5 de julio de 2010

Relatos publicados en la web del arquero

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.

domingo, 4 de julio de 2010

Fin del segundo concurso HistoriasDeLaHistoria.com

El blog HdH acaba de publicar los ganadores de la segunda edición del concurso de relatos cortos. Lo cierto es que los relatos ganadores de este año me han gustado mucho más que los ganadores del año pasado, en especial "La calle de los cuatro cantillos". Os recomiendo que lo leáis, pues, además, es realmente corto (2 carillas, de las tres máximas que permitía el concurso).

Yo participaba en esta edición con Castelnuovo, que al igual que El Trono de Inglaterra, "resumen" de mi relato interactivo de mismo nombre, no ha obtenido nada, ni siquiera la mención de estar entre los diez finalistas. En fin, qué se le va a hacer; oye, por lo menos, ahí estuve. ;-)
[Por favor, nótese que hago este comentario desde, digamos, la decepción personal, no con ánimo de desmerecer a los finalistas, que tienen muchísimo mérito al haber sido seleccionados de entre casi 100 relatos enviados.]

Probablemente mañana publicaré estos relatos para que sean accesibles por aquellos de vosotros que pudiérais estar interesados.

viernes, 4 de junio de 2010

Castelnuovo

Hace ya algunas semanas, envié el relato llamado Castelnuovo para el II concurso de relatos Historia de la historia.

En el enlace de arriba aparecen los participantes en el concurso... ¡casi cien!, y eso que el año pasado la cosa ya anduvo rondando los ochenta y cinco. Sí, el año pasado participé con un relato sobre la leyenda artúrica, basado en El Trono de Inglaterra.

Aunque el relato no obtuvo ninguno de los tres premios, sí pasó una selección para ser incluído en un pequeño libreto a acompañar a la publicación Revista Medieval (los mejores cuarenta). Desgraciadamente, por razones editoriales, ese libreto nunca vio la luz. El treinta de junio vendrá el veredicto del jurado, y entonces publicaré ambos relatos, tengo planeado que en formato PDF y ePub (para que, aquellos como yo, que tengan un eReader como Papyre, puedan leerlo cómodamente).

En cuanto al relato que presento este año, se basa en la cruenta y heroica batalla de Castelnuovo, en la que cuatro o cinco mil españoles del Tercio Viejo de Sarmiento defendieron el castillo de Castelnuovo, en la Dalmacia (la costa oeste de los balcanes), y, literalmente, "murieron matando", como diría Arturo Pérez Reverte, pues se llevaron por delante a veinte mil de los cincuenta mil turcos que los asediaban.

lunes, 19 de abril de 2010

Jugar "on-line" desde la web del autor

Siguiendo las recomendaciones de Jarel, y de precursores como Incanus, le he estado dando una vuelta a mis aventuras para que puedan ser jugadas en línea, es decir, sin necesidad de descargar o instalar nada.

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

La gran mayoría de ellas se juegan con Zag,

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

...aquellas que sólo tienen versiones de texto, con Parchment.

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

Mientras que el segundo funciona sin problemas, el primero hace ya bastante tiempo que no se actualiza, y, por ejemplo, no parece capaz de reproducir sonidos. Pero bueno. Un paso más hacia la simplicidad para jugar.

jueves, 1 de abril de 2010

Sobrevive

Pues eso, estoy trabajando en la versión en español de 'Survive', aquella aventura que salió esquilmada del concurso de Casual Games de aventuras en inglés. He empezado con ello, no creo que esté preparado para dentro de un par de semanas siquiera, pero creo que es importante.

Me ha hecho gracia ver estas cosas:


  • A crowd of angry villagers surrounds you.
    Puedes ver también un doctor y unos soldiers.
  • Sobre el table ves un briefcase, un handkerchief, un empty glass y un greenish bottle.
    Puedes ver un watch y un corpse.


Qué cosas...

miércoles, 31 de marzo de 2010

Premios hispanos a la aventura

Bueno, pues ahí va mi comentario sobre los premios hispanos 2010, y es que no puedo evitar decir que me han sorprendido un rato largo.

Antes de nada, felicitar a los ganadores, y agradecer a los votantes que Asalto y Castigo haya quedado finalista como aventura con mejores puzzles.

Mis consideraciones, coincidentes con los apartados de los premios:

  • La venganza de Yan es la aventura del año. Para mi no hay dudas en ese tema, no me extraña que haya arrasado.

  • Luego está Anillo 3, con un fuerte enfoque simulacionista, que no ha enganchado a mucha gente, pero cuyo esfuerzo está ahí y hay que premiar con los mejores, sin duda alguna, PSI's.

  • En cuanto a Amanda, está realmente muy, muy bien escrita, así que no me extraña que se haya llevado el premio a la mejor literatura.


Después entramos en los apartados que no entiendo:

  • Aventura con mayor jugabilidad: Pan de Ajo. Estamos ante una obra de Incanus, un divertimento, como él mismo dijo (sin que pretenda ser despectivo ni nada), en el que, la tarea de hacerte un bocata se convierte en un puzzle inacabable del tipo "antes de cortar el pan debes coger el cuchillo" y cosas por el estilo. Los votantes han hablado, sin duda, pero escoger precisamente esta aventura como aquella con la mejor jugabilidad.... vaya.

  • Mejor aventura del año: Amanda. La calidad literaria de Amanda está fuera de toda duda, pero, y esta es mi opinión personal, queda bastante fuera de mi órbita de preferencias personales en cuanto a Aventura del Año. La aventura salió con una falta de pulido brutal, y, más importante debido a que son características que no van a cambiar, un argumento absolutamente lineal, y unos problemas para pasar de atasco en atasco (como en las aventuras de antaño) de una dificultad extrema y difícilmente comprensible. Finalmente, está basada en un relato corto ya existente (es decir, tiene, digamos, "menos mérito" (con las connotaciones menos despectivas de este término) desde mi punto de vista). Como dije antes, los votantes han hablado, pero no lo acabo de entender. Para mi encajaría mucho mejor como "mejor aventura" La venganza de Yan.

martes, 9 de marzo de 2010

Balance del año 2009

Pues sí, aunque todavía no se han cerrado los premios hispanos (de hecho, están en su primera ronda), creo que ha llegado el momento de hacer balance de este año (¡pero por Dios, si ya estamos en marzo!). Lo bueno: ha sido un año fructífero, sin duda, con cuatro aventuras realizadas. Lo malo: definitivamente Survive. También podría decir que lo que se me ha quedado en el tintero, pero Survive eclipsa a todo lo demás, incluso me ha desanimado un poco y casi hasta eclipsa a lo bueno, pero no debo permitir que eso ocurra.



Pero empecemos con lo bueno. Asalto y Castigo, una aventura multi-retro-plataforma, tal y como la he visto definida por Mastodon. Tengo a medias una conversión a Inform 6, I6Sp, pero no puedo garantizar que vaya a salir en un futuro inmediato. Asalto y Castigo ha sido quizás más un experimento que otra cosa, aunque he aprovechado para completar, como precuela, la trilogía de "El Trono de Inglaterra", de la que por ahora he publicado la citada Asalto y Castigo y su segunda parte, la propia El Trono de Inglaterra, que salió antes y fue en su momento ganadora de varios Premios Hispanos. Asalto y Castigo ha recibido muy buenas críticas, tanto por su caracter retro-innovador como por ser una historia sencilla con quizás pocos puzzles, pero que deja un buen sabor de boca, a la antigua.
En cuanto a la tercera parte de esta trilogía (sí, ya es la última vez que "perpetraré" algo con la excusa de la leyenda artúrica, juraíto), ya empieza a rondarme por la cabeza, y por supuesto, incluirá en parte la búsqueda del Santo Grial. Pero esto no está ni en fase de diseño, así que habrá que esperar bastante tiempo por ello.
Aventura Espacial
La Aventura Espacial es otra de mis creaciones de este año. Ha sido difícil por dos razones: es un remake, y por tanto uno debe atenerse a la historia original de algún modo. Pero por otra parte, la historia original es sencillamente simplona, y si uno le quita el exceso de objetos (la coraza, los pantalones, las botas, los guantes, el casco...); las dificultades puestas a propósito pero que no tienen demasiado sentido (no puedes quitarte el pantalón si no te has quitado las botas), se queda en poco más que "vete a la cámara de descompresión, ponte el traje, que te arreglen la tarjeta de identidad, y sal de la estación". Así que de ahí viene la segunda dificultad, crear una historia creíble a partir de todo ello, de ese marco inicial. Buenos comentarios se han recibido en ese sentido, aunque me parece que no ha recibido del todo la atención que se merecía. De las tres o cuatro aventuras creadas por mi este año pasado, es probablemente la más ambiciosa (sí ha sido muy reconocida en el apartado técnico), pero bueno... Decir, para finalizar, que la historia está incompleta. La aventura espacial tenía hasta tres partes, de la cuál he escrito sólo la primera. Las siguientes partes no plantearían dificultades, si no fuera porque la segunda es también muy simplona, y la tercera, en cambio, es bastante difícil, combinando las cualidades de los diferentes afentes que comparten misión contigo. No sé, es algo que está ahí, pero que tengo que pensar bien.
Visitantes
Finalmente, Visitantes fue un divertimento, una aventura que creé en un par de días, para una competición de creación rápida de aventuras, con una colección de temas limitada. Lo cierto es que me gustó el resultado, no quedó nada mal, y ha gustado también a la gente que la ha jugado, creo que sin duda es, paradójicamente, mi mejor creación, al menos en cuanto a popularidad, de este año.

Y bueno, llegamos a lo malo: lo que se ha quedado en el tintero es la mejora de "Error de Copia" un pequeño trabajo que se le debe a esta aventura desde hace tiempo (¡qué fácil es empezar algo nuevo, y qué difícil actualizar algo "viejo"!). Dos guiones que he desarrollado y documentado para dos futuras aventuras cortas, pero que no he tenido tiempo ni de volver a mirar, y Asalto y Castigo para Inform 6, que está "a medias" desde hace tiempo.

Survie

Bueno, eso, y Survive. Survive surgió de un concurso que apareció repentinamente en la escena inglesa, y que, claro, había que escribir en inglés. Lo cierto es que sabría que el inglés sería un problema, pero ni me imaginaba cuánto. Finalmente, Survive ha obtenido la penúltima posición en el concurso, si bien explorando las puntuaciones detalladas del jurado se observa claramente que tanto técnicamente como en cuanto a guión fue bastante bien apreciada, pero la corrección no tanto de escribir en inglés (errores que también cometí), sino también como narrar una historia de ficción en inglés acabaron con cualquier posibilidad que tuviera.

martes, 5 de enero de 2010

Babble

He creado una pequeña aplicación de escritorio multiplataforma (escrita en Java), para crear archivos iFiction, según el tratado de Babel para ficción interactiva.

La interfaz de usuario soporta los idiomas español e inglés, desde el menú de herramientas.



Página de Babble.

Por supuesto, está basado en el trabajo previo realizado para el babelificador de Inferno.

Es de notar que esta aplicación no realiza ninguna acción blorbificadora, sólo modifica/genera los archivos iFiction (al finy al cabo, archivos XML con un IfID generado automáticamente), para posteriormente poder empaquetarlos con su aventura mediante, por ejemplo, bresc.