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

¡Ojo! Hago directos en Twitch sobre desarrollo web, ¿Te apuntas? ManzDev

android
42

Escrito por

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.

libro juego elige tu propia aventura

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:

epa format formato fichero file

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:

EPA elige tu propia aventura 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:

EPA elige tu propia aventura 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.

EPA elige tu propia aventura variables

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.

EPA elige tu propia aventura opciones

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.
RELACIONADOS La jerarquía del programador RELACIONADOS 42 curiosidades sobre The Stanley Parable RELACIONADOS 10 razones por las que Monkey Island es genial
x La jerarquía del programador
Manz

42 comentarios

Publica tu opinión