Tag Archives: branching narrative

Working on Samples

Over the last month or so, I’ve had a couple of different people ask me for game writing samples.  I directed them to my main website, shaunakosoris.com, so they could see what I had readily available.  Unfortunately in both cases, my available samples did not meet their needs (one person requested samples with romantic dialogue, while the other was looking for non-fantasy samples). Currently on my website, I have three samples: two are character biographies that were developed for different games, and the other is made up of actual scenes from a game (mainly dialogue with a bit of branching narrative).

I have written a couple of pieces over the years that I think would have better met what these people were looking for. Unfortunately I am unable to showcase them as samples.  So I decided to set to work remedying this.  Two nights ago I went looking for writing prompts to use as a starting point.  I was specifically looking for more of a real-world idea, but ended up finding a fun romantic dialogue prompt instead.  I was going to write the sample in Chat Mapper, with the intention of exporting it as a .rtf (I was really hoping to see what the output would look like with branching dialogue).  Unfortunately I don’t currently have access to that capability, so I had to use a different program instead.  Last night I played around with TyranoBuilder a bit, thinking I could build it there, but I don’t think there’s a way to export the dialogue (and I wasn’t planning on writing an entire Visual Novel, although that might be something to try in the future).  So I ended up writing the first draft of the sample in Word. I had a lot of fun writing it (it’s currently over 900 words!) I’m hoping to get it edited and up on the site over the weekend. 🙂

Leave a comment

Filed under Game Development, Tools, Writing

How Branching Narrative is Useful Outside of Game Design – Building a Chatbot

While I was at work the other day, I came across a post by the Social Media Examiner titled “How to Create a Facebook messenger Chatbot.”  After explaining some basics on what a chatbot is and how it can benefit your business, Social Media Examiner gives some basic definitions and jumps right into how to build one with Chatfuel.  This was the picture that very specifically caught my attention:

Picture of chatbot block made of the card and button.

This image is linked from Social Media Examiner’s original post. Their caption: “This is a visual representation of the placement of blocks, cards, and buttons in a chatbot.”

My immediate reaction upon seeing this picture was: “This is branching narrative!”

Don’t believe me?  Check out this example from the Storynexus Reference Guide:

An example of a Storynexus Storylet.

Storylet example that appears in the Storynexus Reference Guide

Out of the bit of branching narrative programs I have worked with, I have arguably the most experience with Storynexus; that’s why I immediately saw the parallel between it and Chatfuel.  Under the root Storylet, the branch happens, and then you program in whatever result(s) you want.  Storynexus is a little more complex, but you can still see how it has the card and button block structure.

Here’s one more example.  This is a Chat Mapper piece I put together for Apocalypse Madness back in January 2015 called “Village Woes“:

Chat Mapper output showing Village Woes

Chat Mapper output for Village Woes

Once again, you can see how it’s got the basic card/button structure (particularly at the beginning of this story, where it has the initial split in choices).

So after I had the realization that a Chatfuel chatbot is created very much like branching narrative, my next thought was “I can make one!”

And so I did!  I got permission from CILU’s Station Manager to build one for CILU’s Facebook page.

It took me about five hours to build the menu system of the chatbot, which is its basic backbone.

Block structure of the CILU chatbot.

As you can see on the left side of that picture, the bot starts out with two built-in blocks (the welcome message and the default answer).  Then you can make however many blocks you want (my current bot has 34 plus the two built-in ones).  On the right side, I’ve got the block titled “Main Menu” open as an example.  I made the card a text card (all of my bot’s cards are currently text cards) and gave it three buttons that link it to other blocks.  I wanted to have five buttons at the bottom of this menu, but Chatfuel limits you at three buttons per card.

Once that was done, I asked friends and family members to test the bot so I can refine its AI.  The AI is the one thing that branching narrative from Storynexus and Chat Mapper did not prepare me for.  But that’s okay – Chatfuel has a really easy to use interface.

AI Set up for CILU bot on Chatfuel

You click on the big red button (on the left side of the picture) to add an AI Rule.  Then you get to tell the bot what to reply with (either text or one of the blocks you’ve already programmed) when the user says something to it.  So in this example, if the user asks what’s on the air right now, I’ve got the bot set to reply with text linking the user to the CILU schedule (and also reminding them how they can listen to the station).

The AI has been quite fascinating to build.  I programmed in phrases that I thought people would say, and have been adding more and more as people have tested it.  For example, someone asked to “speak” with our station manager, but I hadn’t programmed it to recognize that command (if they had asked to “contact” the station manager, the chatbot would have been fine).  So after that interaction, I went back into Chatfuel and added more phrases to better connect people with the information they’re looking for.

Another example was the simple act of greeting people.  When I originally asked people to test the chatbot, I hadn’t thought about getting it to say things like hello or goodbye.  But now it can!

What’s really neat about the whole thing is how the chatbot has evolved over the last week.  When I first asked people to test it, the chatbot was a very rigid menu system that you click through to get to the information you wanted.  After a few days of refining, the menu system is there if you need it (which the default answer is quick to remind you of), but the chatbot is able to get you the information you want by just chatting – no menu required!

Of course it’s still in need of refinement, since it failed with its first real customer.  But the more people who test it by asking it things, the better I’ll be able to program it.  If you’re interested in testing it, or just want to see the chatbot in action, you can access it through this link (but you’ll need Facebook Messenger), or by contacting the station on the CILU Facebook page.  And feel free to leave me any comments or feedback – it’ll help me with refining the bot!  🙂

Leave a comment

Filed under Game Development, Tools, Updates, Writing