Skip to content

Stories architecture

Story location

The stories are located on a SD-Card flash memory. The following file system formats are supported by openStoryTeller:

  • FAT32
  • exFAT

Connect OpenStoryTeller to your computer using a USB cable, a USB-disk will show up on your file explorer.

Story root tree

A typical folder organisation is showed here:

arch

At the root of the SD-Card, a special index file named index.ost must be present. It contains the list of installed stories as well as other informations about each story.

Story folder organisation

A story folder name must be a UUID v4 string.

It must contains:

  • A project file in JSON named project.json
  • A pre-compiled story binary name story.c32
  • A directory named assets

The assets directory must contains all the resource files for the story (sounds, images...).

Index file format

General principle

This binary file is encoded using a simple TLV format (Type Lenght Value) supporting the following types:

TypeencodingValue size
Object0xE7Variable
Array0xABVariable
String0x3DVariable
Integer0x774 bytes
Real0xB84 bytes

Each Type is encoded on a byte. Serialization uses little endian fir bytes ordering.

The Length is encoded on two bytes. The length indicates the size of the following value.

Stories index format V1

The Index file root type is an object containing the file format version and the list of stories.

Stories are stored in an array, each entry is the description of one story. A story is located in a directory wich name is the uuid (lower case).

  • Object (2 elements)
    • Integer (format version)
    • Array (n elements)
      • Object (6 elements)
        • String (UUID, folder name of the story)
        • String (title image file name)
        • String (sound title file name)
        • String (Story name or title)
        • String (Story description)
        • Integer (Story version)

Source code under the MIT License, art under the CC0 License.