CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 29 Jun 2017 13:41

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 10 mensajes ] 
Autor Mensaje
NotaPublicado: 08 Mar 2011 19:05 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
No puedo dar un ejemplo porque estoy en un punto que ya ni se que he comido hoy a medio dia, pero he visto juegos donde cada vez que entras en una habitacion te muestra: nombre de localidad, descripcion, listado de objetos y listado de salidas posibles.

En AGE esto no pasa, y me preguntaba dos cosas.
1. ¿Se puede hacer con AGE, que no sea con un trozo de codigo en cada localidad?
y
2. en plan estadistica total, ¿que es mas normal, que el juego muestre siempre las salidas de una habitacion, o que las salidas esten "camufladas" en la descripcion de la localidad?

Supongo que esto es algo que viene por defecto en el sistema (como ir al norte, coger escalera, etc...). Tambien me suena de algunos juegos donde TAMPOCO te muestran el listado de objetos, y que te los "camuflan" en la descripcion.

¿Estas diferencias son a gusto del desarrollador del parser, o del autor de la aventura?


Arriba
 Perfil  
 
NotaPublicado: 08 Mar 2011 19:47 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5265
Ubicación: Coruña
Te respondo:

kalel099 escribió:
1. ¿Se puede hacer con AGE, que no sea con un trozo de codigo en cada localidad?

Sí, se puede hacer en un trozo de código puesto una sola vez en el mundo. Las órdenes que teclea el jugador en general se pueden capturar tanto en la localidad, como en las entidades a las que se refiere, como en el mundo. Normalmente, es mejor capturar los comportamientos específicos de una localidad particular en la localidad, y los comportamientos genéricos en el mundo. Mostrar las salidas se puede implementar como un comportamiento genérico, porque dado el jugador, puedes saber en qué localidad está, y de ahí sacar las salidas.

Para ello, puedes utilizar los siguientes métodos:

* El método getRoom() de la clase Mobile te devuelve la habitación donde está una criatura (por ejemplo, el jugador).
* El método getValidExits() de la clase Room te devuelve un array de caminos (objetos de la clase Path) que se corresponden con las salidas válidas de esa habitación.
* El método getExitName( Path p ) de la clase Room te devuelve un nombre (el primero) de la salida dada (hay otro método si quieres todos los nombres).

Con esos tres métodos y un bucle puedes crear un "salidas" que pondrías en el parseCommand del mundo, y funcionaría para todas las localidades. Si además quieres que se vea junto a la descripción de la localidad, puedes redefinir el comando "mirar", o bien redefinir el método que devuelve la propia descripción (se puede hacer en BeanShell).

kalel099 escribió:
2. en plan estadistica total, ¿que es mas normal, que el juego muestre siempre las salidas de una habitacion, o que las salidas esten "camufladas" en la descripcion de la localidad?

Se dan las dos cosas; pero yo creo que en juegos actuales es más habitual lo segundo, aunque mejor que te conteste alguien más porque yo no soy de los que más aventuras juegan, dedico más tiempo a crear que a jugar, la verdad :oops:

kalel099 escribió:
¿Estas diferencias son a gusto del desarrollador del parser, o del autor de la aventura?

En el caso de AGE, como desarrollador del sistema, he puesto la opción que me gusta a mí por defecto (nunca me ha gustado eso de que las salidas aparezcan explícitamente porque rompe la inmersión, a mí me gusta que una aventura se parezca a un relato, y las salidas deberían ser naturales y no aparecer en plan lista... y de hecho, si no se llaman mediante puntos cardinales, mejor).

Ahora bien, como desarrollador del parser tampoco impongo mi criterio, lo ideal es que haya libertad para que cada autor haga sus aventuras como quiera, por eso también proporciono las herramientas necesarias para listar las salidas si algún autor realmente lo prefiere (aunque yo siempre recomendaré encarecidamente no hacerlo, porque me parece que empeora la calidad de la aventura).

_________________
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: 08 Mar 2011 23:10 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Okey con los metodos. Ya me hago una idea de como usarlos con tu explicacion. Grache! :)

Una vez me dijiste que si habia alguna parte de la documentación que necesitara te lo comentara. Mas que necesitar, creo que podría ser util tipico listado de documentacion de clases, sobretodo de las clases que mas se suelen usar como Room, Mobile o Item. Ya sabes el clasico javadoc para ver los metodos que tiene cada clase.
Directamente no lo necesito porque ahora puedo acceder a ellos con tu codigo fuente, pero se me esta ocurriendo que quizas para un futuro podría estar bien que lo añadieras a la documentacion, no? O que piensas, ¿crees que estaría bien?

NOTA: por cierto, hoy he podido mirar un poco mas afondo las fuentes de AGE y :shock: es enorme xD
Nunca se es del todo consciente de lo que hay detras de un programa así. Enhorabuena.

Al-Khwarizmi escribió:
Ahora bien, como desarrollador del parser tampoco impongo mi criterio, lo ideal es que haya libertad para que cada autor haga sus aventuras como quiera, por eso también proporciono las herramientas necesarias para listar las salidas si algún autor realmente lo prefiere (aunque yo siempre recomendaré encarecidamente no hacerlo, porque me parece que empeora la calidad de la aventura).


Hombre, eso veo que lo cumples en muchos aspectos de la herramienta. Esta tarde "di" con un post donde se debatía el tema del parseComand a traves de los menus y sobre tener una gramatica estandar.
Cierto que nunca se puede contentar a todos, pero por eso preguntaba que QUE era lo mas frecuente; y si de verdad es frecuente mostrar el listado de salidas posibles, como no hay una caracteristica en AGE que pueda aplicarlo sin tener que programarla el autor. No se, puede ser un simple checkbox en la pestaña General del mundo, no?


Arriba
 Perfil  
 
NotaPublicado: 08 Mar 2011 23:45 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5265
Ubicación: Coruña
kalel099 escribió:
Una vez me dijiste que si habia alguna parte de la documentación que necesitara te lo comentara. Mas que necesitar, creo que podría ser util tipico listado de documentacion de clases, sobretodo de las clases que mas se suelen usar como Room, Mobile o Item. Ya sabes el clasico javadoc para ver los metodos que tiene cada clase.
Directamente no lo necesito porque ahora puedo acceder a ellos con tu codigo fuente, pero se me esta ocurriendo que quizas para un futuro podría estar bien que lo añadieras a la documentacion, no? O que piensas, ¿crees que estaría bien?

Sí, creo que estaría bien, es algo que tengo pensado hacer ya desde hace algún tiempo. Lo que pasa es que a la hora de empezar a escribir la documentación, me puse primero con lo que (creo que) necesita un usuario novato para ponerse con la herramienta, de ahí que esté redactando un poco en plan tutorial. Pero esas listas las habrá.

Al-Khwarizmi escribió:
Hombre, eso veo que lo cumples en muchos aspectos de la herramienta. Esta tarde "di" con un post donde se debatía el tema del parseComand a traves de los menus y sobre tener una gramatica estandar.
Cierto que nunca se puede contentar a todos, pero por eso preguntaba que QUE era lo mas frecuente; y si de verdad es frecuente mostrar el listado de salidas posibles, como no hay una caracteristica en AGE que pueda aplicarlo sin tener que programarla el autor. No se, puede ser un simple checkbox en la pestaña General del mundo, no?

Sí, eso lo hago en todos o casi todos los aspectos de la herramienta. Yo implemento por defecto las formas de hacer las cosas que a mí me parecen correctas, y luego quien quiera desviarse de ahí tiene las herramientas para hacerlo.

Sobre la frecuencia, yo diría que no es raro ver aventuras con esas listas de títulos y salidas, pero por suerte no es lo más frecuente. No sé, serán así el 20% ó 30% de las actuales, supongo.

Si se quiere implementar una funcionalidad como ésta una sola vez y que cada autor que la quiera usar no tenga que programarla otra vez, en AGE existe la posibilidad de crear una librería, un código que se mete en un fichero que luego se incluye con source("fichero.bsh") o include("fichero.bsh") en todas las aventuras que se quiera.

No me atrae mucho la idea de poner una checkbox en PUCK para activar algo que me parece un error de diseño. Si hubiera mucha demanda, lo haría; pero espero que entiendas que mientras no la haya, prefiero no hacerlo. Considero que mostrar los títulos y una lista fría y seca de salidas en medio de la salida de una aventura va contra la fluidez de la historia e incluso atenta contra su corrección gramatical (una aventura te cuenta lo que te está pasando, ¿qué pinta un título o una lista de salidas ahí?) Poner algo tan evidente como un botón para activar algo así sería como invitar a la gente a que lo use sin pensar en las consecuencias, lo cierto es que prefiero que si alguien lo usa, sea porque realmente tenga muy claro que quiere hacer eso y no porque haya visto un botón.

_________________
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: 09 Mar 2011 00:01 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Te respondo:

kalel099 escribió:
1. ¿Se puede hacer con AGE, que no sea con un trozo de codigo en cada localidad?

Sí, se puede hacer en un trozo de código puesto una sola vez en el mundo. Las órdenes que teclea el jugador en general se pueden capturar tanto en la localidad, como en las entidades a las que se refiere, como en el mundo. Normalmente, es mejor capturar los comportamientos específicos de una localidad particular en la localidad, y los comportamientos genéricos en el mundo. Mostrar las salidas se puede implementar como un comportamiento genérico, porque dado el jugador, puedes saber en qué localidad está, y de ahí sacar las salidas.

Para ello, puedes utilizar los siguientes métodos:

* El método getRoom() de la clase Mobile te devuelve la habitación donde está una criatura (por ejemplo, el jugador).
* El método getValidExits() de la clase Room te devuelve un array de caminos (objetos de la clase Path) que se corresponden con las salidas válidas de esa habitación.
* El método getExitName( Path p ) de la clase Room te devuelve un nombre (el primero) de la salida dada (hay otro método si quieres todos los nombres).

Con esos tres métodos y un bucle puedes crear un "salidas" que pondrías en el parseCommand del mundo, y funcionaría para todas las localidades


Más vale tarde que nunca!!! :lol:
Yo utilicé un código independiente en cada localidad que además muestra el gráfico del mapa. Pero tomo nota para la siguiente aventura. :mrgreen:

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 09 Mar 2011 00:04 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5265
Ubicación: Coruña
jenesis escribió:
Más vale tarde que nunca!!! :lol:
Yo utilicé un código independiente en cada localidad que además muestra el gráfico del mapa. Pero tomo nota para la siguiente aventura. :mrgreen:

¿Esos métodos no estaban en la lista que te había dado una vez, hace mucho tiempo, por el foro?

Yo pensaba que sí, pero igual alguno de ellos faltaba porque lo creé más tarde.

Bueno, en cualquier caso ahora ya los sabes. :D

_________________
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: 09 Mar 2011 00:14 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Al-Khwarizmi escribió:
Lo que pasa es que a la hora de empezar a escribir la documentación, me puse primero con lo que (creo que) necesita un usuario novato para ponerse con la herramienta, de ahí que esté redactando un poco en plan tutorial

Ya bueno, si tuviera que decidir primero seria el tutorial que es mas util.

Al-Khwarizmi escribió:
Considero que mostrar los títulos y una lista fría y seca de salidas en medio de la salida de una aventura va contra la fluidez de la historia e incluso atenta contra su corrección gramatical (una aventura te cuenta lo que te está pasando, ¿qué pinta un título o una lista de salidas ahí?)

Visto asi, pues razon que convence. Evidentemente no es una forma "real" de vivir una aventura. Lo que pasa que bien crei que era algo mas frecuente, y por eso me preguntaba porque faltaba esa opcion. Si en verdad es algo extra-ordinario de las aventuras pues ya no tiene tanto sentido poner esa caracteristica "tan a mano" .... supongo si


Arriba
 Perfil  
 
NotaPublicado: 01 Nov 2013 19:35 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
jenesis escribió:
Al-Khwarizmi escribió:
Te respondo:

kalel099 escribió:
1. ¿Se puede hacer con AGE, que no sea con un trozo de codigo en cada localidad?

Sí, se puede hacer en un trozo de código puesto una sola vez en el mundo. Las órdenes que teclea el jugador en general se pueden capturar tanto en la localidad, como en las entidades a las que se refiere, como en el mundo. Normalmente, es mejor capturar los comportamientos específicos de una localidad particular en la localidad, y los comportamientos genéricos en el mundo. Mostrar las salidas se puede implementar como un comportamiento genérico, porque dado el jugador, puedes saber en qué localidad está, y de ahí sacar las salidas.

Para ello, puedes utilizar los siguientes métodos:

* El método getRoom() de la clase Mobile te devuelve la habitación donde está una criatura (por ejemplo, el jugador).
* El método getValidExits() de la clase Room te devuelve un array de caminos (objetos de la clase Path) que se corresponden con las salidas válidas de esa habitación.
* El método getExitName( Path p ) de la clase Room te devuelve un nombre (el primero) de la salida dada (hay otro método si quieres todos los nombres).

Con esos tres métodos y un bucle puedes crear un "salidas" que pondrías en el parseCommand del mundo, y funcionaría para todas las localidades


Más vale tarde que nunca!!! :lol:
Yo utilicé un código independiente en cada localidad que además muestra el gráfico del mapa. Pero tomo nota para la siguiente aventura. :mrgreen:


He colocado un trozo de código en cada localidad para mostrar las salidas y luego encuentro este hilo del foro... Bueno a lo que iba, en cada localidad coloco este código

Código:
/*Método de análisis sintáctico de la entrada en una habitación*/
void parseCommand( Mobile aCreature , String verb , String args )
{
    if(equals(verb,"salidas")||equals(verb,"salida")) {
              aCreature.write(self.getPropertyValueAsString("salidas"));
              aCreature.write("\n");
              end();
    }
}


para mostrar las salidas al teclear salidas. Estoy buscando en la documentación para usar los métodos que menciones más arriba pero no lo encuentro, hay algún documento que liste los métodos de cada clase, las clases que existen...

Gracias

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 01 Nov 2013 21:15 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5265
Ubicación: Coruña
Pues en la documentación hay listas documentadas de métodos de algunas clases, por ejemplo Item y Mobile, pero justo de Room coincide que no la he hecho. De momento, tendrás que preguntarme a mí o a otros autores por ellos...

_________________
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: 01 Nov 2013 21:49 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Al-Khwarizmi escribió:
Pues en la documentación hay listas documentadas de métodos de algunas clases, por ejemplo Item y Mobile, pero justo de Room coincide que no la he hecho. De momento, tendrás que preguntarme a mí o a otros autores por ellos...


Ok, gracias.

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 10 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 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:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM