I’m Edwin McRae, Narrative Designer and Gamebook Creator, and this is Tutorial Two in my…

Ink Script Tutorial Series

In Tutorial One we got you rolling on a simple little Q&A script using the Asterix [ * ] to tell Inky you’re offering up options for the reader to click on. But it was a bit of a ‘one hit wonder’, right? Select “Tax Accountant”, get “A truly noble occupation that has saved many lives!”, and then End of Story.

Well, let’s make amends. Let’s engineer our Ink story so that the reader can try out ALL of the options, one after the other, in any order they desire.

To do that, we need to introduce you to KNOTS and DIVERTS.

This is a KNOT.

=== Knotty_Knot_Knot ===

Now, I think they get called Knots because they tie up your narrative thread? Honestly, I don’t know. I would’ve called them Bookmarks or Pages or even something kinda boring like...Sections. Because that’s what they are. They’re a place that your reader can ‘turn to’, like in a Choose Your Own Adventure book.

To kiss the frog, turn to 77.

To run, screaming, into the night, turn to 13.

And the ‘turn to’ function looks like this.

-> Knotty_Knot_Knot

That’s called a Divert. And my my, isn't it diverting! Knot really. Now let’s pop this stuff into Inky and see what happens. Copy this combo...

-> Knotty_Knot_Knot

=== Knotty_Knot_Knot ===

...and then paste it in above your Tutorial One script so that the results look like this. Or you can just copy and paste all of the below into a new Inky file.

 

-> Knotty_Knot_Knot

=== Knotty_Knot_Knot ===

What did you want to be when you grew up?

* Astronaut.

To infinity and beyond!

-> END

* Teacher.

Building our bright future, brain by brain.

-> END

* World Leader.

Just as long as you're doing it for us, not you.

-> END

* Tax Accountant.

A truly noble occupation that has saved many lives!

-> END

* None of the above.

Good on you. Forge your own path!

-> END

Don’t play this yet though! It won’t work because of all the Diverts we have going to END. First, we need to replace most of these current Diverts with -> Knotty_Knot_Knot. Leave the very last -> END in place so that we get a nice, tidy finish to our Ink story.

So now your Ink story should look like this.

 

-> Knotty_Knot_Knot

=== Knotty_Knot_Knot ===

What did you want to be when you grew up?

* Astronaut.

To infinity and beyond!

-> Knotty_Knot_Knot

* Teacher.

Building our bright future, brain by brain.

-> Knotty_Knot_Knot

* World Leader.

Just as long as you're doing it for us, not you.

-> Knotty_Knot_Knot

* Tax Accountant.

A truly noble occupation that has saved many lives!

-> Knotty_Knot_Knot

* None of the above.

Good on you. Forge your own path!

-> END

 

Excellent! Happy to see we’re on the same page, or in this case, the same Knot.

Notice also, that as you select each option, it disappears from the list? That’s because the Asterix * is a one-click-only symbol. It tells Inky to eliminate that option once it’s been clicked. If you want those options to stick around you can simply swap the Asterix * for a Plus +. The + makes the option ‘sticky’ or permanent.

Warning! Inky can sometimes freeze up when you swap these option symbols around. I have no idea why. Just save your work first!

 

-> Knotty_Knot_Knot

=== Knotty_Knot_Knot ===

What did you want to be when you grew up?

+ Astronaut.

To infinity and beyond!

-> Knotty_Knot_Knot

+ Teacher.

Building our bright future, brain by brain.

-> Knotty_Knot_Knot

+ World Leader.

Just as long as you're doing it for us, not you.

-> Knotty_Knot_Knot

+ Tax Accountant.

A truly noble occupation that has saved many lives!

-> Knotty_Knot_Knot

+ None of the above.

Good on you. Forge your own path!

-> END

 

Now your reader can keep on clicking those options, as many times as they fancy, until they eventually click on None of the above which abruptly brings the whole affair to a grinding halt.

Btw, since you’re doing so spiffingly, let’s add a bonus feature in, to make our Ink story look even more slick.

You see how Astronaut and Teacher show up on the screen after they’ve been selected? Looks a little odd, doesn’t it? No problem, we can do something to smooth out the flow. We can Suppress text by putting square brackets around it. [Sigh] ‘Suppress’ is such a programmer term. From now on I’m going to say ‘Hide’ instead of ‘Suppress’, but they mean one and the same thing. So let’s hide our option text by squaring them away with square brackets. Notice too that I’ve added some extra text into each answer that reminds the reader of what they’ve chosen in a more natural way.

 

-> Knotty_Knot_Knot

=== Knotty_Knot_Knot ===

What did you want to be when you grew up?

+ [Astronaut.]

An astronaut? To infinity and beyond!

-> Knotty_Knot_Knot

+ [Teacher.]

A teacher, building our bright future, brain by brain.

-> Knotty_Knot_Knot

+ [World Leader.]

A World Leader? Just as long as you're doing it for us, not you.

-> Knotty_Knot_Knot

+ [Tax Accountant.]

Tax Accountant, now that’s a truly noble occupation that has saved many lives!

-> Knotty_Knot_Knot

+ [None of the above.]

None of the above? Good on you. Forge your own path!

-> END

 

Here's what my screen looks like, so you can compare and contract, just in case. Note that I've changed the Plusses back to Asterix in this version.

Loverly jubberly! That about does it for Tutorial Two, although it might pay to do a quick recap before we go.

 

-> Divert sends your reader to a Knot, which is pretty much programmer-speak for a Page.

=== Three equals signs, what shows Inky that it’s looking at a Knot.

=== Knotty_Knot_Knot === is what a complete Knot looks like, name and all.

And the Divert for that Knot should look like this -> Knotty_Knot_Knot.

+ Can be used instead of an * to let Inky know that it’s looking at an option and that this option wants to stick around rather than being eliminated after selection.

[Tax Accountant] Lastly, square brackets can be used to Suppress, or rather, hide option text that you don’t want the reader to see after they’ve selected that option.

 

Okay...toodles for now, and we’ll see you for Tutorial Three where I’ll show you how to create Options within Options within Options!