Best practices for puzzle design in Choice based IF

@pieartsy

I’m talking about the mechanics of it all. Choice-based games are more akin to multiple choice questions versus written response. The correct answer can be randomly selected in some cases. Randomly typing the correct command in a parser game is much, much less likely.

I don’t think the example puzzles are inherently childish. However, the original post talked about transitioning the discussion from parser game puzzles and asking about UI strategies for choice-based puzzles. Choice-based IF is not limited to clicking on hyperlinks so I explored more of that and why it might be beneficial.

There also seems to be people who are taking issue with the notion that by presenting the answers, it reduces the critical thinking required. And that progressing through a choice-based game without reading is possible. It’s easier to create puzzles that are less satisfying, I believe, with choice IF. I’m simply bringing up the mechanics at play and how that affects how you interact with the game. I’m not saying you can actually “play and enjoy” the game without reading it. It just means that an author has to be cognizant of these possibilities when they design puzzles. And before anyone takes offence to that, that doesn’t mean that people who author choice-based puzzles are doing it poorly or that players who enjoy choice IF are somehow less. I’m not talking about the quality of the genre or any particular game.

If you still disagree with what I’m saying, that’s fine, but I hope that clarifies things a bit.


Though most of your post was just taking a lot of issue with points I made, I won’t engage with this sentiment.

And just saying to others here, when a post is liked with this sort of opinion in it… well, I don’t think I need to explain that in any further detail.

3 Likes

Choice-based IF rewards different paths to critical thinking. For one thing, there’s nothing in parser IF that automatically rewards critical thinking either: it’s perfectly possible for a parser IF writer to hand answers on a plate to the player, especially if author and player share a bunch of assumptions about how the game world works. Critical thinking is very much to do with quality of writing, logic, structure and understanding of the information transfer process, none of which is specific to IF style. All changing the IF style does is to influence the manner in which the designs would work.

For that matter, the range of choice engines out there means it’s important to know what’s possible in one’s chosen tool - and how much one knows about exploiting them. (For example, Ren’Py is theoretically capable of executing much of Python’s abilities with the right add-ons, but hardly anyone who uses Ren’Py uses add-ons at all because they’re still grappling with out-of-the-box capabilities. This means authors in practise only have a subset of the engine’s full powers).

With that in mind, I will attempt some answers:

What makes a good puzzle in a choice based game?

Go with puzzles that make sense not only for the game/story one wishes to tell, but also for how the user will interact with the system. If choices are selected from menus, puzzles where the menu is part of the puzzle are a good idea. If one selects adjectives and then proceeds, puzzles where the adjective matters are good ones. If one has to pair words together, use matching puzzles. So on and so forth. Games with inventories, word variables, countable variables and type-in extension options each have their own affordances; if your engine has any of them and you want to use them in an IF, make sure at least one puzzle uses it and you have appropriate antepieces/tutorial guidance so that players don’t suddenly hit a road block halfway through your IF.

I cannot emphasise this enough - do not use a different interface for the puzzles than the rest of the game unless there’s a compelling within-IF reason for it. Choice players tend to bounce right off unmotivated interface switches, as it is considered as artificial as the Tower of Hanoi puzzle in Zork Zero.

It is perfectly possible to hide options in choice IF, if using an engine that allows conditional choice availability (most do). This is a good thing when attempting to prevent lawnmowering (which tends to make puzzles artificial). If a choice is only available when the player is likely to have come up with the answer, then knowing the logic (be that in IF-structural terms or the IF’s internal terms) is almost necessary in order to find it.

Hiding some options can also put a certain imposition onto critical thinking: if there is no guarantee that any of the immediately-presented options is “correct”, then one has to think about things more than if one knows one of the presented options must be correct.

Consider the possibility of having multiple correct answers, each of which changes the narrative (slightly or substantially). Also consider the possibility of having multiple motives when reaching a given screen (which would result in multiple options being correct, depending on which motive is in fact in play).

Playtesting is good for puzzles. Ask your playtesters “How do you think this should be solved?”, “When did you determine this?” and also “What is the reason you believe this to be the right answer?” (It is important to ask these with humility and in a way that conveys that their answer is likely to be valid, even if you have in fact envisaged a completely different answer). This will tell you where the insights are happening and thus where to put the relevant variables.

More another time.

14 Likes

As a mostly-parser-IF author recently branching into choice things, the biggest issue I’ve been running into is not incentivizing lawnmowering. It’s a rule of game design in general that a lot of players will do whatever you incentivize, even if it’s not fun. So if your design teaches players that they need to click every link on every page before moving on to avoid missing anything, they’re going to do that and then get annoyed at the game for making them do it.

I imagine experienced choice authors have come up with dozens of ways to avoid this already (or it’s obvious if you’re coming at this from a mainly-choice-IF perspective instead of a background in writing parsers), but that’s what I’m currently trying to internalize.

11 Likes

One thing almost all great choice-based puzzle games I’ve played have in common is quadratic complexity. That eliminates the issues @HAL9000 is talking about.

By quadratic complexity, I mean that you have two sets of options; for instance, you can hold two items in your hands, and you only get the solution right if you have both the right items. Or combining two clues in Erstwhile, or having an inventory where only one item is ‘active’ at any time.

Great examples of this are Lux, Open Sorcery, A Long Way to the Nearest Star, and Erstwhile.

Another way to make effective puzzles is delayed response. Choice of Games uses this this by having the effects of choices not show up until later on. So in Choice of Robots, choosing to invest in medical bots makes a huge difference when it turns out later your mom has cancer. But you can’t know that at the time.

Paintball Wizard technically has cubic complexity, (at one point even biquadratic) and I did find it pretty difficult.

11 Likes

I have so much to say being a person who started in parser and evolved to choice…but I’ve got to go to this dinner thing…it’s kind of required.

For now I will just drop this link. It’s a Wiki by Failbetter who have created what is probably the uber-choice narrative Fallen London. This document includes suggestions mainly angled for authors of the defunct Storynexus and QBN (quality-based narrative) which is a specific flavor of CYOA, but a lot of it is also their theories on how to create grind and choice narrative that is not just a linear flowchart.

Storychoices Wiki: http://wiki.failbettergames.com

I’ll be back.

13 Likes

Kind of unrelated, but there is a benefit to making parser-like experiences with choice-IF mechanics. Some people don’t like typing on mobile devices (or can’t type easily with desktop keyboards even) so merging the two genres could be beneficial from an accessibility point of view.

But, yes, traditional choice IF should not have to abandon its roots in order to facilitate a certain puzzle design.


This is an excellent mechanic. There are some potential pitfalls, but ultimately a solid one to build off of.

I’ve played a couple of games where you had to have a certain things held in your hands (or active), but it’s hard for the player to foresee the need to have certain combinations being active sometimes, is all. Just by having the two items active though, a solution presents itself in the choices available and you had no idea to even think that would have been an option. Then you lawnmower (I like that term – what I called brute force) through locations with every combination of items activated. To counteract this, I suppose an author could make certain combinations (or even one thing held/active) detrimental when going to a certain location or doing a thing. The unstable ordinance in Space Quest IV comes to mind.

I’m not arguing your point, just bringing up concerns about implementation.

Another thought about quadratic complexity (combination) puzzles are if you change the state of things in multiple locations. I can see this mechanic being very effective in disguising a puzzle and solution. An IF game probably exists where this was done.

I’ll give some of the recommended games a try soon though, but these are my initial concerns/thoughts about quadratic complexity from my limited experience.


Why did you say it like the Terminator? I’m going to leave the front desk of the police station now. :wink:

4 Likes

I ain’t a choice game expert but it seems to me that you can even do puzzles in choice games that are difficult to implement in parser games.

And I like the idea of “narrative puzzles”, puzzles that depend on the story/content.

12 Likes

Gruescript. Having a “held” object as well as an inventory of carried objects is an innovation Robin introduced to his games in Detectiveland (afaik) and was absent from Draculaland. It does make the puzzles feel more like puzzles since you’re less likely to stumble upon the answers by accident. Some people describe Gruescript style games as choice-based, but to me they feel more like parser games. The process of designing them is almost exactly the same, but playing them is very different.

6 Likes

A parser interface very roughly has quadratic complexity as well – you select a verb and a noun. I’ve always thought this was not a coincidence. But I certainly agree that there’s no exact analogy between the two and it’s foolish to pretend there is.

I would say that Myst and friends have a puzzle design approach which is very relevant to choice-based puzzle design. You very often have a small number of inputs (two levers and a button, say) and a large environment which responds to those inputs in complex ways. When I was working on puzzles in Seltani, which has a Twine-like interface, I found Myst-style puzzles easy to design and implement.

8 Likes

Ahahaaa… KABOOOM!

4 Likes

Most people have checkers accessible. If not, it can be improvised easily. Most chess players will have chess set somewhere already.

To this day, I still don’t understand why people buy Connect4 game, when it can be easily played as pen-and-paper game.

3 Likes

Hrrrmmm… I mean why should you make a parser? What’s wrong with choice-based games behaving like parsers? What’s so wrong with breaking the codes of either “types” of IF games? For fun, experiments, or just chaos… ya know?
The more people make weird things that maybe “shouldn’t work” or “shouldn’t be done”, the more we get to explore what’s just possible…

And maybe… it might just actually work?
And wouldn’t that be grand :slight_smile:

10 Likes

How much world modelling is required and what type?

How long is a piece of string?

It’s hard to pull off a puzzle with literally no world modelling, but if the game is structured so branches don’t connect, or only connect in circumstances where non-modelled elements need to be checked to establish if something happened (for example, if a choice can appear early or late in the work, the % completion may be checked, which isn’t in itself a world model), it is possible to do it with no world modelling whatsoever.

A Twine with puzzles and a hub whose appearance and affordances change according to puzzle state may need a small number of variables specifically for world modelling, recording the puzzle state of each puzzle.

On the other hand, it’s possible for choice IF to track hundreds of variables, if that serves the needs and desires of the author. If there’s a puzzle with 10 parts, each of which can have 5 things done to them (with perhaps 2 of them being mutually exclusive) and also have a default state, that puzzle is apt to end up with 40-50 variables all by itself. Choice IF with detailed crafting/cooking elements are at risk of this (it’s not just parser IF that is wary of detailed kitchens!). Fortunately, a simple kitchen that just has the moving parts that need to be there will generally be accepted by choice gamers - provided the writing, concerns of the game and the puzzle itself supports the version the game includes (choice players rarely express a desire to lick every surface if that doesn’t appear to be a concern of the specific game, so most games don’t need to track whether a kitchen surface has been licked, for example).

Which bits of world modelling are needed depends on the story puzzles and structure. If you can get one variable to do multiple jobs, you’ll probably thank yourself later. (Most ChoiceScript IF does this by way of the character tracker, which may or may not be shown to the player but will typically influence many choice points rather than just one or two. 80 Days tracks valeting skill, relationship with the boss and enthusiasm, all of which are referenced frequently. Budacanta has a spoons tracker, which goes up and down according to player health, and in turn influences responses to various actions that can be performed in many places).

However, if there are specific events or states that need to be referenced later (be that to determine if a particular method of solving a puzzle will work or to show/hide a later choice), these will absolutely need to be unique variables of world modelling, that are changed once and only subsequently referenced rather than changed again. If it’s going to matter whether that specific dinosaur ate your torch (as opposed to its running out of battery), log a variable, so when the player and dinosaur spot each other later, the IF can decide whether the dinosaur has indigestion and therefore doesn’t pursue the player. (This is especially important if you wish to reward multiple methods of solving a puzzle. If the player instead had a narrow escape where the dinosaur tripped over the giant saucepan the player dropped, the dinosaur should probably be favouring one foot and thus not chasing the player, rather than having indigestion. And if the player politely threw it the burgers their group was about to eat instead, the dinosaur should probably not be hungry enough to want to chase the player. And if the player did none of those things but the torch battery is flat, maybe the first sight the player gets of the dinosaur is when the dinosaur grabs them for the non-standard Game Over… Single-use variables are how you do all this, and it can be done in 2 variables (one for “how the player beat Puzzle 1” and the other for “how much charge is left in the torch”). Whether the author wants to do it in just 2 variables depends on the concerns of the IF).

Also consider: there’s the world modelling that may or may not be needed to build the puzzles, but there’s also the world modelling that may or may not be needed to convincingly situate them in the game - especially if the game space changes significantly during the game. For example, if the IF has a day/night cycle that is based on choices selected, and different choices move time by different amounts (even if the day/night cycle is purely aesthetic), that puzzle description had better reflect whichever part of the day the player is in when encountering it. (IF where not much in the world changes, or where puzzles can only be encountered when the IF is in one state, or the parts of the IF’s state that do change won’t affect the puzzle’s aesthetics or functioning, are much easier to code from this perspective).

If you’re designing for a ChoiceScript audience in particular, be mindful that any and all personalisation options provided to the player are expected to be respected. This may not be world modelling as such, but it is character modelling and it is important in any IF where player customisation is a thing the IF requests.

7 Likes

I should clarify here (and after I wrote this, I remembered your parser-y choice game and was almost gonna apologize pre-emptively about my statement). What I actually bitterly meant was:

If you’re going to try and force choice-based languages/game structures to act exactly like parsers and and then complain that they are not built for it (ft. implying they are worse than parsers due to this), then just make a parser game in a parser language.

I am all for experimentation and breaking of mediums, believe you me. I liked The Roads Not Taken’s experimentalism and stuff like the Impossible Bottle! If you’re going to fit a square peg into a round hole and then act confused and upset about it, then I’m going to be irritated. If you’re going to fit a square peg into a round hole and are excited to figure out how to do it, then :+1:

8 Likes

[Contemplates a Twine game named LICK, Where you’re an anthropomorphized 6 foot tall walking tongue, on a mission to leave no surface unlicked. Including the cooooorrrrrrnnnnn… Which will appear in the text written as such every time without further explanation. Every surface will track whether it has been licked yet or not and reaching 100% lickage unlicks a Newgame+.]

9 Likes

Are you familiar with The Tick cartoon episode The Tick vs. Science, and Professor Mung Mung’s pet tongue?

The cartoon might give you ideas… https://www.dailymotion.com/video/x8lih4o

3 Likes

Hahaaaaaaaaaa…

2 Likes

So choice narratives get looked down upon by certain types of parser players. And that’s understandable. As stated, if you haven’t gotten much into contemporary choice narratives, it makes sense that people may not understand that not every puzzle requires world-modeling that exists in parser. They might not conceive of how you make a puzzle that’s not UNLOCK DOOR WITH KEY when you can’t make doors or keys the way you’re used to them. But that’s okay. That’s why we’re here to discuss these things.

The one thing we can probably all agree on about what’s important in IF is prose and also story. If you’re not going to read the story, the choices may not seem very important. That makes sense if your only frame of reference is Choose Your Own Adventure Books where your agency is “Turn to page 5 if you enter the house, turn to page 48 if you want to pet the snake.”

The simplest way to make a choice narrative is linear, and what Hal describes is lawnmowering the choices to end the game. If you’re doing it that way, I can understand why something may not be a compelling experience. There are specific narratives, specifically the dynamic fiction type, which are just this.

Without making this a TEDtalk [too late] there are different kinds of puzzles. Parsers are good at object based puzzles. UNLOCK DOOR WITH KEY. Pick up things and move them other places. One of the “selling points” of parser is “you can do anything” and it’s up to the player to discover what objects to pick up and place down in other locations in a map, or what fribblewob to insert in the gazoink to assemble the staff and save the world. But really…is there that much choice?

In a parser game I expect

  • I will have to move directions GO N/S/E/W or if spicy NW, SW, SW, WIDDERSHINS etc.
  • I will have to pick things up. TAKE FROB. I will have to check my inventory “You are carrying a frob.”
  • I will experience a locked door in some format. I’ll need to UNLOCK THE DOOR WITH THE FROB or UNLOCK THE FABULOUS CRYSTAL BOX WITH THE FROB to get the gazoink hidden inside that Bob wants.
  • If it’s not lone-person-exploratory, I will talk to an NPC who’s name may be Bob, ASK BOB ABOUT GAZOINK. GIVE GAZOINK TO BOB.
  • I might get to twiddle some things. SWITCH ON LIGHT so I can find the frob and the gazoink. There might be unique vocabulary UNSCREW THE VENT SCREW WITH THE BUTTER KNIFE.

While many parser games have done unique things, this is the interaction. Many parser games limit these interactions to streamline the gameplay.

(Note: This game is played with single keystrokes. For example, just press N, W, E, S to move around. Press B to check your briefing letter. Press H for command help.)

HELP

(To type a special command like SAVE, LOAD, or RESTART, press the backquote/tilde key.)

Standard commands:

  • N, W, E, S - Move north, west, east, or south

  • L - LOOK around

  • Z - WAIT for a moment

  • I - INVESTIGRAB - Take a closer look and maybe pick something up

  • B - Glance at your BRIEFING letter

  • X - Check your STATUS

– Arthur DiBianca, The Vambrace of Destiny (5th Place of ~75, IFComp 2023)

So despite games that get real fancy you can mainly boil down interaction to about 7 commands.

Or nine if your SCUMM for “some of the freedom” parser games afford. Lucasarts is known for devious and classic puzzles. with as few as nine verbs!

True, these verbs applied to the graphic window where nouns were inferred from pictures. But with pictures, we’re leaving prose and the world of IF.

So the way to create compelling puzzles in choice is to re-think what kind of puzzles can be done. Outside of paper CYOA and Gamebooks which require the player to kind of self-DM and roll dice for some randomness, the way is to take advantage of variables and conditions which work best on a computer instead of a paper CYOA or Gamebook.

Here’s a sample choice narrative. Look at this flawless world building! My quest is to get in the house. If I go in the forest I die. If I go in the house, the door is locked. If I open the mailbox first, I get a key that unlocks the door so I can win the game. The game has to set a variable so I see the choice to unlock the door.

I know, duh. How boring is that? But if you recreate this in parser, there’s not much fundamentally different except I have to guess what the choices are.

So, this is long, I’m always way verbose, and after Thanksgiving dinner I’m ready for a carb nap. I would love to discuss hub-and-spoke structure, QBN theories, and how board game conventions relate to compelling puzzle structure in choice narratives, but I’ll save that for later.

I would like to submit for comparison two of my games. One of the original goals of The Cursèd Pickle of Shireton was to recreate the entire main game loop of The Baker of Shireton but done in choice instead of parser. Originally I was intending to require the player to game through both parser and choice sections, but the always wise @CMG talked me down from that ledge, making it so the parser section was an Easter egg instead of required gameplay which would have probably made is score lower than 37th place… :stuck_out_tongue_winking_eye: I get it, it’s not a great game!

Cursèd Pickle is a choice game containing a world model, a simple RPG combat system, and a couple of puzzles created in choice.

If you want to skip right to the Baker of Shireton recreation in Cursèd Pickle - MASSIVE POTENTIAL SPOILERS:

Play the intro of Cursèd Pickle (the game will ‘restart’ a couple times) till you get dropped into NewBeeTown. Click on “Thy Stats” on the right hand menu to bring up the window. At the very bottom, click directly on the dot in “Legacy Client 1.998” - it’s a hidden link to a debug menu. (You have to get right on it - it’s just the dot.)

Be aware using this debug will cause all kinds of weird problems since you’re skipping huge sections of the game. Click “toshireton”.

From here, Enter the Bakery.

The game will crash and restart. Choose “The Baker of Shireton” as your character.

12 Likes

But that’s the thing with experimentation… you don’t always know if the hole is square or round or if your peg would go through it either… It’s usually banging one into the other until one breaks and see what’s left…
Like Oiooops I had a square peg and a round hole and now it’s stuck :woman_shrugging:

And I don’t see what’s wrong acting confusing and complaining when things don’t work. Sure, maybe you took the wrong approach and that’s the reason, or your spaghetti code just spaghetti’ed out of your control. But hey, experimentation is hard and frustrating, and everyone should be able to complain about it… we all already complain when we follow the codes of either choice or parser and they don’t work our way. The experimenters should be allowed to do so to, even if it doesn’t pan out for them.
Whether you listen to/read those complaints is another matter…

I did just that, you said you played it. And I complained all the way through making it. I complain about it to this day, even if I managed to make it work somehow, even if I’m currently working on making it better.

I’ll even be the first to shout on the roof that Twine is worse than parser because it’s not built to be a parser. And that you need to push and force your way through it to make it work, even still worse than if you used Inform or Adventuron. But if someone wants to try it as well… fuck, I’d cheer along. I’ll complain with them as well, because it’s frustrating and hard and your code is a mess.

But I guess that’s just my view on things :woman_shrugging:

5 Likes

I think you’re misunderstanding what my issue is and when I tried to clarify the misunderstanding got worse so I’m not sure how to proceed.

4 Likes