CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 22 Oct 2019 12:50

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 75 mensajes ]  Ir a página Anterior  1, 2, 3, 4, 5
Autor Mensaje
NotaPublicado: 21 Jun 2012 12:11 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Bueno... para mi eso no es una extensión, es la librería del mundo. Si miras el I7 por dentro eso que describes es básicamente lo que hace, describir una lista de 'acciones', poner unas respuestas por defecto y proporcionar una forma de sustituir la forma de responder a las acciones.

Lo que estás pidiendo es poder pasar de 'programación' a 'orientación a datos' como ha dicho más de una vez Al-K. Yo personalmente no creo que eso sea demasiado útil en este caso, porque me parece que aquí lo verdaderamente importante es lo 'excepcional' y no lo habitual como ya he dicho alguna vez:

http://mel-hython.blogspot.com.es/2010/ ... enero.html

Una aproximación intermedia es proporcionar descripciones a medida para los diversos sentidos no sólo la vista, para esto está Senses:

http://inform7.com/extensions/ShadowCha ... doc_0.html

Que se podría traducir.

Pero lo que estás pidiendo más que a una extensión me suena a un nuevo parser.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 12:48 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
No estoy seguro de si te he entendido. Pongamos que tenemos un objeto 'cosa' muy básico, sin ni siquiera descripción y para el que no definimos una actuación especial de las acciones. El jugador puede intentar examinarlo, tocarlo, romperlo, abrirlo,... con lo que la librería no haría en realidad nada sobre el objeto y simplemente devolvería los mensajes que tiene definidos por defecto.

Creo que en este caso, las únicas acciones que afectarían en algo al modelo del mundo serían coger o dejar (si es que cosa está en posesión del personaje). De forma que, en este caso, el listado del que hablo devolvería sólo una de estas acciones. Pero pongamos que ahora decidimos que cosa es una manzana, le damos una descripción y la definimos como comestible. El listado entonces incluiría también las acciones examinar y comer.

El autor podría implementar un sistema de ayuda por etiquetas, por ejemplo, de forma que al teclear el nombre de un objeto (sin acción de por medio) se imprima un mensaje de ayuda que utilice ese listado de acciones interesantes que hacen algo o imprimen un mensaje especial diferente al que usa por defecto la librería: "Puedes intentar examinar, coger o comer la manzana."

Estoy contigo en que en una aventura lo interesante es el comportamiento excepcional de las acciones, no el genérico. Un autor preocupado por los detalles puede que contemple un sacao de personalizaciones a posibles acciones que se intenten hacer sobre la manzana, con lo que el listado de acciones "interesantes" puede hacerse muy grande. Por eso digo que podría ser útil poder escoger qué acciones no se desea incluir en él.

Pongamos por ejemplo que al tocar tocar la manzana se imprime un "Es perfectamente lisa." en vez del "No notas nada al tacto.". En principio, el listado de acciones interesantes incluiría la acción tocar porque el autor ha personalizado el mensaje, pero como la acción sigue sin hacer nada especial ni ofrece información destacable, sería deseable que se pudiese decidir que tocar no aparezca en el listado. No sé si me estoy explicando bien.

¿Eso no entra dentro del campo de las extensiones?


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 13:02 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Lo que estás describiendo es equivalente a reescribir la librería base, porque justamente estas cosas que dices SON la librería base. Tú estás proponiendo es que a todas las acciones den una respuesta que es un texto plano excepto coger y dejar, Nelson al diseñar la librería del mundo decidió que tenía que considerar algunas más (aunque si te fijas no demasiadas más); pero en cualquier caso es la librería base.

¿Por qué no pones ejemplos de código de lo que te gustaría? A ver si así lo entiendo mejor...

Nota: Bueno, en realidad son dos cosas diferentes, una es la respuesta y otra la lista de 'acciones interesantes'. La segunda parte sí me parece que podría ser una extensión... pero mejor espero a ejemplos de código, a ver si estoy entendiendo lo mismo.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 13:23 
Desconectado
Implementador
Implementador

Registrado: 13 Feb 2005 18:57
Mensajes: 1893
Makinaimo escribió:
He pensado que tal vez sería interesante poder conseguir una lista con todas estas acciones que automáticamente actúan sobre el objeto (coger, vestir si el objeto es ropa, abrir si es abrible,...) y aquellas cuyo comportamiento se ha personalizado

Una lista de ese tipo podría conseguirse mediante la llamada "introspección", que es la característica que permite a ciertos lenguajes de programación examinar las propiedades (y el tipo) de los "objetos". En i7 entrarían en juego las reglas y demás.

La ventaja de hacerlo en el momento de ejecución es que ciertas reglas pueden hacer aparecer (o desaparecer) acciones durante el transcurso de la obra.

Una dificultad añadida que se me ocurre es que una acción puede ser lanzada por diferentes verbos o frases, por lo que tendría que tenerse en cuenta la gramática (los understand o equivalentes en i6), que es la que proporcionaría el "texto" (que no la acción) que tendría sentido para el usuario de ">ayuda manzana".

La ignorancia es muy atrevida, y desconozco el funcionamiento exacto de Inform, sus estructuras internas, etc... pero entiendo que lo normal es que recibe una frase, la analiza y se comprueba si se refiere a una acción, que pasa a ejecutarse. Listar las posibles acciones parece ser el proceso inverso, lo que me huele a muy complejo ya que el sistema, hasta donde sé, no está diseñado para trabajar "al revés" (lo que se podría conseguir por fuerza bruta, pero... bufff).

¿Tiene Inform alguna forma de introspección? Las extensiones y capacidades de debug deberían utilizar algo similar (las internas rules, actions o, por ejemplo, estas extensiones de debug que he encontrado en intfiction).

A falta de introspección, creo que una extensión que facilitase ese tipo de listados debería pasar obligatoriamente por que el autor especifique manualmente las acciones (como una "propiedad" más) de cada objeto, que es, precisamente, lo que quieres evitar... A ver si algún gurú tiene una idea genial y te da una alegría, de forma que cuando se defina que un objeto es, por ejemplo, un contenedor, se añadan a la lista los verbos/acciones que proporciona ese "prototipo".

0.02


Última edición por dddddd el 21 Jun 2012 14:21, editado 1 vez en total

Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 13:37 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Yo es que no veo relación entra una cosa y otra, pero vamos así de inicio se me ocurre usar tablas con una columna que sea la acción (véase Pronto):

Código:
Table of Relevant Actions for Things
Object             Action               Relative Default Response                                Activated
Manzana          smelling              "Un olor intenso y delicioso."                            true
Manzana          eating                --                                                               true
Uranio             --                      "¡No hagas nada con eso! ¡Peligro de muerte!"    true
Perro               touching                "Qué pelo tan áspero."                                    true


En esta tabla tendría:

-Object: el posible receptor de la acción
-Action: la acción a realizar, si está vacío se aplica a toda acción con el objeto.
-Relative Default Response: un texto a mostrar como resultado de la acción, si está vacío la acción es interesante pero se trata mediante el flujo normal.
- Activated: un flag para poder activar o desactivar la 'regla' en 'tabla' sin tener que cambiar la tabla en sí.

Las acciones se interceptarían igual que hago en Pronto, y se recorrería la tabla a ver si se aplica algo, entonces se ejecutaría la acción original o el texto según haya en la tabla, etc...

Pero todo esto es bastante 'marciano', para la filosofía de I7. Entiendo su utilidad para determinar las acciones 'relevantes', pero no para la 'ejecución' de la acción. Por eso digo que me parecen dos cosas diferentes.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 13:57 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
Aún no me apaño bien con I7 y no sé cómo se programaría pero si, como habéis apuntado un poco, la idea es; para un objeto dado, sacar una lista de acciones relevantes sobre ese objeto. No ejecutarlas.

La librería de Inform cuenta ya con un conjunto más o menos amplio de acciones, y al intentar ejecutarlas sobre un objeto tratan dar una respuesta lógica y con sentido. Pero en realidad, a menos que el autor especifique lo contrario, suelen imprimir simplemente un mensaje por defecto y son muy pocas las que actúan realmente sobre el objeto; Coger y Dejar sobre objetos no estáticos o de escenario, Abrir y Cerrar sobre objetos abribles, Comer sobre comestibles, Vestir y Desvestir ropa, Ir para direcciones de la brújula...

Lo que haría la extensión que planteo es determinar automáticamente ese subconjunto de acciones relevantes que se pueden hacer sobre un objeto dado. Y además, una acción que en principio no es relevante (como tocar, oler, o examinar si un objeto no tiene descripción), se debería considerar relevante si el autor ha definido un comportamiento personalizado para esa acción concreta en ese objeto concreto.

No sé si así me he conseguido explicar mejor. Más tarde puedo intentar poner algún ejemplo de objetos y acciones relevantes que podrían tener asociados.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 15:53 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Si lo que quieres es que la librería determine por sí misma qué acciones son 'interesantes', eso sólo se puede hacer por fuerza bruta o por reflexión, como dice d6. Inform no tiene capacidad de reflexión sobre las reglas, puedes reordenarlas, quitarlas o ponerlas, pero no puedes ver cuáles están y mucho menos 'entender' lo que expresan desde el propio código, así que la aproximación por reflexión es inviable.

Por fuerza bruta se podría intentar, usando esta extensión:

http://inform7.com/extensions/Jesse%20M ... doc_0.html

Pero sería realmente complicado, porque habría que explicarle a la librería cuáles son las respuestas por defecto de cada acción sobre objeto para que comparase si el resultado es el mismo o no. Y desde luego no sería nada eficiente.

Así que descartando la reflexión y la fuerza bruta, hay cosas que se pueden hacer, teniendo en cuenta la 'clase' y las características de los objetos, pero eso no cubriría las clases definidas por el autor, ni sus nuevas acciones, ni nada parecido.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 19:12 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 15 Dic 2004 21:28
Mensajes: 2302
Yo creo que, independientemente de si se puede implementar o no, resultaría contraproducente tener una aventura que te sugiere lo que puedes hacer.

Precisamente la característica más importante de una conversacional es la sensación de libertad que da el poder expresar casi cualquier cosa, de acuerdo que es sólo una ilusión, pero con la lista de sugerencias definitivamente se mataría esa sensación de libertad.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 19:30 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5308
Ubicación: Coruña
presi escribió:
Yo creo que, independientemente de si se puede implementar o no, resultaría contraproducente tener una aventura que te sugiere lo que puedes hacer.

Precisamente la característica más importante de una conversacional es la sensación de libertad que da el poder expresar casi cualquier cosa, de acuerdo que es sólo una ilusión, pero con la lista de sugerencias definitivamente se mataría esa sensación de libertad.

Sí, yo también pienso eso. Con la lista de sugerencias, la aventura se convertiría en un libro-juego... pues para eso, es mejor hacer el libro-juego ya desde el principio (o una aventura por menús).

Lo que hace que me gusten las aventuras más que esos géneros es el poder, potencialmente, hacer (y teclear) cualquier cosa. Aunque luego en la práctica la cantidad de cosas que se pueden realmente hacer esté limitada por cuestiones de programación, tú como jugador puedes pensar sin límites. Una lista mata eso.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 20:13 
Desconectado
Implementador
Implementador

Registrado: 13 Feb 2005 18:57
Mensajes: 1893
A mi tampoco me convence que la aventura esté en todo momento sugiriendo los verbos, aunque en plan ">ayuda manzana" no parece mal método, sería equivalente a algo como "pistas" o "ayuda" a secas, pero enfocado. Pensemos también en introducciones tipo tutorial.

Johan ha tocado un tema muy interesante, y es la dificultad de determinar la relevancia de una acción concreta. Se podría intentar suponer si es "interesante", mediante cierta heurística, pero la forma menos propensa a errores es que el autor lo indique explícitamente.

offtopic: makinaimo,
Spoiler: Mostrar
échale un vistazo a Quest... puede que se adapte mejor a lo que buscas.


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 21:17 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5308
Ubicación: Coruña
dddddd escribió:
Johan ha tocado un tema muy interesante, y es la dificultad de determinar la relevancia de una acción concreta. Se podría intentar suponer si es "interesante", mediante cierta heurística, pero la forma menos propensa a errores es que el autor lo indique explícitamente.

Sí, esas cosas siempre son peliagudas... me recuerda al debate sobre el concepto de "éxito" vs. "fracaso" en una acción, que tampoco es nada trivial si el autor no lo indica explícitamente porque hay un montón de casuística y matices: viewtopic.php?p=52045#p52045

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 21 Jun 2012 23:47 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
Al-Khwarizmi escribió:
Sí, yo también pienso eso. Con la lista de sugerencias, la aventura se convertiría en un libro-juego... pues para eso, es mejor hacer el libro-juego ya desde el principio (o una aventura por menús).

Bueno, esto es ya otro tema diferente. Para mí, lo realmente contraproducente --sobre todo de cara a jugadores/lectores que se acercan por primera vez a las aventuras conversacionales-- es esa falsa sensación de libertad que parecen intentar vender. Y desde mi punto de vista, la verdadera diferencia de peso de un relato interactivo tipo con respecto a un libro-juego tipo no es ese prompt anti-amigable que te miente diciéndote que puedes teclear cualquier cosa, si no más bien que se desarrolla dentro de un modelo de mundo virtual. En cualquier caso, me alegra que penséis de manera diferente y si queréis entrar a discutirlo se puede crear otro hilo para hacerlo.
dddddd escribió:
échale un vistazo a Quest... puede que se adapte mejor a lo que buscas.

Si, gracias por comentarlo dddddd. No sé cómo funciona Quest, pero la idea esta para una posible extensión viene en parte después de haber visto algún ejemplo de uso del point&click en aventuras de Quest. No me termina de convencer tal cuál está en este momento, pero me ha parecido interesante. Sobre todo creo que obras de este tipo podrían tener mucho sentido en dispositivos móviles.
Johan Paz escribió:
Así que descartando la reflexión y la fuerza bruta, hay cosas que se pueden hacer, teniendo en cuenta la 'clase' y las características de los objetos, pero eso no cubriría las clases definidas por el autor, ni sus nuevas acciones, ni nada parecido.

Vaya. Esto de sacar una lista con acciones relevantes para un objeto no me parecía algo tan descabellado. Una pena que sea algo tan difícil de hacer. Yo además estaba pensando en dar diferentes índices de relevancia a cada acción con relación al objeto dado para poder ordenar el listado de acciones por orden de relevancia, o conseguir listas de las acciones que cumplan al menos con una relevancia mínima dada y cosas así. Supongo que por ahora me olvido de todo.

En fin, gracias a todos por los comentarios.


Arriba
 Perfil  
 
NotaPublicado: 22 Jun 2012 09:39 
Desconectado
Guionista
Guionista
Avatar de Usuario

Registrado: 20 Ene 2007 20:09
Mensajes: 356
A mi la idea de Makinaimo me parece interesante como medio de introducir al jugador novel en la aventura. Creo que al igual que el prompt ofrece una aparente posibilidad infinita, también puede echar para atrás a mucha gente nueva.

Yo lo veo como algo parecido a la siguiente transcripción:

Código:
¿Has jugado alguna vez un relato interactivo? [TECLEA "sí" o "no" y pulsa ENTER]
> no (aquí se activa el modo tutorial)
Cueva en penumbras
Apenas podrías distinguir tu entorno, de no ser por el extraño brillo proporcionado por pequeños parches de algún tipo de sustancia, probablemente __hongos__, arrojando un leve resplandor sobre la superficie de la roca.

Gracias a su luz has podido evitar una segura muerte al detectar esa enorme __sima__ que ocupa gran parte del suelo de la estancia.

[Bienvenido a mi aventura. Puedes empezar por explorar tu entorno mediante órdenes junto al prompt ">", o bien hacerte una idea tecleando el nombre del objeto, o bien pinchando sobre os enlaces subrayados. Por ejemplo: > hongos, seguido de la tecla ENTER]

> hongos
[Puede ser interesate intentar OLER LOS HONGOS, EXAMINAR LOS HONGOS, o RASCAR LOS HONGOS.]

> OLER LOS HONGOS
Aun cuando la luz que desprenden es suave y tranquilizadora, su aroma es un poco parecido al de los huevos podridos.

...etc...


Lo que no me cuadra es lo de la detección automática de las acciones "interesantes". Como se ha dicho aquí, y más allá de la viabilidad de "extraerlas" mediante los mecanismos del parser, creo que el interés o no de una acción sólo puede establecerlo el autor, no necesariamente sería interesante por estar redefinido el mensaje asociado por defecto. Por ejemplo, yo puedo redefinir el mensaje de "No puedes ir en esa dirección" a otra cosa como "Meterte entre esos arbustos no le haría ningún bien a tu traje nuevo". Es un mensaje coherente, pero no deja de ser una versión sofisticada del "No puedes hacer eso".

Respecto a la implementación, yo vería dos posibilidades, una enumerar simplemente la lista de acciones interesantes sobre el objeto.

Código:
The hongos is a thing in the cueva oscura. The acciones interesantes of hongos are smelling, examining, rubbing.


O bien quizá fuera más "literario" definir concretamente el mensaje que mostrará el parser al pedir ayuda sobre el objeto.

Código:
[Puede ser interesate intentar OLER LOS HONGOS para determinar su composición, EXAMINAR LOS HONGOS más detenidamente, o RASCAR LOS HONGOS para intentar obtener una muestra que sirva como fuente de luz.]


En este caso, claro, hay que implementar tanto las acciones como sus descripciones. Estas podrían variar en función del estado de la aventura, etc.

Editado: una aproximación muy similar, y aplicada a todos los objetos visibles (relevantes) es la de Bronze:
http://inform-fiction.org/I7Downloads/E ... ce_40.html
En el caso de Bronze antes del prompt se presentan una serie de acciones comunes a aplicar sobre los objetos relevantes, como examinar, abrir, etc.


Arriba
 Perfil  
 
NotaPublicado: 22 Jun 2012 10:15 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Las opciones que dice Mastodon evidentemente sí se pueden hacer librería.


Arriba
 Perfil  
 
NotaPublicado: 24 Jun 2012 17:40 
Desconectado
Archivero
Archivero

Registrado: 19 Nov 2008 12:32
Mensajes: 268
mastodon escribió:
Editado: una aproximación muy similar, y aplicada a todos los objetos visibles (relevantes) es la de Bronze:
http://inform-fiction.org/I7Downloads/E ... ce_40.html
En el caso de Bronze antes del prompt se presentan una serie de acciones comunes a aplicar sobre los objetos relevantes, como examinar, abrir, etc.


En ese sentido, en el punto 11.3 Helping and Hinting del Recetario ("Inform Recipe Book" en la pestaña Documentation del IDE) se revisita el concepto de Bronze. Se trata del ejemplo Solitude.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 75 mensajes ]  Ir a página Anterior  1, 2, 3, 4, 5

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM