Main Page » Blog-Like Typing Detected »

2012/07/27: Looking for gamebook/CYOA stuff


Always use secure-HTTP / Unsecure HTTP / Permanent Link

So I've kind of been looking for a good Choose-Your-Own-Adventure/gamebook engine. I've got a couple of different ideas for things I could do with this concept. All of them go well and beyond what you could have done in any print books; I want to have programmed variability, I want to have inventory items, I want to be able to change what text and choices you have on a given page! Once again, though, I have a lot of options, but none of them fully work for me.

The Adventure Book extension for Inform 71 is lovely: you get variables which determine what choices appear on a given page, an inventory system you can use for "hidden" choices by typing in an inventory item's name, and you also get more or less the full features of Inform 7's programmable awesomeness ... except that when you load a saved game in Inform, it replies "OK." and leaves it at that. (This is a problem with Inform itself, not the Adventure Book.) No opportunity to display the current situation and list of choices, no "after loading the game, Look", it doesn't even clear the screen. Which is a terrible idea, although to be fair to Inform, it's pretty much the only terrible thing about it that I can see.

At the other end of the scale, Twine/Twee and the Gamebook mode in Quest provide no options for variables or anything like that; "choices" are just links to other "pages", and they're ultimately no different from the sort of thing you can put in print books. The Gamebook Engine, meanwhile, has the fatal flaw that you don't get to decide what choices appear on a given page, nor is it very good at keeping track of variations on events in the story,2 and was also last updated in 2009.

I've poked at a few browser-based systems that run client-side on Javascript; the biggest problem is that in all the ones I've seen, there's precisely one save slot and it loads automatically, so that if you want to go back and try something different, you have to delete your save file and start over from the beginning. In particular, Inklewriter displays the whole story in the web page's source code, and Varytale requires Facebook just to get at the tools, so screw that. I'm also not interested in "engines" which require that you sign up for a specific website, and then the games are only available on that specific website. Also, most of these browser-based systems are restricted to using highly-visible links, so if you wanted to do something Adventure Book-esque like "hidden" options to use items from your inventory, or "enter a number between 1 and 10," or even varying which choices appear on a given page, tough luck.

Basically, I guess I want something which is more or less identical to "Adventure Book for Inform 7," except without the incredibly shitty way Inform handles restoring from a saved game. I also wouldn't mind other features like adding your own presentation/appearance/what-have-you like the browser-based ones do, and arcane magic like "scrolling up." I mean, I'm perfectly capable of programming my own system, in either C# or Java (possibly with help from Lua),3 it's just that I don't know if I'll be reinventing the wheel or not.

Wow, this turned into a wall of text. (This was originally just going to be a short post on Tumblr, but then I started qualifying the situation and saying what I'd found and discarded already.) I dunno, should I try to make my own CYOA engine if I was serious about this, or is there already something out there which would already work for my purposes? I'm probably going to end up doing the former regardless, but ...

1Inform is primarily intended for "go north; you cannot take ye flask"-style text adventures, but it's is also flexible as hell and supported on a wide variety of platforms.

2I played one of the adventures that came bundled with it, and I quit when I came across a choice which was literally "If you've read the note on the windowsill, press 1; if you haven't, press 2 ..."

3It has actually occurred to me that, with not too much effort, I could implement this in the Villainmad base-engine. But for something consisting mostly of text, it feels like that would be taking it in the wrong direction.

7 Comments (auto-closed) (rss feed)

John Evans

I suspect if you have something in Javascript, you could probably modify it to use multiple save slots without TOO much trouble...I mean, with less trouble than programming something entirely on your own.


I poked around on Google, and apparently, this will work with Glulx, and hopefully, more specifically with Quixe. I actually don't know if the low-level rooting-around is compatible with how it works, but it seems like it's worth a shot.


Have you looked at Ren'Py? It's a Python-based open-source visual novel engine which you could probably adapt to what you want to do. I haven't done anything with it, but my impression is that pretty easy to work with, and very, very customizable. Visual novels are pretty similar to CYOA, anyway, but people have made basic RPG systems in it.

Dizzy H. Muffin

/ Modified by Dizzy H. Muffin:

@MWChase: I'll look into that! I'm just good enough with Inform 6 code (and how Inform 7 works, for that matter) that I could probably reverse-engineer that for both. EDIT: Aaaand of course it works fine with a traditional Inform 7 adventure, but it fails in the Adventure Book, whee ... EDITEDIT: k, figured out what the deal is, but it still feels kind of ponderous.

@Karia: The thing is, if I'm subverting an existing graphics-based engine for text-only purposes, I might as well just do it to the one I personally made and am familiar with. :S

Random person of randmoness



Eh, I don't know if I'd call using Ren'Py for this type of game "subverting" it. Visual novels are a very text-focused genre to begin with. It looks to me like it could handle most of the stuff you mention without needing a lot of support code or other faffing around.

Dizzy H. Muffin

I suppose you're right. For that matter, I guess Adventure Book is doing the exact same thing to Inform 7, so I shouldn't have anything to complain about. ;)

Oh, I didn't know Christine Love's games were made with Ren'Py, now I'm doubly interested. I guess I'll be taking a look at Ren'Py, then!