Choice-based games with high player agency?

You might enjoy LUNIUM from the last IFComp, which is basically a Twine escape room. Parser engines tend to have a lot of built-in assumptions about what world model you want, so 90% of Inform games will have the world basically function in the same way; choice engines tend to, well, not. So 90% of Twine games will either have no consistent world model, or have one custom-designed for their specific purposes.

When writing Loose Ends, a lot of the fun was designing that world model, figuring out what we wanted to model and what we didn’t. Your “character sheet” is mapped out in the opening scene, setting a handful of global variables about your past. There are seven main NPCs whose impression of you is tracked, going up and down based on your choices. There’s an inventory of items that can be collected and given to people to change those impressions. Certain scenes advance time when completed, and after you start one, you’re not allowed to start another one until you finish the first.

It’s actually a really fascinating design challenge, since Ink doesn’t have any of that built in; from the ground up, we had to decide how exactly our world model should function and what was important and what wasn’t.

(I doubt anything I say will persuade OP if the comments from far-more-experienced choice-based writers haven’t, but I’ve found the discussion in this thread fascinating overall.)


I adore how both Dialog and Ink are documented. Both of them are designed from the ground up for simplicity and elegance, and they both have documentation that covers the language thoroughly without getting overwhelming. (By which I mean Writing with Ink and The Dialog Manual.)

Inform’s elaborate and example-filled documentation was what drew me to it back in the day, but it’s also absolutely enormous, and I don’t think I’d recommend that a newcomer to IF read it all the way through now.


I was talking about story chunks being in sub-graphs, like node rooms/areas in a location zone for exploration type games or page/paragraph nodes for chapters in more traditional story IF. I’m not really a fan of the drag-and-drop code flow paradigm, but if you can make that work visually and still be intuitive, I might become a fan. :wink:

What bugs me the most about Inform 7 is that it tries to use English to program, but it only understands limited set of English like having to write everything in the present (IIRC?) tense. I’d rather have a programming language or even something with a complete reference to learn everything. Maybe I should take a look at I6?

Yeah, Inform’s docs are just too big. I read through the whole Ink docs (even the advanced sections) and it was a nice read. I wish the engine integration was a bit more documented though.

Oh, so more like you have a Twine-like UI, but the nodes and connections have different meanings? What I was thinking about was more something like a graphical front-end for Ink, where you intertwine choice nodes, text nodes, variable nodes, etc. Could you elaborate further on your idea?

Edit: Depending on how long that explanation and following discussion is, it may be worth creating a separate thread, since it’s relatively off-topic for this one.


Yeah, this can definitely be a challenge for wrapping your head around Inform – I think @Draconis has said that the way to think about the natural language thing is that it’s less about letting the author just type anything they want, since as you say the syntax is quite constrained, but about maximizing readability once you’ve written the code and need to go back to update or debug it.

If you are looking for a parser system that hews closer to traditional programming languages, TADS might also be worth a look – my sense is that these days the primary case for I6 is that you can write retro-friendly, portable games with the PunyInform library, which may or may not be what you’re looking for.

(Edit: and FWIW there are a fair number of people who dislike I7, and have posted threads to that effect – IMO they tend to range from “fine” to “tire fire” dependent on how self-aware the poster is about over-generalizing from their own perspective or experiences :slight_smile: )


You tried Adventuron, right?
I’ve just stuck to that. Though I think PunyInform would work for you too?


That’s the wrong word. Keeping the spreads tidy. From what I remember there were cards that when they proc’d would suck in another card, and grouping them so you could observe a card grouping as a mechanical node was what I felt like I was doing. It wasn’t so much automated as it was keeping track of multiple things happening at once through organization. It was a horror game for people with organizational impulses.

Well, there is documentation, but it’s kind of spread out. There’s the cookbook/recipe book that seemed like a combined resource, but any time I’ve referred people to that, someone says “that’s out of date, don’t use that…” Twine is a bit like Borogove where you can pick different platforms in the same UI. The Twinery forum used to be the main hub but that went under. So at the moment we’re kind of a combined resource. If you’ve posted in the Twine forums here there are several devoted helpful SMEs and this community, but one of the things they harp on is what story format is this since they’re all so different.

Twine has kind of become a platform or operating system for Story Formats which all have their own conventions and coding parameters and abilities. You can even choose Snowman which by design does almost nothing so the author can build everything using all those fancy JavaScripts and CSSes and floating waterfall cascades…whatever the kids call them these days. :face_with_monocle:

I think you’re right. If you pigeonhole “Choice Games” as non-stat-tracking CYOA time cave flow, of course they’re all samey. The topic is choice-games with high agency and you’ve got dynamic fiction all the way through my example of Cultist Simulator which almost goes off the horizon of a choice narrative into a game that requires reflexes. Agency in choice games runs the gamut from “almost zero” to “Dwarf Fortress” and that’s great.

:100: - because Twine is accessible and Inform 7 is accessible there’s a lot of cruft. Nothing wrong with that - people gotta experiment to learn the tool.

Those are both games made by people with lots of experience who know what they’re doing, but I’d daresay my father’s long, long legs is a dynamic fiction with very little agency but people like it because it’s very well done.

I think some of the confusion is people get in a rut that “interactive fiction must have objects I can pick up and locks I can find keys for…” but choice narratives fundamentally tell stories a different way with different agency. Bee is essentially a series of short stories and anecdotes where light stat tracking affects which one you get next - if it’s winter you might get one of 5-6 peripherally related stories that involve snow and the holidays. But due to the calendar structure, these stories assemble in the player’s mind as a coherent narrative. The player might succeed or fail as the protagonist in the ending, but that’s less important than the narrative that coaslesces on the journey there. Failbettter used the phrase

'Fires in the Desert'

Metaphor time: imagine a desert, seen from above. There are many branching paths leading to many villages. When travellers cross the desert, you can clearly see the route they take, where they stop off, and so on. But what if night has fallen? Then, all you can see are the little fires in the villages. Occasionally, travellers emerge from the darkness and sit by the fires for a while, and then move on. But the routes they take between those fires belong to them alone.

All of which is a fancy way of saying that, while we control the actual chunks of the story, the paths between them belong to the player alone, and that’s a big deal. Just as in a film the story is told through the edit, in Echo Bazaar, the story is told through the darkened paths between the fires. In cinematic terms, it’s a montage: we provide the shots, the player does the arrangement.

Before I read a lot of Choice of Games I used to joking brush off the agency as “Play by Mail” - I send the protagonist a postcard and they might eventually consider my instruction in the course of the life they’re living on their own. But this is because those games by design assume a much higher plot and perspective viewpoint. In Zork I’m collecting the treasures in “real time” over what seems like a couple days. In a CoG, you might direct the protagonist over an entire lifetime as they grow up and then have this novel-length adventure that you participate in co-creating.


Is it?


…it’s kind of spread out except for the tireless and heroic efforts of some people to catalogue it in one place. :smiley:


I’ve never tried Ink so maybe I’m a little confused. Let’s back up. I thought you were describing a code construction system based on graph flow. Like drag the if condition here, run a for loop here, set a variable based on the condition here and have it all described visually in the graph. Something like Scratch with it’s Lego methodology. That is something I’m very hesitant to champion. However, having passage nodes with decision nodes that branch sounds fine.

If you look at Moiki, you’ll see where I’m coming from. However, I will say that the most accessible engines seem to promote one type of game presentation (Moiki is included in this). Choice of Games is very straight forward to code, but hard to break out of that exact mold if you want to do something just a little different. One decision that both those engines made is to have interactions/choices happen separately below the prose. More freedom for the author, probably means a coding environment, but who knows what a little ingenuity can do?

If you’ve used ChoiceScript, Ink is kind of like that with more superpower abilities. Inkle said they created it specifically to be easy to quickly write in, and so they could partner with an author who could learn its specialized trickery set pretty easily to contribute prose/content. Ink is less an IF system than it is a modular part to write complicated conversations that are then used in the context of a graphical interface as the world model - as Inkle’s larger games like 80 Days and Overboard.

You can use Ink on it’s own and that is provided for, but it purposely omits a specific world model that many IF coders are used to.


I think it’s hard to write, and it’s hard to program. At least, these things are challenging to me. So while I haven’t always felt this way, nowadays I try to recognize that people making games are doing something hard. That’s the main reason I don’t write negative reviews anymore (not that it isn’t fine for others!). I don’t know where people are in their IF journey, and I’d just rather focus on what I like.

& you know, I think it’s great that people are willing to put themselves out there, to be part of a community. Good or bad, whatever those words mean. I think IF is for everyone.

I found the documentation intimidating, for sure, and I don’t think I knew enough to understand a lot of the examples. I used Jim Aiken’s book and thread-searched here. I look at the docs all the time now, though.


It is, but one of the cool things is if you get through like chapter 3 (I think?) you can basically make simple rooms and objects and a world model if that’s all you want. The further you go, the more tricks you learn. What helped me the most was sitting down and reading the chapter and playing with the examples in each one. As I read further, it wasn’t necessary to read every bit of later chapters because it would describe a process and I would go “I don’t think I’ll use this feature in the game I want” or “This looks handy, but I can’t comprehend it now, bookmarking for future if I ever decide to use a table…” Even if you don’t read it, you can play the examples to get a working demo of what the chapter is about and what those tools do and whether you think you might eventually want to do that so you know in how much detail you should read and learn what’s taught in the chapter. Once you get a bit adjusted with the Inform “lingo” you can actually do doc searches in the manual and the recipe book and find most everything you need. And in that scenario, you’re probably off and running - and the chapters aren’t so long that you can’t take a break and go “okay, I need to use a table, let me read up on this part…”


Yeah I find the Inform documentation really helpful because the examples are basically full working code for things you might want to do, and it’s easy to copy them with slight modifications and make them work in your game. You don’t have to figure out a thousand permutations for how to begin a scene, you can look at the enclosed docs and find “Afternoon begins when Morning ends” and know the syntax.

You’re also not expected to sit down and read the entire documentation wholesale: just the basics and then any extra stuff you might want. Not to mention there’s a wealth of organized, freely available source code spanning decades of games. Anything I got stuck on, I’d just look for references on how it was done, pay attention to little details with the formatting and syntax, then get it to work. I will admit there’s a few things I’m still confused on, but it’s very possible for me to make an interactive, fully playable game from beginning to end.


The chapters are genuinely not as long as they seem. Especially since their are main chapters and sub-chapters you can drill down out of order once you get the gist and find the parts you want to use. “Oh yeah, I want to figure in Time of Day for my game so I need to read that.” Once I got started I was like “what other cool tricks can I make this thing do?” I’m also a natural skimmer/speed reader so I might have an advantage that I don’t have to read every bit to find the parts important to me.


That sounds like a good experience to have! :joy_cat:

The docs did help me make rooms and bits of furniture, but I personally had a hard time hunting down things in the docs. Then, not now. I use them all the time these days! I think one serious problem was that I didn’t know what I didn’t know, if that makes sense. Jim’s manual was much more accessible to me, and I consulted it often. But that may just be down to personal idiosyncrasies.

Or perhaps it’s just that I didn’t know anything about programming or game design! In any case, it’s good that beginners have options.


3 posts were split to a new topic

Right, it’s interesting how the official Inform documentation and the official Twine documentation for the major story formats have almost exactly opposite strengths and weaknesses.

Inform’s documentation is great at giving tons of fully-worked examples for things you might want to do. But it’s absolutely maddeningly useless if you’re looking for reference documentation on “how does this command actually work? What are the permissible variations in how I can write it?” You basically have to just ask on the forums or try to dig through the source code of the Standard Rules.

Whereas, say, Harlowe and SugarCube’s official documentation is the other way around: it’s all reference documentation, all very clearly laid out …but if you’re looking for worked examples of “how do I do X?” then similarly, there isn’t really anything there you’re going to have to look for other people’s documentation work or ask on the forums.

Ideally, of course, all the tools would have all the flavors of documentation, but volunteer-made open-source tools, you get what people have volunteered their time to make. And hopefully you choose the tools/docs that match your working style.


Indeed! I’m planning to do a history of the rise of Twine within the IF community and the subsequent pushback and fallout.


lol, why does this convo feels like deja vu… :thinking:

Right, but I feel in the way you describe it, Inform is more of a Guide to show what you can do in the way it explains stuff. While the Twine formats are more of an actual Documentation (like you’d see in other “proper” coding languages) because of the way it references the information. (I think Chapbook is more in the middle?).

(adding this picture which you had shared somewhere else)

I’d say both Inform and Twine documentation is on the right side, Inform being at the top right and SugarCube/Harlowe in the bottom right.

Tutorials being found in the many Video series that our lovely community have created in their free time for free and available to all.

(and the explanation being the Forum, when people actually create posts to ask their questions!)