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.
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 It will contain several files necessary for the adventure, but above all two types of files .XML main. Let’s see a small example:
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:
|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:
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:
|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:
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.
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).
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.
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.
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.