Choice-based games with high player agency?

I think teaming up more would be great: I’m not good at writing immersive stories, but I’m used to reason about the control flow paths in my programs.

And similar problems can occur in all kinds of games with enough player agency: e.g. in Bethesda games NPCs that are still used in current or future quests are marked invincible: You can kill them, but they resurrect after a while, so you’re not locked out of the quests.

For the toilet example, what I’d do is an allowlist/tag the items with “flushable”: You tag the silly items you want to be flushable in the bathroom, and it fails for any other objects. You can still have fun flushing your toothbrush away, but there’s no possibility to flush away anything important you haven’t intended.

3 Likes

And thus you’ve created a Nethack-style metagame element: FLUSH ALL, to find out which of your seemingly useless items are not red herrings, because you don’t actually care about the author’s attempts at humour (or their feelings, for that matter). You can only flush one at a time you say? Crime against mimesis! Uneven, lazy implementation!

1 Like

I have no words.

Funny enough, while it’s true that team-ups like this are uncommon in the IF space, the game I was thinking of when I wrote that comment actually is the product of an arts person/STEM person team! It’s just that sometimes you’re going to miss errors in your own work even when they’re exactly the kinds of errors you’re trained to catch, and at a certain point you just need more sets of eyes (hence my comment about the importance of playtesters).

6 Likes

It’s especially disappointing because in their old games, they’d just pop up a text box saying “the thread of prophecy has been severed, so you might want to restore a game if you want to be able to continue the main plot.” Which worked perfectly well!

I get that people messing around by killing non-aggressive NPCs is annoying, but turning them into those inflatable clowns that roll back up when you push them seems like a needlessly clumsy choice.

6 Likes

I always maintain that the only player you should make your game for is the player who will take it seriously. It’s impossible to make a game both for your intended target audience and for someone intending to troll it, so it’s not really worth your time/energy to fight against the latter. The trolls are always going to find ways to force you to make it a lesser experience for your target audience, which isn’t fair for your target audience. At minimum, you include designs for people who make mistakes, but if someone is metagaming, then they’ll wage war on you to keep metagaming.

14 Likes

I couldn’t bring myself to play any game older than Oblivion, so I only know the “dead person stands up again after a minute” way.

Be happy that you can even deal damage to non-hostile NPCs! Many 2D games just leave that out alltogether. You can hack and slash at the shopkeeper all you want and nothing happens. I personally was only annoyed with the resurrection once in Oblivion: The head of the guard in the main city is invincible like this, because there is a quest involving him later. The only problem is that the “just kill all guards so no one can arrest you” plan didn’t work because of that…

1 Like

In the Ultima games, it was an actual thing to try and kill Lord British.

https://wiki.ultimacodex.com/wiki/Killing_Lord_British

1 Like

These are choice-based games that are explicitly designed to break choice-based norms. The vast majority of them tend to be “do you want whipped cream on your hot chocolate, yes or no” with one word of dialogue changing in response. Trust me, I would love actual gameplay in my game, but these games feel so exceedingly rare.

Because it is possible to do regular CBGs that don’t need to throw in a thousand different things from better formats. It’s just that a lot of them completely miss the mark, due to a mix of Twine being the most recommended but hardest to learn, and authorship leaning more towards writers than game developers.

Hell, I’m a Twine author myself and I don’t know how to track a variable or let the user type in a word and output it later. It’s hard to make anything fun out of the basics, but when even learning the basics requires an hour of piecing together information from 8 years of scattered forum threads for every minor bit of implementation, it kind of explains why nobody wants to go through it.

1 Like

My first ever Twine (Harlowe) game, Hanna, We’re Going to School, was made in a one-week game jam. It tracks variables to check if people reached an ending because I realized it would be quite painful for players (especially in a jam context) to repeat the game to see the other endings. I let players skip the bulk of the text to reach the choices that matter and head straight back to new content.

My second Twine game, Their Time in This World, is also made in another weeklong jam and uses variables to create a pseudo-adventure game feel. You have to return items to their respective locations to read memories, so I wrote variables to see if players are 1) carrying items and 2) in the right location in order to 3) trigger a new variable that needs to increment in order to see the true ending.

Fast-forward a few months later: I made an Inform 7 game, Chinese Family Dinner Moment, using the variable tricks I’ve learned in Twine. I needed variables in order to do nested if then statements. If I didn’t toy with variables in Twine, I would’ve been lost and found it difficult to make a game just in time for the Single Choice Jam.

So yeah, not going to lie: I found this post rather irritating because it over-extrapolates from your experiences. I actually bothered looking around and learning how variables work. There are other people who probably feel similarly. It’s fine if you don’t mesh with Twine, but to suggest your experiences with the software allows you to speak for other people who could have different experiences is bizarre to me. We are not “nobody”.

14 Likes

Too true.

I used to do web work many moons ago and entering the world of Twine was still a learning curve. I like scripting, but I find there is too much of a disconnect between the story logic and browser behaviour with most IF web engines. However, I don’t think a scripting language is the best way for creative writing minds to approach choice-based fiction. I’ve seen a few (is this still a term that’s used?) WYSIWYG interactive fiction editors, but nothing quite robust enough with my limited exploration.

However, I just started looking into Moiki and it definitely has potential. If there are other non-coding IF engines (with HTML export) people here want to suggest, I’m all ears.

2 Likes

You just said that choice narratives don’t do lock puzzles and don’t do room exploitation. When shown examples you said these were exceptions to the rule. So there are choice games that break your preconceptions of what they can do.

With all due respect, “get good”. Because many authors are discovering that choice narratives don’t just have to be limited in the ways you describe.

If you don’t enjoy choice games that’s fine, but don’t misrepresent what they are and what they can be in the hands of talented creators.

18 Likes

What was your learning process…?

I learned Twine SugarCube and created Milliseconds of Romance in the same day with no prior Twine exposure, and the game uses variables. I used only Manon’s SugarCube guide as a learning resource, and only needed to get help with a CSS problem.

Granted, the game isn’t super complex, but I also only had the one day to make the game, so I had to keep the scope narrow. I feel like if I planned out something with more agency, I’d be able to smoothly execute it, just from what I had learned during that process.

I do understand that finding useful learning materials necessarily makes it difficult to pick up a new toolkit or programming language, but I think we both had very different results regarding what learning materials we each found.

Also, if the Twine tools themselves are causing too much friction, or are mechanically getting in the way of what you’re trying to achieve, then you can also DIY your own system with HTML, CSS, and JavaScript. That’s kinda what I’ve resorted to doing after experiencing too many tech stack issues with a lot of parser stuff.

There are a lot of paths forward! :sparkles:

EDIT: Curse these English contractions. Thank you to everyone who figured out that I did not mean to negate that.

7 Likes

Also, I’m sorry for double-replying (mobile interface is kinda awkward), but at a few points in this thread, it seems like you are trying to arbitrarily and unilaterally redefine what counts as a “true” choice-based game, but specifically so that no counterexamples could ever be valid.

Those are still choice-based games, though, even if they don’t align with what you commonly seem to be finding during your searches. Those are just your subjective data.

If someone created a choice-based game which had your desired degree of agency, then due to it’s rarity (according to your own described experiences) it likely would not qualify by your own definition of a choice-based game, either, which means you’ve posited a definition space where choice-based games as a medium are doomed to fail, which isn’t productive for anyone in this thread, including yourself.

I’m not sure what you are hoping for from this conversation at this point. :woman_shrugging: You can reshape the boundaries and move the goalposts, but that doesn’t change what is or isn’t a choice-based game. Your frustration doesn’t require you to have categorical truths in order to be allowed to feel it, either. You haven’t found a choice-based game which meets your expectations. That’s frustrating, sure, but you do not need to publicly make a claim that all choice-based games categorically fail to meet your expectations in order to justify your subjective experiences.

14 Likes

Perks up at the mention of IKEA. :sweat_smile:

Agree, and it seems true generally for interactive fiction and maybe all video games? The word grind has a negative connotation, but you can see it as a pretty raw form of putting in effort to make the payoff feel more earned. In Assembly a couple early testers suggested automating away the actual putting-together of things, but I felt that having some friction there was thematically important but also helped the pacing – the last scene or two in particular wouldn’t work at all without the player’s direct engagement with the nuts and bolts of the thing. (Which in retrospect still feels right, though I’m never sure about the details.)

As for the other thread of the conversation: I’ll note that both Spring Thing best-in-show winners this year are choice-based: one with a parser-like world model, the other with a deeply implemented political simulation, both from respected authors with a large back catalogue of similarly varied work. It’s hard to cook up a definition of mainstream choice IF that doesn’t fit this sort of thing in it…

12 Likes

If you want to turn the game part of choice narratives up to 11, you get something like Cultist Simulator.

It’s a card-game QBN, if you can imagine Fallen London on speed. You might have 100 cards in front of you at once, each representing a quality. There are active cards with visible timers (it’s literally Progress Bar: The Game in a good way) You end up in situations like going to an unpleasant area might cause a sickness; that’s a card that lays on the table with a circular progress bar dwindling away which you must reset by feeding it a medicine card every two or three minutes. If the countdown ever hits zero, it instead feeds on one of your health cards. And if you have none of those, you die. While this is all happening you might have to be researching a cure -

Honestly it’s really cool but I almost can’t play it as it twiddles my personal anxieties about being late and keeping things tidy and it becomes a terrifying plate-spin trying to get things automated so you can concentrate on actually not dropping dead in the middle of the sidewalk because an elder-god sucked your brain out while you’re investigating the plot.

7 Likes

The problem is that there is no real “Twine” to learn, what you actually have to learn is the story formats. Each one has a different way of doing things, and you have to find one that suits how you think.

I think those 2 are intertwined: Coming from a game developer perspective, Twine is really weird and has no accommodations for projects with more than a little bit of code. You can alleviate that with a Twee compiler and a proper IDE, but I feel at that point Twee just doesn’t offer very much, and doing things from scratch is the better way forward.

Hmm, but what exactly is a better model? Maybe something node-based like a graph? That would fit good in the Twine UI. I know Unreal engine has some kind of graph language you can use for scripting, to make it easier for non-coders

[quote=“Joey “Jess” Tanden, post:73, topic:68593, username:inventor200”]
I learned Twine SugarCube and created Milliseconds of Romance in the same day with no prior Twine exposure, and the game uses variables. I used only Manon’s SugarCube guide as a learning resource, and only needed to get help with a CSS problem.
[/quote]

There’s a guide? Lol. I guess I’m alone in the “read the documentation to learn something” camp?

Huh, I never thought of it that way, but you’re right.

I never properly finished it, at some point it just becomes too much to handle at once and I don’t have fun anymore. How can you automate things there btw?

[quote=“Joey “Jess” Tanden, post:73, topic:68593, username:inventor200”]
Also, if the Twine tools themselves are causing too much friction, or are mechanically getting in the way of what you’re trying to achieve, then you can also DIY your own system with HTML, CSS, and JavaScript. That’s kinda what I’ve resorted to doing after experiencing too many tech stack issues with a lot of parser stuff.
[/quote]

Oh yeah, me too! I thought about using the Snowman format instead of SugarCube, but at that point you may as well drop Twine alltogether IMO.

3 Likes

I started off by using Inform. I made one game with decent coding, but became concerned with copyright issues and scrapped it. My intended debut was meant to be Jimin, Ari, and Shush, which I published unfinished for IntroComp, and it has some decently complicated mechanics for a beginner game – which was part of why I felt I shouldn’t be doing it this early.

The first two Twines I did, I ended up making in about an hour each and didn’t use anything more complicated than just linking to passages. After that, I did Bradisson Rayburn’s Revenge! in just about three or four days, teaching myself how to use random number generation, keeping track of variables, handling scenes, check/carry out/report. The code examples were super helpful with this.

So when I was ready to make a bad Twine game for the Bad Games Jam, I quickly realized just how beginner unfriendly it is. Nothing tells you the difference between the five or six formats you can use, and documentation is almost nonexistent. Even the simplest things like “click a checkbox and make text show up” or “track the user’s input in a textbox and say it back” are just not listed anywhere, and I couldn’t find any good source code to reference nor answers on forum threads. It was way too much of a waste of time to make a joke game I wasn’t even proud of.

Prior to that, I had been intent on making another, longer Twine since around 2022, and I got 2k words or so in. It has basic variables, a bit of branching, but I realized I just hated using the program and would do anything to distract myself from having to work on it. I finally canceled it this week.

1 Like

The various story formats do have documentation.

Sugarcube

Harlowe

Chapbook

7 Likes

The Twine website has links for the documentation of the 4 included formats.

Because those are not elementary actions, you have to build them up from the base components yourself. SugarCube has the textbox macro that stores the typed text into a variable, but the checkbox macro has no support for code, so you’ll probably have to use a repeat macro to watch the value and use the replace macro to show and hide the text.

What exactly do you hate? IMO with few variables and little code Twine is still fine.

2 Likes