CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 29 Mar 2020 20:30

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 8 mensajes ] 
Autor Mensaje
NotaPublicado: 23 Nov 2006 18:59 
Desconectado

Registrado: 23 Nov 2006 18:34
Mensajes: 1
hola a todos:

Mi pregunta es la siguiente:

Lo que tengo entendido hasta el momento, es que cuando se quiere salvar el estado en un juego conversacional, lo que se hace es salvar todos los comandos o los comandos correctos que el jugador ha tecleado, y a la hora de cargar una trayectoria, a partir del programa en su estado inicial, lo que se hace es ir ejecutando uno a uno los comandos guardados, y caer por ultimo en el estado que se encontraba el jugador al salvar la trayectoria. Es este el metodo empleado generalmente, o estoy completamente equivocado?? Hay otra manera de hacer esto??


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 23 Nov 2006 19:51 
Desconectado
Grafista
Grafista

Registrado: 09 Mar 2004 17:20
Mensajes: 504
Depende de a qué te refieras exactamente con "salvar el estado del juego" y de qué sistema estes hablando en concreto, ya que cada uno sigue, digamos, su librillo para esta y otras cosas.

Pero en general, si hablamos de "salvar el estado del juego" como la acción que realiza el jugador al salvar una partida, pues en la mayoría de los casos no, no se salva el historial de comandos tecleados. Lo que se guarda en el fichero salvado viene a ser como una "foto" del estado actual del juego sin tener en cuenta el modo en el que se ha llegado hasta él. Normalmente esto significa guardar todos los valores de los elementos del juego, o como mínimo, aquellos susceptibles de variar a lo largo de este, de tal suerte que a la hora de cargarse posteriormente cuando el jugador lo requiera, el juego este en un estado idéntico al del momento de la grabación.

Otra cosa del todo distinta es que la practica totalidad de los sistemas actuales de creación de conversacionales incluya entre sus herramientas de depuración la opción de grabar en un fichero de texto los comandos tecleados por el jugador a medida que los efectua y a su vez disponga de un comando para leer el contenido de este fichero y ejecutar dichos comandos "del tirón". En este caso, como ves, se guarda el historial de comandos que han llevado a una determinada situación, pero, al contrario del anterior, se ignora por completo el resultado de estos. En vez de ser una "foto" del estado del juego es un camino que se puede seguir en cualquier juego y que puede dar en cada situación diferentes resultados. Obviamente no es una herramienta de interés para el jugador sino para el autor y, sobre todo, los testeadores, que pueden comparar con ella el resultado de un mismo historial de órdenes en diferentes versiones del juego a medida que éste se va creando.

Una partida salvada sólo suele valer para una versión compilada del juego (normalmente la definitiva que este en manos del jugador) mientras que un fichero de texto con el historial de comandos podría ser leido por cualquier juego en modo de debug (en realidad me estoy ciñendo al modelo de Inform, aunque tengo entendido que en otros sistemas, o al menos en TADS, es practicamente lo mismo)


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 24 Nov 2006 12:14 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 09 Sep 2004 18:24
Mensajes: 1444
De hecho, guardar el estado como una lista de comandos introducidos tendría un problema, y es que no funcionaría para aventuras en las que haya sucesos aleatorios.


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 24 Nov 2006 19:08 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Sí que funciona. El AGE lo hace. Los números aleatorios que generan los ordenadores son realmente sucesiones "seudoaleatorias", que se basan en una semilla inicial. Si guardas la semilla junto a la lista de comandos y la utilizas para alimentar el generador de números seudoaleatorios al cargar el estado, no hay problema, todos los "dados" que se tiren en el juego volverán a dar los mismos resultados :)

Akbarr escribió:
De hecho, guardar el estado como una lista de comandos introducidos tendría un problema, y es que no funcionaría para aventuras en las que haya sucesos aleatorios.

_________________
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  
 
 Asunto:
NotaPublicado: 24 Nov 2006 22:00 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 15 Dic 2004 21:28
Mensajes: 2302
Al-Khwarizmi escribió:
Sí que funciona. El AGE lo hace. Los números aleatorios que generan los ordenadores son realmente sucesiones "seudoaleatorias", que se basan en una semilla inicial. Si guardas la semilla junto a la lista de comandos y la utilizas para alimentar el generador de números seudoaleatorios al cargar el estado, no hay problema, todos los "dados" que se tiren en el juego volverán a dar los mismos resultados :)


Efectivamente..., pero eso es porque le has dado soporte específico en tu sistema, en un sistema donde la secuencia de órdenes no guarde la semilla (todos los que he visto excepto AGE), no hay manera posible de volver a recrear la secuencia pseudoaleatoria.

Además en Inform no es posible ni siquiera acceder a la semilla cuando se usa la función random() incorporada en el lenguaje. Es por eso que en su momento desarrollé la librería aleat.h que implementaba su propia función de pseudoaleatorios y era posible especificar la semilla (lo necesité para una de mis nanos :)).


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 27 Nov 2006 11:55 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 09 Sep 2004 18:24
Mensajes: 1444
Al-Khwarizmi escribió:
Sí que funciona. El AGE lo hace. Los números aleatorios que generan los ordenadores son realmente sucesiones "seudoaleatorias", que se basan en una semilla inicial. Si guardas la semilla junto a la lista de comandos y la utilizas para alimentar el generador de números seudoaleatorios al cargar el estado, no hay problema, todos los "dados" que se tiren en el juego volverán a dar los mismos resultados :)

Ole, bien pensado!.

Nota aparte: Oye, tienes suerte de que no sea una mala persona, que si no te podría decir que dónde se descarga la versión 1.0 del AGE ese que hace tantas cosas. :twisted:


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 28 Nov 2006 10:28 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Akbarr escribió:
Al-Khwarizmi escribió:
Sí que funciona. El AGE lo hace. Los números aleatorios que generan los ordenadores son realmente sucesiones "seudoaleatorias", que se basan en una semilla inicial. Si guardas la semilla junto a la lista de comandos y la utilizas para alimentar el generador de números seudoaleatorios al cargar el estado, no hay problema, todos los "dados" que se tiren en el juego volverán a dar los mismos resultados :)

Ole, bien pensado!.

Nota aparte: Oye, tienes suerte de que no sea una mala persona, que si no te podría decir que dónde se descarga la versión 1.0 del AGE ese que hace tantas cosas. :twisted:

La verdad es que está bien que alguien me lo recuerde de vez en cuando, porque es una pena que hace ya un par de años estuviese muy cerca de ser 1.0, a falta más que nada de pulir detalles, y después de todo este tiempo aún no haya salido.

Primero me vino una época liadísima donde no tenía ni un segundo de tiempo, luego algunos problemas personales me quitaron las ganas, así que entre unas cosas y otras fueron pasando los meses sin que hiciese ni una línea de código de AGE. Ahora mismo ya no hay ninguna circunstancia que me impida dedicarle algo de tiempo (no es que tenga mucho tiempo libre, pero alguna hora de vez en cuando sí que se puede sacar). Lo que pasa es que, después de tanto tiempo sin mirar el código, me da mucha pereza retomarlo, volver a ver qué hacían las cosas, qué quedaba por hacer, qué bugs estaban fichados, etc. Siempre acabo prefiriendo dedicar ese tiempo a programar algo relacionado con mi investigación que es en lo que ando centrado.

Me parece que lo que voy a hacer es, un día que tenga un rato, subir el AGE al servidor de subversion que uso para el curro. De esta manera, siempre que abra el eclipse en cualquier máquina aparecerán esos ficheros por ahí colgando, y será más fácil decir "bueno, ahora que tengo un cuarto de hora, voy a ver si modifico algo". Puede parecer una tontería, pero a mí eso de tener la última versión centralizada y siempre disponible me motiva mucho (de hecho, en el curro avanzo más desde que puse el susodicho servidor de subversion). A ver si así me animo y saco la 1.0, que si no para cuando salga va a estar obsoleta :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  
 
 Asunto:
NotaPublicado: 28 Nov 2006 13:26 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 22:29
Mensajes: 1592
Ubicación: R.I.P.
Al-Khwarizmi escribió:
Me parece que lo que voy a hacer es, un día que tenga un rato, subir el AGE al servidor de subversion que uso para el curro.


¿Y por qué no haces algo mejor? ¿por qué no publicas el código fuente del sistema para que la gente que se anime le eche un ojo?. ¡¡¡E, incluso, hasta alguno le entren ganas de seguir el desarrollo!!!

Esto que te digo ya se hizo en su época, con cierto éxito, con proyectos como Paguaglús/Superglús o el mismo Visual SINTAC.

_________________

"Tengo tres perros peligrosos: la ingratitud, la soberbia y la envidia. Cuando muerden dejan una herida profunda. (Martín Lutero)"


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 8 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:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM