Formato .EPA (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 | Sí | Título del libro |
subtitle | No | Subtítulo del libro |
author | Sí | 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 | Sí | Breve descripción de la aventura del libro. |
version | Sí | Versión del formato EPA para el cuál fue desarrollado. Actualmente la versión es 1.0. |
edition | Sí | 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 | Sí | 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 | Sí | 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.