Credit image

¿Te gusta el diseño web? ¡Echa un vistazo a la documentación de LenguajeCSS.com!

Formato .EPA (Elige tu propia aventura)

El formato .EPA es una especificación para crear libros de aventuras interactivas al estilo de los «Elige tu propia aventura».

El formato .EPA nace como una nueva especificación desarrollada para crear libros de aventuras interactivas al estilo de los clásicos «Elige tu propia aventura». El formato está especialmente diseñado para móviles.

Paquete EPA

Dicho formato será un archivo de extensión .EPA (a partir de ahora paquete EPA), que no es más que un fichero comprimido .ZIP renombrado que contiene un conjunto de archivos (recursos multimedia y archivos .XML) concretos que se especificaran a continuación.

  • El paquete EPA debe estar comprimido con el algoritmo deflate (el más común) para guardar compatibilidad.
  • El paquete EPA puede establecer la calidad de compresión (máxima, normal, sin compresión) a criterio del autor de la aventura.
  • Para el nombre de los archivos se recomienda utilizar sólo carácteres en minúsculas, dígitos o guiones bajos.

El paquete EPA contendrá varios archivos necesarios para la aventura, pero sobretodo dos tipos de ficheros .XML principales. Veamos un pequeño ejemplo:

Información general

El fichero info.xml contendrá información general a la aventura como título del libro, autor, portada del libro, etc... Toda la información estaría dentro de una etiqueta global denominada info.

El formato del fichero será el siguiente:

Etiqueta O* Descripción
title Título del libro
subtitle No Subtítulo del libro
author Autor del libro
license No Licencia con la que es distribuida la aventura.
cover No Color de la cubierta del libro. El color por defecto es blue. Se puede especificar red, green o yellow.
url No Página web del autor o libro.
contacts No Formas de contacto con el autor [Más...]
icon No Icono que represente al libro (Máx. 64x64)
image No Imagen de portada del libro (Máx. 196x196)
description Breve descripción de la aventura del libro.
version Versión del formato EPA para el cuál fue desarrollado. Actualmente la versión es 1.0.
edition Edición o revisión de la aventura (versión del libro).
init No Página donde se inicia la aventura. Por defecto, el fichero será 1.xml

* ¿Etiqueta obligatoria?

  • Los archivos XML pueden validarse con una herramienta como XML Validation.

La etiqueta contacts es un contenedor de múltiples etiquetas contact donde en un atributo type se especificará el tipo de contacto y en el valor de la etiqueta, la información de contacto, ya sea un email, una dirección, un número u otro.

Aquí un ejemplo de un archivo info.xml de una aventura. Que se mostraría así en el interprete para Android:

Páginas de la aventura

Una vez comenzada la aventura, y tomando como ejemplo el info.xml anterior, se comenzaría a leer la página 1.xml. Toda la información estaría dentro de una etiqueta global denominada page, con un atributo id con el nombre del fichero (en este caso 1.xml).

El resto de etiquetas contenidas, tendrían un formato como el especificado a continuación:

Etiqueta O* Descripción
title No Título de la página o encabezado de un final.
bgimage No Imagen de fondo para la página
bgcolor No Color de fondo para la página (si no tiene imagen)
bgsound No Música que sonará de fondo durante la aventura. Puede especificarse que se repita al acabar (loop). Admite formatos MID, MP3 y OGG.
sfx No Reproduce un efecto sonoro. Útil para sonidos del lugar.
image No Imagen que acompañará al texto de la página. Admite JPEG y PNG.
flags No Establece variables (flags) a true o false [Más...]
text Texto de la página. Se mostrará con un diálogo emergente.
pretext No Texto previo a la elección de una opción.
score No Al llegar a la página, se sumará (o restará) la cantidad numérica de este campo al record del jugador.
final No Etiqueta vacía que indica la llegada a un final del juego. Obligatorio en una página de final.
options Especifica los botones y la página a donde llevará. [Más...]
continue No Redirecciona a una nueva página (atributo target) sin tener que realizar decisiones. Indica el texto del botón para continuar.

* ¿Etiqueta obligatoria?

Aquí un ejemplo de las pantallas de carga de página en el interprete para Android:

Sin embargo, este último apartado (el de las páginas de las aventuras) sería un poco más complejo. Habría que aclarar, evidentemente, que en un paquete EPA existirán varios ficheros .XML de las diferentes páginas.

Un ejemplo de uno de estos ficheros sería 1.xml donde se pueden ver todos los campos en acción. Ahora mismo deberían estar todos claros, excepto el de las variables y el de los botones, que explicaré a continuación:

Especificar variables (flags)

Dentro del contenedor flags existirán varias etiquetas flag, una por cada «variable» que queramos establecer en el juego. Dichas variables (flags) se podrán poner a true (verdadero) o false (falso) y serán útiles para reflejar a lo largo de la aventura un inventario de objetos o acciones realizadas, y dependiendo de ello, mostrar (o no) botones con sus acciones.

En este ejemplo, podemos ver que, en la línea 10 establecemos un flag moneda a verdadero. Eso puede simbolizar que en la página actual hemos obtenido una moneda. También se puede hacer lo mismo para realizar acciones, como con el flag pasarporcasa. Por último, también podemos poner a falso los flags, que simbolizaría lo contrario (objeto que hemos perdido o dejado).

Mostrar botones

La forma más básica de mostrar opciones en nuestra aventura es la de crear etiquetas option especificando un atributo target (página a la que iremos si se pulsa) y el texto del botón.

Sin embargo, también podemos utilizar la información de las variables para mostrar (o no) ciertos botones.

Por ejemplo, en la linea 18-19, especificamos que si existen las variables linterna y llave (a verdadero), que aparezca el botón, puesto que al tener la linterna en el inventario y la llave para bajar al sótano, sería posible esa acción.

En la linea 22-23-24, se puede ver otro ejemplo, en el que se comprueba si hablarViejo está a falso (no hemos hablado con el) pero llamarViejoPorTelefono está a verdadero (lo hemos llamado o avisado en otra página) podría simbolizar que podemos hablar con él.

Más información

Información relevante sobre el formato EPA y aventuras relacionadas:

  • Existe un editor online provisional para facilitar la generación de ficheros info.xml o page.xml (1.xml, 2.xml, 3.xml...).
  • La especificación está en proceso de borrador y puede cambiar levemente, pero la idea es publicar el formato por si alguien se quiere animar e ir realizando aventuras.
  • La idea de crear un editor específico de aventuras en formato EPA está en proceso, esto facilitaría la tarea de crear aventuras, pero de momento tendrían que hacerse manualmente con un editor XML apropiado.
  • En CYOA hay un documento (en inglés) donde se analiza minuciosamente el proceso para desarrollar libros de aventuras.
  • Dar las gracias a los chicos del foro de CAAD que han colaborado en el desarrollo de este formato ayudando y aportando ideas.

Escrito por Manz, el , en android. Comentarios recibidos: 36.

36 comentarios de lectores
TahiSama
TahiSama
1

Jejejee desde que saques la primera versión del EPA le tendré que "pedir prestado" el Galaxy S a mi hermana jua jua jua :D.

Alberto Calderón
Alberto Calderón
2

¿Solo sacarás versión para Android o harás una para iOS también?

Manz
Manz
3

@Alberto Calderón: En principio sólo tengo programado sacarla para Android, pero si hay algún programador de iOS en la sala... :)

xmangel
xmangel
4

Que gran iniciativa, a ver si pronto tenemos una gran biblioteca para disfrutar como cuando éramos niños.

ikki
ikki
5

ora, interesante, te dejas cae

Xertur
Xertur
6

Que buena pinta tiene esto... :O

Programas Buenos
Programas Buenos
7

ooooh! genial post. Qué recuerdos!. Una forma muy divertida de acercarse a la literatura. Con ganas de probarlo.

Flix
Flix
8

Muy buena idea, pero yendo un poco mas alla se podria hacer un api javascript/css que se dedidacara a leer paginas html con una cierta estructura como una capa con un id determinado para el texto y otro para las opciones (que no dejan de ser enlaces). De esta forma no dependeriamos de aplicaciones especificas para leer dichas aventuras, aunque no quita que se hagan.

Shymik
Shymik
9

Tiene una pinta muy interesante, habra que probarlo y a ver que tal! Muy buen articulo

Alberto Calderón
Alberto Calderón
10

En este tiempo entre el trabajo y la universidad el tiempo es poco, pero quizá después de fiestas pueda empezar a programar esto en iOS. Ahora si hay alguien que tenga más tiempo disponible siempre se puede coordinar un esfuerzo conjunto :)

presi
presi
11

Manz, te dejo comentarios sobre el borrador en el foro del CAAD.

Malkavianº
Malkavianº
12

Yo por pedir yo pediría una versión para Maemo/Meego...

J.Rdriguez
J.Rdriguez
13

:O Buenísimo!!! Que recuerdos aquí tengo yo al menos 10 de esos libros de D&D a los que jugaba y leía :) Valla que bien que recuerdos y ahora otra vez aquí adaptado a los nuevos tiempos y tecnologías, me encanta!

Draco Metallium
Draco Metallium
14

Me encanto la especificacion! La idea de ponerle variables booleanas realmente le da dinamismo a los libros, casi llegando a la idea de una aventura de texto mas que un EPA. Lo unico que me quedo en duda es la diferencia entre un sonido ambiental y la musica. La musica la entiendo, pero ¿Cuando se reproduciria el sonido ambiental? La unica sugerencia que se me ocurre es la inclucion de las etiquetas B, U y I de html, pero son un detalle menor.

Manz
Manz
15

@Draco Metallium: La etiqueta bgsound reproducirá música de fondo (al cambiar de páginas o decidir y continuar la aventura, seguirá escuchandose y sólo dejará de reproducirse al volver a establecer otro bgsound). Por otra parte, la etiqueta sfx reproduce efectos sonoros, sonidos del momento, una puerta abriendose, un grito, un gato, etc...

Jacobo de Vera
Jacobo de Vera
16

Lo he mirado un poco rápidamente (también había leído el hilo que publicaste un foro sobre el tema). Hay una cosa que me ha llamado la atención y me gustaría sugerirte. Las variables solo pueden tomar valores booleanos, entonces quizás las puedes llamar flags, para dar una clara idea de esta restricción. Y quizá puedes meter el valor en un atributo. Yo te propongo este modelo: http://pastie.org/1358701

Alex
Alex
17

Ey, excelente formato. Como lector, te felicito, pero además como científico se me ocurren un par de cosas... Con un formato así, pueden crearse muy fácilmente claves de identificación para plantas, animales, insectos o ácaros. ¡Felicidades! Alex.

Shoghi Cervantes
Shoghi Cervantes
18

Yo he hecho un lector para navegadores en PHP... https://github.com/shoghicp/EPAReader Viene con dos libros Todavia no tiene musica y algunas tags opcionales y tiene un grave fallo de seguridad (asi que por ahora en localhost :))

Tsunabi
Tsunabi
19

Shoghi Cervantes podrias explicar como usar tu lector, porfavor. Gracias de antemano

Shoghi Cervantes
Shoghi Cervantes
20

@Tsunabi: Descarga todos los archivos y ejecutalos en un servidor web con PHP

AngelVengador
AngelVengador
21

¿Hay algún link al foro de CAAD en el que tratan esto? me gustaría tener más información para el desarrollo de una app para iOS.

Manz
Manz
22

@AngelVengador: Vaya... ¿No había puesto el link directo? Mea culpa, aquí lo tienes: Formato EPA en foro CAAD.

Diego
Diego
23

Hola fanaticos del EPA: Soy nuevo en esto del "EPA digital" pero he empezado a escribir un guion para una EPA. Estuve pensando en algunas caracteristicas para mejorar la experiencia y jugabilidad de los EPA. Una de ellas seria generar, sobre distintas partes de la imagen de fondo, tags informativos que describan lo que alli se encuentra, similar a lo que se puede hacer en FB con los nombres. Encontre algo similar aqui: http://www.fotonotes.net/. Tambien me gustaria agregar un mini-inventario de objetos recogidos. Tienen idea de donde puedo sacar info para implementar estas caracteristicas? No se mucho de xml (estoy leyendo un "for dummies") asi que si alguien me quiere ayudar a implementarlos...bienvenidos.. Saludos, Diego

Hugo
Hugo
24

Hola,quisiera saber si se podrian hacer historias y como se harian y si se pueden añadir a la aplicacion del movil,me encanta inventar tipos de historias asi,gracias!

  • 1
matias
matias
25

hola me gustaria saber de donde puedo descargar libros formato .epa por que baje el programa del market de android ilucionado pero no se pueden bajar libros desde el programa ni puedo conseguirlos por internet, gracias y saludos

Manz
Manz
26

@Diego: En el foro de CAAD se mantiene un diálogo acerca del desarrollo de este formato Formato EPA (Foro CAAD). Ahí podrás encontrar más información. @Hugo: De momento sólo tenemos un editor EPA online temporal. @matias: En principio, la aplicación está en fase alpha, por lo que podría tener fallos, pero el repositorio debería funcionar correctamente (acabo de comprobarlo y parece estar operativo).

Shoghi Cervantes
Shoghi Cervantes
27

@Flix: https://github.com/shoghicp/EPAReader

Shoghi Cervantes
Shoghi Cervantes
28

Pues he tenido la idea de añadir la etiqueta (opcional) al info.xml Esto haría posible categorizar las aventuras no solo en el repositorio.

Shoghi Cervantes
Shoghi Cervantes
29

Formato para guardar progreso de aventuras: http://pastie.org/2644701 Implementado en EPAReader (para los que vean raro... no utilize serialize() para hacerlo mas "portable" a otros lados

Anonimus
Anonimus
30

Buenas! En primer lugar enhorabuena por esta gran idea He estado intentado crear mi propio .epa con el editor online: http://www.emezeta.com/EPA/editor/ . He probado con 3 páginas + el info, para ver si funcionaba. He comprimido en .zip la carpeta con los 4 ficheros y cambiado a .epa. Luego, desde mi movil, la aplicación reconocía el .epa pero al abrirlo me decía que "la página correspondiente (info.xlm) no se encontró. ¿A que puede deberse esto? Gracias de antemano, Un cordial saludo

Manz
Manz
31

@Anonimus: No estoy seguro si es un error en el mensaje o no, pero asegúrate de que el fichero se llama info.xml y no info.xlm. ¡Saludos!

Nextor
Nextor
32

Hola Manz. Acabo de descubrir tu app y tu formato. ¿Sigues trabajando en él? Me parece muy interesante.

Willy
Willy
33

Hola alguien me puede decir si van a sacar más libros epa, aquí en Zaragoza somos ya muchas las personas que nos a gustado esta aplicación por nuestra infancia y solo hay 5 historietas. Comprendo que me la podría hacer yo pero yo soy más de leer no de crear gracias y si alguien sabe donde se pueden descargar más libros si se puede, por favor que lo publique necesito leer otro más. Gracias

jormaje
jormaje
34

Estoy haciendo una historia y no encuentro la forma de hacer que me funcionen las flag y las var correctamente, en unas variables m va d una forma y en otras d otra, que diferencia hay entre flag y var? como hay que usar cada una?

  • 1
Anonimus
Anonimus
35

http://freakshare.com/files/8qxgwb07/steeljail.rar.html

Jacobo Feijóo
Jacobo Feijóo
36

Os he hecho una entrada en la web www.librojuegos.com, Facebook y Twitter. Enhorabuena por vuestro proyecto. Confío poder ayudaros más con esta difusión e invitaros a hacer evolucionar esta estupenda idea. Un saludo

Publica tu opinión

Si lo deseas, puedes utilizar el siguiente formulario para publicar tu opinión o responder a alguna de las existentes:

Previsualización

Aquí se previsualizará su comentario. Revise que sea correcto antes de publicarlo.