The project is still very much in the early stages of development. It’s focus right now is getting the basic story generation code working so that I can examine the generative capabilities and how to simplify the module construction.

There are two primary, short-term efforts going on in parallel with the engine right now to help with that goal. The first aims to complete the text generation using a full InnerContext tree (that’s the internal representation of all the data). The second requires development of the concept of verbs in the system - what do we mean by story and actions?

Text Generation

The text generation right now will be to take a text key, find its translation, then insert into that translation text correct replacements based on data from the InnerContext tree.

Most parts of this are already complete. It’s just a matter of tying them all together.

Verb Development

Part of the larger picture of describing all the things you can put into a module includes how to describe actions that have and can happen, and how to communicate that to the user. In the end, the project should provide interesting stories with interesting choices to the player.

So what makes an interesting story? Unfortunately, most topics on the matter use phrases like “compelling” that aren’t all that helpful. But we need to have ways to define basic story structure that allows the narrative to unfold.

The primary structure being used now is “one protagonist has a goal and obstacles keep the character from the goal.” That extremely basic structure puts some hard limits on the scope of stories, but it works well enough for telling adventure stories. This structure also can be recursively applied to itself - the obstacles can imply another story within this one.

Obstacles are currently defined as “threats”, and these threats live outside the story objects, and the engine matches them in the same generative way as the rest of the system. Threats can be immediate, like a rabid badger, or looming, like malaria in recession.

In order to be able to inform the player of threat potentials, “categorical threats” add a layer between the generative threats and the player. This allows the player to understand that, say, a land is home to a cannibal tribe, so that the player can properly prepare for it.

Threats lead into stories. An encounter with a starving cougar can be immediately dealt with, while building a house for a person who has the needed information can take many steps to complete.

I think introducing threats as a way to deal with the “obstacle” is an interesting option. However, it still doesn’t deal with the need to describe chains of actions. That’ll need to be next, but will require a lot of experimentation to get all the necessary options to create choices.