Inklewriter Kindle limitations?

Inklewriter looks awesome and I’m thinking of trying it out. Regarding the ebook conversion limitations, the website states:

AFAIK, the conversion process works by making ‘pages’ for each conditional possibility, which is really clever. But if that’s the case, stating that the story can be any length is surely incorrect? Is there more accurate information available for the limit? I don’t like the idea of working on a large project and having to continually email back and forward to check if it’s too long. I’d rather start with an idea of how complex I should aim for than have to hack the project down at a later stage.

Thanks for reading!

Right. The software that converts inklewriter to Kindle (as I understand) essentially decompiles your story into an old-school paper CYOA where every choice has its own page in the story and these are traversed on the kindle with hyperlinks. The kindle can’t do any calculations, it can only send you to another page.

So essentially your story needs to be a river flowing downstream from beginning to end. It can branch and rejoin, but it cannot whirlpool backwards anywhere. You cannot have any sort of “hub” that the player returns to repeatedly, or a branch that represents a healing spell that heals the player and returns them. If you do any sort of looping in the story, you need to specify a finite number of times the reader can repeat the loop (by I guess hiding the repeat branch after a specified count). So if your player encounters a time machine that takes him back to the beginning, the second time he comes to the time machine, the story needs to do something like say “You remember this time machine, and you realize it will get you nowhere” and prevent the player from selecting it. This would ostensibly create two huge identical branches in the story that allow the player to do everything each time. If it looped repeatedly, the compiler won’t finish, and this wouldn’t be a very reasonable eBook.

I also think there can’t be variables, as the Kindle can’t keep track of them. So while making a kindle book is a really neat option, it is quite limited in that you need to almost write a “standard” branching story with very few modern tricks.

This is exactly right, though what follows isn’t quite – you can have loops so long as they’re (a) totally stateless (so no counters/flags get changed during the loop); or (b) finite - so there’s not a counter that goes up by 1 each time round the loop. Actually in practice, you can write infinite loops too, and the compiler simply stops generating them after 30 / 40 times round, on the [possibly flawed] assumption that no human will ever do that.

On the plus side, if your story basically always moves forwards, you can have as many conditionals / counters as you like and in practice you won’t blow any limits. Kindle books can be as several of thousand pages long without difficulty, and the compiler is extremely good at optimising out conditionals that you’ve set after they are no longer needed by the story (so, for instance, making a story which branches - sets a true/false - joins - branches - sets another true/false - joins, etc etc, will actually produce a very small book and not a bifurcated tree, because those true/falses are never actually tested so are all instantly thrown away. But adding a final paragraph which used conditional text to test each one in turn would turn that simple book into a tree).

So it’s breakable, but a lot of the ways to break it are hopefully not very interesting to write either. The only really practical way to break it that I’ve seen is if you want a hub with several ways the story can go, but where each branch can only be done once and has its own on/off flag. (So, say, if you have eight chapters that can be read in any order, and you return to the contents page after each chapter. That genuinely will produce 8! ~= 40,000 near-identical copies of the entire book.)

So, in short, if time keeps going forwards, it should work, and you can still track a lot of player action within that. For a complex example, see “The Intercept” demo ebook, which has fifty or so boolean flags.

Oh, and the number of words in your story is essentially irrelevant.


Thanks Jon! I didn’t realize you could set flags. Is it possible to set values…such as an amount of money or a number of points, can the Kindle keep track of these and display the amount in a paragraph? “You’ve collected {$money} dollars?”

Yup. Set a flag with a marker like “money = 10”, add/subtract with a marker like “money + 5”, test with “money > 9” and print inline with [number:money] or [value:money], the first giving in digits, the second in words.


Thanks for the info, both!