Foro

Nuevo Autorol en preparación: metaescritura

Comunidad Umbría :: Autorol :: Nuevo Autorol en preparación: metaescritura

Como medida de seguridad los nuevos usuarios no pueden reabrir hilos antiguos.
Si crees que el tema es realmente necesario, por favor, abre uno nuevo en la sección correspondiente.
Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
07/11/2016, 20:05

Buenas.

Con motivo de la Guerra Secreta y la integración de Autorol en Umbría Natilla he reconstruido todo el código y lo he adaptado para ser más versátil (poder conectar APIs y esas cosas). Fijándome en la simplicidad de Twine he copiado una parte de su escritura para crear ficheros de texto que una vez subidos se conviertan automáticamente en partidas sencillas (voy a necesitar mucha agilidad para la Guerra Secreta). Así que ahora mismo en mi versión local (espero actualizar Autorol a la vez que actualizo la Guerra Secreta) si cargo un texto como éste:

[1]
Estás en la entrada de la gruta
[[Entro->2]]
[[Espero un poco->3]]

[2]
La gruta está oscura y silenciosa.
[[Vuelvo afuera->1]]

[3]
No sucede nada.
[[Vale, ahora sí que entro en la cueva->2]]
[[Sigo esperando->3]]

Se generan las tres escenas correspondientes con sus enlaces plenamente funcionales. Luego ya se pueden modificar cosas desde la interfaz del Autorol (que por cierto va a someterse a un lavado de cara intensivo). 

Mi pregunta es: ¿hay alguien que haya usado Twine a fondo y sepa como exporta los ficheros? ¿Lo hace en formato JSON o genera un script como lo que pretendo yo? He visto que cada escena tiene el lenguaje de scripting disponible pero no vi ninguna opción (o no la encontré) para generar toda la aventura en texto plano como pretendo hacer yo. 

Lo pregunto porque puestos a hacerlo prefiero usar el formato Twine como he utilizado en los enlaces, porque no veo necesidad de reinventar la rueda y porque además así me aseguraría la futura compatibilidad para gente que quiera poner sus historias en ambas plataformas (importar de Twine a Autorol o de Autorol hacia Twine).

@Durgeoble: tú lo estuviste probando a fondo ¿no? ¿sabes algo de esto?

07/11/2016, 20:27

Yo para estas cosas suelo usar fichero .yml, que con la estructura en árbol es super fácil hacer lo que quieres. Lo que no sé es cómo trata Django los yml, ni cómo son las librerias yml en python...

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
07/11/2016, 21:22

El yml lo he usado en ansible y es bastante lógico, igual que por ejemplo el Markdown. Pero lo que yo quiero aquí es compatibilizar con otro scripting que ya existe de otro entorno de ficción interactiva, el Twine, que lleva bastantes años. Además no quiero un formato 'informático' sino tirando más a lo que sería la escritura intuitiva de un librojuego. Algo que una persona sin idea pueda ver y diga: vaya, ya sé como funciona.

De todos modos en versiones finales tanto el Autorol como la propia Umbría exportarán a JSON, que si no me equivoco es el formato más extendido para comunicación entre aplicaciones.

07/11/2016, 21:35

Yo estoy viendo el Twine ahora mismo y la opción que veo más parecida a "exportar" es "publicar a archivo", y eso genera un html que tiene todo incrustado (css, js, etc) con parte del formato que tú indicas. Te dejo un pastebin para que le eches un ojo al ejemplo que te decía: http://pastebin.com/pyw7fxfc

A la hora de exportar recomendaría que unificaras criterios con el resto de la Natilla. Json es un buen estandar, ampliamente soportado y (creo) sus exports pesan menos que lo mismo en xml (por mencionar otro estándar de exportaciones).

07/11/2016, 22:36
Editado: 07/11/2016, 22:39

 así me aseguraría la futura compatibilidad para gente que quiera poner sus historias en ambas plataformas (importar de Twine a Autorol o de Autorol hacia Twine).

Por si a alguien le sirve, he jugueteado un poco con esto mismo en mi tiempo libre y creo que he conseguido un resultado aceptable a la hora de integrar historias creadas con Twine en el Autorol actual.

http://autorol.comunidadumbria.com/autorol/jugar/113/

Ventajas:
- La página no necesita recargarse, y potencialmente debería tener todas las funcionalidades que proporciona Twine. (al fin y al cabo, creas la historia con el propio programa; aunque el ejemplo anterior es uno muy simplecito)

Desventajas:
- La historia solo se integra visualmente, no puedes trabajar con el menú de equipo y habilidades de Autorol
- No basta con copiar/pegar el html de Twine. Los documentos que genera el programa generan el código css y funciones javascript en el propio documento y hay que sustituirlos para que no destrocen el aspecto de la web (aquí mi versión modificada: CSS + Javascript)

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
07/11/2016, 22:37

Claro. Las exportaciones de Natilla serán todas en JSON. Considero que el XML tuvo su momento pero no lo aprovechó bien y que el JSON es mucho más fácil y cómodo de usar. Aparte de eso Python/Django cuenta con librerías  nativas excelentes para trabajar en ese formato. 

Pero eso son temas de comunicación entre aplicaciones.

Aquí lo que estoy desarrollando es un sistema para que los humanos suban una hoja de texto, sin preocuparse demasiado de formatos, y se convierta en una historia de Autorol. Tomo como ejemplo Twine para el scripting porque es una herramienta con mucho recorrido y ya hay muchos autores que la usan. No tiene sentido para un escritor usar un formato infernal como el JSON sólo para marcar la posición de los 'números de página' y/o los enlaces. Quiero que la escritura sea más natural (de lo contrario será más útil usar la interfaz de Autorol).

Lo que exporta Twine en el ejemplo es un galimatías (útil para reusar la historia subiéndola directamente a un servidor pero no para lo queyo quiero). Pensé que teniendo un sistema de scripting habrían buscado un formato como el que yo propongo, que fuera 'humanamente legible'. Y no descarto que ande escondido por ahí. 

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
07/11/2016, 22:43
Editado: 07/11/2016, 22:44

@Darkpaul ¡has encontrado una falla de seguridad! Si dejo ejecutar javascript sin chequearlo se pueden hacer cosas feas desde el Autorol. No recordaba yo que había dejado eso así :( Gracias por avisar pero precisamente bloquearé el uso de Javascript por seguridad (y por lo tanto la solución que aportas ahora no funcionará en breve). 

El caso es que el nuevo autorol será como Twine en su funcionamiento: se cargará mediante AJAX y no habrá recarga de página. En cuanto a las opciones que aporta Twine: la idea es tenerlas replicadas en Autorol (y mejoradas en algunos casos). Yo voy por un camino intermedio: que puedas sacar las escenas escritas en Twine y subirlas a Autorol. En tu caso, por ejemplo, bastaría con que hubieras cogido los textos de cada 'escena' de Twine y le añadieras arriba el título de las mismas entre corchetes para tener el sistema haciendo lo mismo pero en formato nativo Autorol.

Estoy realizando pruebas locales con Herencia Maldita y en breve subiré un fichero para que se pueda entender lo que yo pretendo hacer.

 

07/11/2016, 22:55
Editado: 07/11/2016, 22:56

@Darkpaul ¡has encontrado una falla de seguridad!

¡Fue exclusivamente con fines de investigación! Menudo foro este que no puedes ni forzar un par de cerraduras sin que llamen a los ogros de seguridad.

Fuera coñas. el código está ahí, y si alguien le puede sacar utilidad ya habrá servido de algo. No creo que haya muchos foros/blogs que permitan ejecutar javascript externo, pero tal vez a alguien le de por desarrollar algo a partir de lo que ya existe para su propia web.

08/11/2016, 04:21

Disculpad, pero ¿Es que hay que conocer mogollón de programación para usar el autorol? Pregunto porque yo no soy muy versado en la materia. ¿O habrá uan versión simple para novatos? en serio me preocupa un poco, puesto que de verdad quiero participar en la guerra, pero no quiero que mi inexperiencia perjudique al resto.

08/11/2016, 06:23

Kaliborn, hablan de programarlo, no de jugarlo, técnicamente, jugarlo será solo escoger tus opciones y no morir en el intento XDDD

Jefe recuerda bloquear (como se pueda) la opción de "retroceder", que luego aparecen casos de esos que pudiendo un máximo de "5" en algo dicen tener "8-10" XDDD

Y poder dejar la party a medias, sin perder os items seria de agradecer, pensé en hacer una historia, algo más larga, pero algunas de las opciones dependerían de objetos obtenidos :P

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
08/11/2016, 09:25

Como bien dice @oirasime para jugarlo no hay que saber nada, es fácil como el funcionamiento de un botijo (más fácil para los que navegáis por internet, que un botijo tiene su arte). Aquí de lo que hablamos es de la parte de 'creación de aventuras'.

@oiraime: lo de grabar ya se debería poder sin problemas en el Autorol actual, de todos modos en el nuevo está todo revisado. Y sí: lo de no poder ir hacia atrás ni a una escena por navegación también está revisado porque si no en la Guerra Secreta no me vale para nada. ¡Sólo tendréis una oportunidad por misión!

He probado el metalenguaje con una exportación del viejo Autorol al nuevo y funciona francamente bien. Seguiré informando de los avances pero mi ilusión sería que este fin de semana se produjese la migración del viejo al nuevo, porque me desbloquearía dos frentes: la Guerra Secreta y el poder terminar la nueva aventura de Autorol 'Espada contra machetes'. A ver si consigo aprovechar las noches como ayer...

08/11/2016, 14:05

Gracias por la aclaración. :-)

08/11/2016, 16:05

Hasta donde yo sé twine aprovecha el almacenamiento local para funcionar, de modo que hablamos de almacenamiento local (cookies y similares) y publicación.

Lo publicado es una mezcla entre XML y script que se une a un javascript que actua de parser para funcionar

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
08/11/2016, 16:13

Ok, por lo que veo no tiene entonces el metalenguaje para humanos que esperaba que tuviera cuando vi los 'snippets' en el código. Intentaré usar las referencias que pueda de forma similar (como hice en los enlaces) y aumentaré las funcionalidades por mi cuenta.

Este hilo tiene más de 6 meses, lo usuarios novatos no pueden reabrir hilos antiguos.