Just when did we stop making tutorials? It was now, but that doesn't mean to say we cannot make articles on our new creation!

Story Creator will go from the tutorial-like posts to simple information relating to the progress of this little beauty.

Like StoryDev was on the now deceased Twinspire Framework website, Story Creator expands on the original idea by adding more features, generalised feature sets and tools focused on story creation.

Ultimately, I would like to offer an open source solution that allows you to make any story-focused game, regardless of the genre. Be it an interactive story, role-playing game, visual novel, or any potential combination of the three, there will be options for many things.

Naturally, this is written in C#, as you may have guessed from previous tutorials. But what you may not know is that with C#, we can do some wonderful things regarding linkage to DLL files. This means that expanding the editor using DLL files could be endless.

Now that Story Creator has been properly introduced, let's delve into the details.

Story Progression

Like in any story-based game, you have some form of progression. In RPG Maker, you have the ability to progress your story using variables and switches. This, however, is not ideal.

The primary issue with this approach is that you need to remember the variables and switches you set and make sure events, cutscenes and other story events do not overlap, repeat or cause bugs. I used RPG Maker for a while and despite the money I poured into it, expecting to make a fully fledged role-playing game, unfortunately this is one of the features I cannot bear. It means extensive testing, perhaps more than you would need to.

There is no way to simulate forward either, so one of the primary functions of this editor will be to simulate forwards to a specific event in time. As story progression is detailed in the below image, you can imagine how powerful this could be.

But, nothing seems to be happening here, so let's create a new chapter.

When we click on "New Chapter", we get a popup allowing us to enter the name of the new chapter we wish to make. When we click "Create", we get the following screen.

Here, we have five options:

  • Conversation - We click this to create a conversation which, unless an event triggers it or "Auto-Start Branch" is true, will not be started automatically. Conversations will be similarly designed like it was in the original editor, with a few minor tweaks.
  • Event - This is effectively a what-you-see-is-what-you-get (WYSIWYG) interface allowing you to build callable functions throughout the game. In all likelihood, we will expand this to allow foreign C# code to be called from DLL files, which can subsequently link to other DLL files written in other languages. You can imagine how powerful this could be.
  • Notify - I expect to implement a Notification system within the core engine, meaning that you can specify notification for a simple message, to interactive notifications that demonstrates progress or achievements. This would likely be useful when displaying tutorials to players.
  • Discover - This does exactly what Notify does, but also acts like an event in that its contents will be executed and stop after the fact. Discover would also allow for the ability to continue execution if needed, or add more events triggered by user input.
  • New Branch - This simply allows for the connection of an existing or new branch. What this means is that you can further divide your story through more categories, and allowing for a bit more organisation, particularly for larger projects.

So, what does "Auto-Start Branch" do? Well, you guessed it, it automatically starts executing what exists within the branch, until a time when an Event or Discovery pauses execution of the story.

You're probably also wondering why the "Name" space is blank, didn't we already enter the name for the chapter? Actually, this name field is actually the name of the Branch. Chapters will create folders in your project directory, so to perform any name change would mean moving files from one folder to another and deleting the previously named folder.

The reason to use this approach is primarily for performance. Although memory these days is quite reasonable, loading potentially megabytes of text data is really not that ideal, especially if it requires parsing from, say, JSON. Maybe I am pessimistic regarding computer performance, but I prefer to be paranoid than over-confident.

Creating Items within Branches

So, here we have an item within the branch. How exciting.

This item would reference the subject relationship, which, in this case, is a conversation. You can change the type of this item to be any of the aforementioned types.

From here, we would be able to create a new conversation or browse for an existing one.

Is that it?

For now, this is all we have. Technically, I am also working on my own novel, so unless I have a flow going on with my novel, Story Creator is my go-to for filler, at least until a creative writing flow returns.

What can I say, being busy is more enjoyable than bored! Now you know why this website is being updated daily.

For now, see you on the next round of blogging-ness.