Editing a ChoiceScript Game

The interactive fiction community is a wonderful, welcoming space. It is common practice to share a book (aka a game) with other people before officially publishing it. Those first readers spot all manner of errors and are extremely generous and helpful.

But with THE FLOATING CITY, I needed a Sensitivity Reader to check I wasn’t unwittingly writing harmful tropes into my characters who are disabled. So that meant hiring someone from outside the community. I wrote this quick and dirty guide to coping with the weird-looking files that magically turn into shiny happy games… because if you’re SERIOUS about editing, you need to go ‘backstage’ and read every single word.

Without further ado….

Screen Shot 2019-08-14 at 10.44.19 PM

A quick guide to editing/understanding the game files.
Each reader choice looks a little like this:
You are a person.
*choice
     #This is a choice, eg. Walk left.
     #This is a different choice, eg. Walk right.
This is the same choice, slightly expanded:
You are a person.
*choice
     #This is a choice, eg. Walk left.
          Oh no! You walk into the jaws of a monster and are covered in slime.
          *goto next_bit
     #This is a different choice, eg. Walk right.
          Yay! You find a pile of treasure.
*label next_bit
Well, that was interesting.
Now the reader gets a different line of text depending on which choice they made. The *goto and *label commands bottleneck the reader’s experience, so that everyone would read, “Well, that was interesting.”
This is the same choice, but with a way for the game to remember a piece of basic information for later. Don’t stress about numbers; they’re just a method of record keeping.
You are a person.
*choice
     #This is a choice, eg. Walk left.
          *set happy %-10
          Oh no! You walk into the jaws of a monster and are covered in slime.
          *goto next_bit
     #This is a different choice, eg. Walk right.
          *set happy %+10
          Yay! You find a pile of treasure.
*label next_bit
Well, that was interesting.
*if happy > 5
     You feel happy.
     *goto next_next_bit
*else
     You feel unhappy.
*label next_next_bit
The orange part is a ‘test’. It can happen at any point in the game. Here, all it does is comment in the text. In later chapters, it might make the character succeed or fail at something.
 
In this example, one player would read:
“Oh no! You walk into the jaws of a monster and are covered in slime. Well, that was interesting. You feel unhappy.”
 
The other player would read:
“Yay! You find a pile of treasure. Well, that was interesting. You feel happy.”
With me so far? It is possible to have choices nested within choices (the number of indentations helps you track what set goes with what), and it’s also possible to have subroutines, which are just a section of text that can be located anywhere else in the same chapter, which work like this (using *gosub, *label, and *return):
You see a mountain.
*choice
     #Ugh. I hate mountains.
          *set happy %-10
          *gosub description
          *goto nexty_bit
     #Yay. I love mountains.
          *set happy %+10
          *gosub description
          *goto nexty_bit
*label description
The mountain is super tall, with trees on it.
*return
*label nexty_bit
You start walking up the mountain.
One player would choose to read: “You see a mountain. Ugh I hate mountains. The mountain is super tall, with trees on it. You start walking up the mountain.”
 
The other would read (including the choice they made): “You see a mountain. Yay. I love mountains. The mountain is super tall, with trees on it. You start walking up the mountain.”
 
If something is written after *comment, it is not visible to the reader. Usually it’s notes to myself for when I’m editing.

Published by Felicity Banks

I write books (mainly adventure fantasy for kids and young adults), real-time twittertales, and a blog of Daily Awesomeness. @Louise_Curtis_ and http://twittertales.wordpress.com. My fantasy ebook is on sale at https://www.smashwords.com/books/view/278981.

Leave a Reply

%d bloggers like this: