WIP ChoiceScript Interactive Tutorial (in Twine)


I’ve been wanting to make a ChoiceScript interactive tutorial that expands on the home system, and so I started tinkering with making one in Twine, and I thought I’d show it to people while it’s in a rough stage to see what people think about it before I fully dive in. I love organizing things, and this system has been percolating in my head for some time now.

Interactive Tutorial

The plan is to have both a guided tutorial as well an index of all commands.

Each command has example sets of (1)Basic variations, (2)Fancy [rarely used] variations, and (3)Game-breaking bugs common with those commands. [See the *fake_choice example]

I also took some liberties naming things, so curious how that reads or if it’s just confusing. [See the Visualizing ChoiceScrip page]

I know that other people ( @fantom ) have taken some stabs at these sorts of things in the past, so this isn’t wholly a new suggestion, but I’m curious:

  • What do people think of this interactive approach?
  • What do you think of the 3 categories, of the different forms of navigaiton, of the command groups and lists?
  • Should the tutorial show the different variations, or just the extremely basic version?

(And if anyone has Twine experience and wants to review my code to suggest better code, I’d appreciate that too. Right now it’s all functional, but somewhat unwieldy.)

Dropbox Twine Code

I’ll be prioritizing finishing up my actual ChoiceScript game The Sea Eternal, and mostly doing this on the weekends, but I thought I’d get feedback started so I can start processing it all.


I’m liking it, though wondering whether writing it in CS would be a more natural way of showing what CS can do.

I also think that while the basic “branches flipped on its side” illustration is helpful as a way of visualizing indentation, at some point you ought to bring in an explanation of delayed branching, as that’s one of the things that differentiates CoG stories from more limited choose-a-path stories like the basic illustration. Cf these blog posts and their links:


Oh yeah, you’re totally right! I’ll include a section on large game structures. Thanks for pointing that out.

As for Twine vs. CS, Believe me, I’d rather do it in CS, but Twine lets me pull the camera back. It’s kinda like using a Powerpoint.


Hi! This is actually really helpful especially for someone like me who’s very interested in trying out the ChoiceScript coding and creating their own game, but can’t make heads or tails of the coding and is still struggling with the tutorials. What you’re doing here is very helpful, even just by the few parts you’ve got up already, I understand a lot more than I ever have! I wish you good luck with this project, because it’s a really good idea and is very helpful.


The problem is showing code in CS; there’s currently no good way to show code or, in particular, show indentations in CS. So, it’s not ideal for making a tutorial for itself.


This is great, Lynnea! Thank you!


Aw, thanks! Hopefully finished product turns out good.


Made some progress on the program! There’s several more examples (*choice, *goto, *page_break, *set, *if, *else, *elseif, etc.) and some of the formatting is moving towards being cleaned up. Also fixed a few bugs here and there. I’ve updated the page.

Anyone have thoughts about things they’d like to see changed, or definitely included? Anything confusing or clunky?


Made a lot of progress… The tutorial finally looks like a real program!

I’ve added several pictures, filled out almost all of the commands, cleaned existing content, and tidied the formatting. Still have to fill in info for testing, stat pages, along with a few other bits and bobs, but before I do that, I could use your help!

Filling out the sections for Testing is going to be tricky, because it involves finding all sorts of error messages and bugs, but I figure the forum has plenty of those, so I’ll be combing through the forums in the next few days, but if you’ve had especially annoying bugs pop up for you, let me know so I can capture them and save future people the pain. Thanks!

And because I’m a sucker for screenshot progress, I took one: