Allow me to introduce the project I've been working on for the past month. The Interactive Storybook is an editor/reader for gamebooks, CYOAs, and other forms of interactive literature. It's ridiculously simple to make a CYOA with it, and with a little scripting know-how, you can accomplish pretty much anything. Want to make a text-and-images version of Final Fantasy? You're crazy, but you can do that.
The project is officially in Open Beta as of this post, which means that it seems to work but I'm sure there are bugs. I'm fairly confident in the basic CYOA functionality, but I haven't done too much scripting. You can see how the reader works in the one sample book I've published, which does have a little scripting: after you die six times, the text in the intro changes slightly.
Code: Select all
intro = "What do you do?";
times = times + 1;
if (times > 5) {
intro = "This all feels really familiar somehow.";
}
The boring backstory
I was toying with the idea of doing a text adventure game for the Littlest Game contest. I had a bit of an idea in mind, but nothing too concrete; what I did have, though, was a little too complicated to pull off with tags and menus, and I was reluctant to write a script that would inevitably boil down to an enormous switch statement.
But I liked the concept, so I began to toy with the idea of writing the game in PHP. It wouldn't solve everything, but I figured it would simplify a lot of things, not least the textbox limitations I'd have to work under. Again, though, I was running into the same issue. Either I'd have to do a ton of one-offs or I'd have to write some sort of engine to simplify things. But a simple text engine wouldn't really cut it; I'd need a scripting language to really make it work.
Christmas came, and by coincidence, my wife gave me 999: Nine Persons, Nine Hours, Nine Doors, a visual novel for the DS that had been on my list for a few years. It was the only console game I got this year, so I ended up playing a lot of it.
It was captivating, but not only that, it fed into what I was already doing: the more I played it, the more I wanted to work on the engine. At this point, I'd already written specifications for the scripting language and a parser/interpreter. (Compiler stuff is like crack to computer science geeks; that was the quick part.)
It took only a few weeks from that point to get this project to a working state. I hope you enjoy using it as much as I've enjoyed making it, and I look forward to seeing what you write!
Here's that link again