open-story-teller/docs/dev-stories.md

2 KiB

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:

Type encoding Value size
Object 0xE7 Variable
Array 0xAB Variable
String 0x3D Variable
Integer 0x77 4 bytes
Real 0xB8 4 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)