Skip to content

.EPA format (Choose your own adventure)

The format .EPA born as a new specification developed to create books of adventure interactive in the style of the classics «Choose your own adventure». The format is specially designed for mobiles.

EPA package

This format will be a file with the extension .EPA (hereinafter EPA package), which is nothing more than a compressed file .ZIP renamed containing a set of files (multimedia resources and .XML files) concrete that will be specified below.

  • The EPA package must be compressed with the algorithm deflate (the most common) to save compatibility.
  • The EPA package you can set the quality Of compression (maximum, normal, no compression) at the discretion of the author of the adventure.
  • For the name of the files it is recommended to use only characters in lowercase, digits or underscores.

The EPA package It will contain several files necessary for the adventure, but above all two types of files .XML main. Let’s see a small example:

epa format file format file

General information

The file info.xml will contain information general to the adventure as the title of the book, author, cover of the book, etc … All the information would be inside a global label called info.

The file format will be as follows:

Label OR* Description
title Yes Title of the book
subtitle No Subtitle of the book
author Yes Author of the book
license No License with which the adventure is distributed.
cover No Color of the book cover. The default color is blue. You can specify red, green, or yellow.
url No Author’s website or book.
contacts No Ways to contact the author [Más…]
icon No Icon representing the book (Max. 64×64)
image No Book cover image (Max. 196×196)
description Yes Brief description of the adventure of the book.
version Yes Version of the EPA format for which it was developed. Currently the version is 1.0.
edition Yes Editing or reviewing the adventure (book version).
init No Page where the adventure begins. By default, the file will be 1.xml

* Mandatory label?

The label contacts is a multi-tag container contact where in an attribute type the type of contact will be specified and in the value of the label, the contact information, be it an email, an address, a number or another.

Here an example of a file info.xml of an adventure. That would be shown like this in the interpreter for Android:

EPA choose your own Android adventure

Adventure Pages

Once the adventure started, and taking as an example the info.xml above, it would start reading the page 1.xml. All the information would be inside a global label called page, with an attribute go with the name of the file (in this case 1.xml).

The rest of the tags contained would have a format as specified below:

Label OR* Description
title No Title of the page or header of a final.
bgimage No Background image for the page
bgcolor No Background color for the page (if you have no image)
bgsound No Music that will play in the background during the adventure. It can be specified to repeat at the end (loop). Supports MID, MP3 and OGG formats.
sfx No Reproduces a sound effect. Useful for sounds of the place.
image No Image that will accompany the text of the page. Supports JPEG and PNG.
flags No Set variables (flags) to true or false [Más…]
text Yes Page text. It will be shown with a popup dialog.
pretext No Text prior to choosing an option.
score No Upon reaching the page, (or it will subtract) the numerical amount of this field to the player’s record.
final No Empty label that indicates the arrival to an end of the game. Required on a final page.
options Yes Specify the buttons and the page it will lead to. [Más…]
continue No Redirect to a new page (attribute target) without having to make decisions. Indicates the button text to continue.

* Mandatory label?

Here is an example of the page loading screens in the interpreter for Android:

EPA choose your own Android adventure

However, this last section (the one with the adventure pages) would be a bit more complex. It should be clarified, obviously, that in a EPA package there will be several files .XML of the different pages.

An example of one of these files would be 1.xml where you can see all the fields in action. Right now they should all be clear, except for the variables and the buttons, which I will explain below:

Specify variables (flags)

Inside the container flags there will be several labels flag, one for each “variable” that we want to set in the game. Said variables (flags) can be put to true (true) or false (fake) and they will be useful to reflect throughout the adventure an inventory of objects or actions carried out, and depending on it, show (or not) buttons with their actions.

EPA choose your own variable adventure

In this example, we can see that, in the line 10 we set a flag currency to true. That can symbolize that on the current page we have obtained a coin. You can also do the same to perform actions, as with the flag pass by home. Finally, we can also set the flags to false, which would symbolize the opposite (object that we have lost or left).

Show buttons

The most basic way to show options in our adventure is to create labels option specifying an attribute target (page to which we will go if you press) and the button text.

However, we can also use the information from the variables to display (or not) certain buttons.

EPA choose your own adventure options

For example, in line 18-19, we specify that if the variables exist flashlight and wrench (to true), the button appears, since having the flashlight in the inventory and the key to go down to the basement, that action would be possible.

In line 22-23-24, you can see another example, which checks if talk old is to falsewe haven’t talked to him) but call old man by phone is truewe have called or warned you on another page) could symbolize that we can talk to him.

More information

Relevant information about the format EPA and related adventures:

  • There is online editor provisional to facilitate the generation of files info.xml or page.xml (1.xml, 2.xml, 3.xml …).
  • The specification is in the process of draft and it can change slightly, but the idea is to publish the format in case someone wants to cheer up and go on adventures.
  • The idea of ​​creating a editor specific adventures in EPA format is in process, this would facilitate the task of creating adventures, but for now they would have to be done manually with an appropriate XML editor.
  • On CYOA there is a documentin English) where the process for developing adventure books is thoroughly analyzed.
  • Give thanks to the guys from the forum CAAD who have collaborated in the development of this format helping and contributing ideas.