Planned Features

Sets & Relations

The next major feature planned is to be able to use sets and relations. This would allow you to store information more complex than the Booleans, integers and numbers currently available.

Basically, you would be able to define collections of things. For example:

Characters = {"Declan", "Myka", "Neil"}
Items = {"Sword", "Golf Club", "Rolling Pin"}

And then define relationships between them. For example, you could have an "IsHolding" relationship between characters and items. You could then set specific facts in terms of this relationship.

For example Set("Declan", "IsHolding", "Golf Club", true) would record the fact that Declan is holding the gold club.

You could confirm this by calling Check("Declan", "IsHolding", "Golf Club") which will return true if Declan is holding the golf club.

More advanced functions would let you iterate through all members of a collection for which some statement is true (for example, all of the items held by Myka).

This feature has been implemented in version 0.2

Lookup Table

In order to make the sets and relations useful I also plan to add the ability to define collections of constant data associated with the members of a set. For example, a description of each person could be stored in the lookup table and then used when listing the people in a particular location.

This feature has been implemented in version 0.2

List Helpers

With the addition of lists, there is the potential need for a number of simple helper functions for working with these. For example, you can now iterate through a list of names but there's no simple way to turn them into a grammatically correct string (with commas between items and the last one preceded by "and").

This feature has been implemented in version 0.3

Multiple Display Regions

An obvious use for sets and relations is an inventory system. However, StoryTeller currently does not provide any easy way for the reader to see what is in their inventory. This feature would fix that by allowing you to display multiple pages at once.

While the current page is being shown in the main region of the page, you could have another page on the right which maintains a constantly updated list of everything in the reader's inventory. Another potential use might be displaying the main character's stats, such as their level, health etc...

This feature has been implemented in version 0.3

(Possible) Declare Variables, Sets and Relations without Javascript

I am considering ways to declare variables, sets and relations without needing to write JavaScript code. This would mean that authors would not need to write any JavaScript code unless they want to define custom functions or variable types.

I'm unclear on the form this would take at the moment. Either each variable, set and relation would be declared as an HTML element to be discovered any interpreted by StoryTeller or a foram definet to specify them in a special config div.

Author GUI

Once the specifications for StoryTeller are mostly locked down the next step will be to make it more user friendly by providing a GUI which will make it easier to jump around from page to page while writing.

No comments:

Post a Comment