jueves, 20 diciembre

16:08

la interfaz conversacional
[Informate tú (Herel)]

Descubrí las aventuras conversacionales a través de un compañero del colegio que me habló de un nuevo juego de "hablar con el ordenador", lo cual despertó mi curiosidad y quizá determinó el rasgo distintivo que para mí diferenciaría este género de otros: la interfaz conversacional.

El prompt que esconde tras de sí una base de datos de léxico, más o menos amplio, tiene un potencial que no siempre se aprovecha. Por ejemplo, cuando una aventura sólo responde a acciones simples como: Norte, Sur, coger, dejar, empujar, hablar con...; y objetos básicos, el sistema conversacional está desperdiciado. No es más que una lista escueta de acciones o íconos escondida.

El potencial de la interfaz conversacional está en permitirnos/obligarnos a expresarnos más específicamente en nuestro idioma, yendo más allá de un lenguaje pobre y multifuncional.
Bien es cierto que para comunicarse de forma básica hace falta muy poco vocabulario. La mayor parte de las conversaciones se resuelven con una pequeña parte del léxico total de un idioma, limando el contexto las imprecisiones de las palabras multisignificado que comunmente usamos. Y las usamos porque por el precio de tener en la punta de la lengua una palabra de esas, nos ahorramos tener cinco más concretas y normalmente más largas. A éstas últimas más bien recurrimos cuando nos expresamos por escrito, pues no contamos necesariamente con ese gran aliado que es contexto, que convierte una palabra imprecisa y genérica en inequívoca, y cuando tenemos que rellenar una hoja o un tiempo de exposición, o quedar como cultos y formados.

Por ejemplo, la palabra "pillar" nos vale para expresar: coger, agarrar, atrapar, robar, comprar, sorprender, sostener, atropellar, reservar, tomar un vehículo o ruta, contraer una enfermedad o estado de ánimo, alcanzar, ligar, recibir algún golpe en una pelea...
A grandes rasgos podríamos sacar una consecuencia común de todos los significados: hacerse con el dominio de un ente, situación o lugar... o un moratón.

En las aventuras gráficas tenemos interfaces basadas en un idioma simplificado, en diversos grados. Desde las aventuras con unas pocas acciones: coger, examinar, accionar y usar; a otras como las de Lucasfilms con una lista más amplia.
Pero a fín de cuentas es una simplificación, una selección que se traduce en una comunicación pobre que se perdona aceptando las reglas del juego.

Así, "reventar la puerta con el pico" se traduciría en este microlenguaje como "usar pico con puerta"; "engrasar las bisagras de la puerta"  como "usar aceite con puerta"; "pintar la puerta de rojo" como "usar bote de pintura roja con puerta"; y "pintar un círculo rojo con un puntito en medio en la puerta" como... "usar bote de pintura con puerta", curiosamente exactamente igual que "pintar una equis en la puerta".

El sistema conversacional, además de la posibilidad de obligarnos a usar un lenguaje más rico, ofrece este potencial de especificidad y de ir más allá de forma inequívoca.

Por supuesto, aquí existe un conflicto entre el ideal y la práctica.
Volvemos al ejemplo de engrasar las bisagras de la puerta.
Si admitimos "echar aceite en puerta" como acción sinónima de "engrasar las bisagras", abrimos la puerta (nunca mejor dicho) al microlenguaje genérico y pobre de la aventura gráfica. En cambio, si somos estrictos-puñeteros, nuestra aventura será muy poco interactiva, se convertirá en un "adivina la palabra exacta".

Personalmente creo que lo mejor es admitirlo todo (excepto "usar"). Al menos en este ejemplo, no cabe duda de que el jugador que escribe "echar aceite en puerta" no tiene otro fin que engrasar las bisagras... ya sería raro que hubiera alguno que tuviera en mente barnizar la madera de la puerta con esa acción.
En otros casos la aceptación sería más discutible.

Aventuras online
[Informate tú (Herel)]

Re-cayendo en la posibilidad de ofrecer las aventuras online, como hace Incanus en su página o Literactiva, he colocado la única que tenía en Máquina Z: "El caso del misterioso asesinato del domador de pulgas del circo de Montmartre", así como "Venenarius Verborum", que he tenido que convertir previamente eliminando toda la morralla de GLK. Y también resolver un pequeño quebradero de cabeza por exceso de anidaciones (branches), ya que por lo visto la Máquina Z tiene unas limitaciones a ese respecto inferiores a GLULX.

En la citada página de Incanus se exponen dos formas de colocar una aventura online:

  • Mediante un applet java, ZPlet, para lo que necesitas tener instalado un Java Runtime.
  • Mediante, Parchment, que ha sido la opción que he escogido, ya que mi intención era que el potencial jugador no tuviera que descargar ni instalar absolutamente nada, simplemente hacer click y empezar a jugar.
Usar Parchment es tan sencillo como añadir el siguiente enlace en tu web:
http://parchment.googlecode.com/svn/trunk/parchment.html?story=http://misitioweb.com/aventura.z5

Más fácil imposible.
Por ahora este intérprete online sólo admite aventuras compiladas para Máquina-Z, y ralentiza un poco.
Desde luego que es mucho más cómodo descargarse la aventura al ordenador y jugar con un intérprete en condiciones como Winglulxe, Frotz, o Gargoyle.

Pero pongámonos en la piel de un visitante extraño, o imaginemos que somos nosotros ese extraño. Llegamos a la página de un fulano que no conocemos de nada, y que nos dice que tenemos que descargar nosequé programa extraño para jugar a sus juegos.
Tanto por pereza como por la sospecha de que nos intenten colar un troyano, es posible que valoremos que no merece la pena . A fín de cuentas, ¿quiénes son esos tipos? ¿qué garantías ofrecen?
Incluso si ya sabemos de qué va la cosa y nos fiamos de esta gente, igual queremos probar antes el juego, a ver si nos atrae la temática.

Otra opción online es programar una aventura directamente en Kenshira, que al estar orientado a la publicación web ofrece una excelente puesta en escena.

El tema se ha comentado en este posteo del foro.

Actualizaciones:
Presi ha habilitado un redirector para Parchment dentro de CAAD, que se actualizaría en el caso de que la url de Parchment cambiase.
De modo que podemos poner el siguiente enlace para meter una aventura de Máquina-Z online en nuestro sitio web:
http://www.caad.es/jugar?aventura=http://sitioweb.com/aventura.z5

Uto acaba de crear un lanzador GLULXE para ZAG.
El lanzador, a diferencia del intérprete web, lo que hace es automatizar el proceso de descarga y ejecución de la aventura y el intérprete ZAG en una ventana JAVA dentro de nuestro ordenador, por lo que tendremos que tener instalado JAVA.
Para meter una aventura GLULXE en nuestro sitio web auto-lanzable, colocaremos el siguiente enlace:
http://www.caad.es/superglus/online/jugarglulx.php?aventura=http://sitioweb.com/aventura.blb

O mejor lo cargaremos especificando además un fichero de configuración .cfg, que básicamente contendrá esto:
WindowBorders=no
Para que no aparezcan los poco estéticos bordes entre ventanas.
Así:
http://www.caad.es/superglus/online/jugarglulx.php?aventura=http://sitioweb.com/aventura.blb&config=http://sitioweb.com/aventura.cfg

El problema es que estamos hablando de ZAG. ¡¡ZAG!! Sí, un intérprete Glulxe que no admite sonidos OGG y sólo AIFF y MOD de 4 canales, además de ofrecer una visualización horrorosa con parpadeos en algunos refrescos.
Así era en el 2005, y así es, pues no ha habido nueva versión desde entonces.

El nuevo blog de Melitón
[Informate tú (Herel)]

Golpéalo!, Hit it!. Así se llama el nuevo blog de Mel, que sin abandonar del todo su Guarida, dedica este nuevo espacio a "golpear" y hablar sin pelos en la lengua. Haciendo crítica de aventuras y de tendencias.

Hace tiempo tuve un capítulo con Mel en el foro del CAAD que fue algo así como que él hizo una crítica de una aventura mía achacándole ciertas carencias, a lo que yo le respondí que no es que la aventura careciera de aquello, sino que él no lo había visto. Recuerdo que se lo tomó como si hubiera herido mi susceptibilidad, demostrando una vez más, que no se podía hacer crítica libre dentro del CAAD, e hizo mutis por el foro creando una entrada en su blog para expresar su decepción. Yo me lo tomé como que la susceptibilidad herida fue la de Mel, que no aceptaba la contracrítica o las puntualizaciones.

Pensando sobre eso, creo que metí un poco la pata. Es mejor callarse (aunque cueste) y dejar que la crítica fluya sin obstáculos, que buena falta hace. Es preferible crítica demasiado subjetiva (y quizá injusta desde el punto de vista del autor) que el "buenapintismo". (Además, releyendo, mi respuesta fue bastante pendenciera)
Es decir, ¿que alguien dice que le falta tal a la aventura? Perfecto, aunque uno crea que es incorrecto, esa persona no lo ha visto, y lo que está relatando es su experiencia ante esa aventura. Y en su experiencia personal eso no apareció.

Prefiero leer críticas de lengua larga (no necesariamente de mis aventuras, sino de las demás) que comentarios vagos y diplomáticos. Dicen mucho más, aunque sean poco científicas.
Por ejemplo, la crítica negativa que ha escrito Mel sobre "A veces", de Jenesis, da muchas más ganas de rejugarla que un comentario sospechosamente moderado.

Trofeo Orcoscomp
[Informate tú (Herel)]

Esta mañana Planseldon me ha hecho entrega de mi trofeo de la Orcoscomp, por El Cristal Rojo:

Videos musicales con Pyhton
[Informate tú (Herel)]

A falta de un editor de vídeo que permita mezclar animaciones sobre fondos y moverlas, me puse con pyhton-pygame a crear un vídeo musical.
Es todo parecido a crear un juego, con la diferencia de que no hay control externo.

Como ha de sincronizarse con una pista musical, tengo una serie de variables que me van diciendo en qué punto de la canción estoy, de acuerdo con la base musical en MIDI.

Así hay una variable tiempo que va corriendo hacia adelante en décimas de segundo.
Cada 16 tiempos sube un valor la variable tiempo_cuarto, que sería aproximadamente el tiempo transcurrido entre un bombo y una caja en ritmo simple,
y cada dos tiempo_cuarto sube un valor la variable tiempo_measure.

El "measure" es la unidad de medida de mi secuenciador, y podría asimilarse a hojas de partitura. Cuando termina un measure aparece otro con nuevas notas.
Normalmente relleno los measures con 4 bombos y cajas a ritmo simple, aunque este es de los pocos casos en los que el measure contiene la mitad de información (y lógicamente tocado al doble de velocidad): bombo-caja-bombo-caja, fín del measure.

Con estas variables, empiezo a lanzar las animaciones:
En la segunda mitad del octavo measure empieza a cantar, entonces:
if tiempo_measure==8 and tiempo_cuarta==2:
  Player.accion_cabeza=1
  Player.accion=2
  Player.escala=2
  Player.x=200
  Player.vx=4

La cabeza está separada del cuerpo, y tiene cuatro tipos de acciones:
0. callao
1. mueve la boca abriéndola bastante, prononciando aes, o como gritando.
2. mueve la boca con proliferación de dientes apretados, como pronunciando eses.
3. mueve la boca con proliferación de "morritos", oes o plosivas.

El cuerpo tiene 8 tipos de animaciones, depende del que seleccione se pone a bailar de una forma o de otra, o bate una espada, se pone a saltar... así sin parar hasta que le de otra orden con otro tipo de movimiento

Vx es el desplazamiento horizontal en pixels que hará el personaje cada fracción de tiempo, hasta que le mande otro valor o le pare, con Vx=0.

La escala determina el factor de escala, valga la redundancia, por el que se multiplicará el tamaño del cuerpo y la cabeza, recalculando la posición. Para hacer primeros planos.

En fín, que con la partitura MIDI de la canción, es como si le dieses un guión al protagonista de lo que tiene que hacer en cada momento... y hasta nueva orden.
Ponte a saltar... ahora mueve la boca... ahora cállate, ahora por el fondo de la cueva. Ahora colócate a la derecha y avanza hacia la izquierda levantando las piernas, ahora acércate, ahora aléjate y pon el fondo del bosque...

Con la canción sonando al lado hay que ajustar el metrónomo de Pygame para que vaya acompasado.. y aquí está el único problema.
El tiempo de python no es exacto, cada vez que cargas el programa su velocidad de ejecución varía ligeramente, sin importancia para un juego, pero un desastre cuando todo tiene que ir sincronizado. Si antes te iba más o menos bien ese metrónomo, ahora descubres que el video adelanta a la música...o que se queda atrás.
Por lo que al final habrá que reajustar el tiempo de todo el vídeo, con algún programa que te permita algo del tipo "convertir la duración de 2 minutos a 1:58:32"

Si el vídeo corriera al tiempo con la música, se podría meter un control de la boca mediante teclado, de forma que mientras canta le vas indicando al muñeco por golpes de teclado cómo ha de abrir la boca, clavándolo con la letra. Y grabando el vídeo en vivo... sería como un directo XD

La canción del vídeo es ésta, una parodia de David el gnomo, David el orco, con un orco como protagonista. Aunque para el vídeo sonará en versión revolucionada, a más velocidad y con el pitch agudo cuatro tonos subido, que queda más hilarante, sin llegar a sonar a "pitufos maquineros".

Aún no la he terminado porque me falta meterle a los orcos coristas.


 
 

Rectificación: Hoy lo he probado varias veces y va clavado con la música, de modo que no necesitaré ningún programa externo para mezclarlo. Igual tiene que ver con la librería time que le metí a última hora para dejar un lapso antes de que empezara el vídeo.

Aquí está:

Elige tu propia orcoaventura
[Informate tú (Herel)]

Quizá haga algo para la orcoscomp. Estoy planeando un mix entre aventura conversacional y librojuego con combates. Gracias a Eliuk ya tengo el código funcional para lo que es el motor, formado con extractos de la librería Fhablao.h, un parche de Datoki y sustituyendo los "Quips" por flags, usando la librería NewFlags.h

Ahora se me plantea la dificultad de crear las escenas librojuego. El concepto de puzzles es completamente diferente aquí que en modo conversacional. De hecho es complicado implementar algo parecido a un puzzle con un sistema de opciones, casi estás dando la solución.
Por tanto, por un lado los textos, el relato, cobran más importancia. Por otro, cuando el jugador debe decidir, las opciones deben de tener algún sentido e interés, el cual estará fuertemente ligado al interés que despierte el propio relato.

Lo cual no ocurre en la conversacional, donde tenemos multitud de opciones invisibles, y de entre ellas muy pocas que sean realmente prácticas.

Al principio pensé en esto con la idea de que sería más rápido y sencillo hacer un librojuego que una aventura conversacional corta, pero me estoy temiendo que no va a ser así, aun con el motor listo.
Podría "fusilar" algún libro de Lobo Solitario... XD
A parte de tener que pensar todas las subtramas, esto va a ser como volver a programar por tablas, haciéndote un mapita en árbol de localidades y comunicaciones entre ellas (opciones).
Claro, que todo se puede simplificar:





En cuanto al sistema de combate, se basará en turnos alternativos de atacar-defenderse, entrando en juego la Destreza en el Combate, la Energía, la ruleta, bonificaciones o penalizaciones en función del tipo de ataque, y penalizaciones por luchar contra más de un enemigo.

La energía mide tanto la vida como el cansancio, cuanto más fuerte estés mejor peleas.
Cuando la energía llega a cero mueres, incapaz de defenderte más.
.
Atacar a más de un enemigo supone que tienes que dividir tus puntos de destreza a la hora de defenderte entre el número de amenazas.

Las tiradas de la ruleta son de 0 a 9, siendo 1 pifia (fallo seguro) y 0 (10) acierto seguro. Además, sacar un 0 atacando a un enemigo que anteriormente obtuvo pifia supone un crítico: daño x 3.

Las tácticas de combate son 4:
1. defensiva.
2. equilibrada.
3. ofensiva.
4. sucida (berserker).
La defensiva es la única que no consume energía, se basa esquivar y buscar buenas posiciones para atacar sólo ante oportunidades claras. Como compensación, en el turno siguiente tendremos una bonificación de defensa.
La sucida es la que más aumenta la probabilidad de acierto en el enemigo, a costa de que en el turno siguiente, cuando seamos atacados, sufriremos una penalización en nuestra defensa, y además consume más energía.
El resto de las opciones tienes sus bonificaciones y penalizaciones igualmente.

Lor rivales mayormente serán orcos, lo que se traduce en una destreza en el combate inferior a la del protagonista, pero una fuerza mayor. Es decir: tienen menos probabilidad de acertar, pero cuando aciertan, su daño base será mayor. En la característica de Fuerza están incluídas tanto la potencia del atacante como la del arma con la que golpea.

Todas las reglas son ambivalentes, se aplican por igual al protagonista y a los enemigos, que también decidirán individualmente la táctica de combate que más les conviene en cada turno.




Orcoscomp
[Informate tú (Herel)]






OrcosComp
Fecha límite de recepción de obras 31 de Diciembre de 2009.

La Venganza de Yan, release 0
[Informate tú (Herel)]


Acabo de subir al CAAD La Venganza de Yan.

Yan, ausente durante años labrándose un futuro en el ejército, regresa unos días a su isla natal.
Y en ella descubre que de la aldea sólo quedan ruinas y brasas aún calientes y humeantes.
¿Quién ha podido hacer esto?
¡Quien haya sido lo pagará!

Ocupa unos 10 megas, de los cuales la mitad son gráficos, luego sonido, y por último el código en sí, que son 500 Kb.

Para más información podéis leer el comentario de Urbatain en SPAC, tras testear la aventura, o entradas anteriores de este mismo blog para detalles técnicos.

Diagrama de bloques de los pájaros
[La mano parlante (KMBR)]

He pasado a diagrama de bloques el flujo de los puzzles del juego. La parte inicial es bastante abierta, pero se puede resolver saltando pasos lógicos como la lista que nos proporciona Charoen. Toda la parte del final desde que Carvalho sube al tren es inventada y está muy alejada del espíritu original de la novela. 


Al enfrentar un trabajo de actualización de un clásico siempre surge la pregunta de hasta donde llegar. En este caso actualizaré el juego haciéndolo accesible, conservando todas las limitaciones de la trama original y sus decisiones de diseño. Si tuviese que emprender una aventura como los pájaros no seguiría el desarrollo original de Dinamic, pero no es el caso que me ocupa.

Ricardo Machuca
[La mano parlante (KMBR)]

Como parte del remake de 'Los pájaros de Bagkok' estoy buscando las ilustraciones en color de la versión de PC. He conseguido algunas de la solución publicada en el número 3 de Micromanía. Indagando un poco he encontrado que el autor original de los dibujos es Ricardo Machuca, autor de varios cómics como 'Las Arenas del tiempo'.

 De momento no he conseguido un blog o un email de contacto para preguntarle por las ilustraciones, asi que hago una llamada al mundo del cómic por si puede ponerme en contacto con él.

¡Muchas gracias!

imagen de Las Arenas del Tiempo

Los pájaros de Bangkok
[La mano parlante (KMBR)]

Tentativa de dibujo para la primera localidad del juego. Probablemente intente mantener las localidades del original.

Entradas anteriores

Feeds

FeedRSSLast fetchedNext fetched after
// infsp channel // XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Aventuras Conversacionales 2.0 XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
caad – Xavier Carrascosa XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
CAAD: Club de Aventuras AD - Comunidad de Aventuras Conversacionales y Relatos Interactivos XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
El blog de Morgul XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
El Escritorio de Incanus XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
El interlector >_ XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Ficción Interactiva – La Línea Dura XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Fragmentarios XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Informate tú XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Interlecturas XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
La mano parlante XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Las aventuras del arquero XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Pacificaciones XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020
Primavera en los Cárpatos XML 16:08, martes, 29 septiembre 2020 15:08, miércoles, 30 septiembre 2020