Dec 20

2017

A Taxonomy of Choices: Axes of Choice

Posted by: Jason Stevan Hill | Comments (2)

As part of our support for the Choice of Games Contest for Interactive Novels, we will be posting an irregular series of blog posts discussing important design and writing criteria for games. We hope that these can both provide guidance for people participating in the Contest and also help people understand how we think about questions of game design and some best practices. These don’t modify the evaluation criteria for the Contest, and (except as noted) participants are not required to conform to our recommendations–but it’s probably a good idea to listen when judges tell you what they’re looking for.

If these topics interest you, be sure to sign up for our contest mailing list below! We’ll post more of our thoughts on game design leading up to the contest deadline on January 31, 2018.


Last time, we discussed various types of establishing choices and forking choices. Today, we’re going to discuss the ChoiceScript Machine and the different types of testing choices that drive the narrative forward towards success or failure.

The ChoiceScript Machine has three steps. The first step is Establishing Choices: where the reader establishes the character’s strengths and weaknesses; the second step is Testing Choices, where the reader applies their aptitudes (Primary Variables) to challenges (tests), resulting in success or failure in pursuit of goals (Secondary Variable effects); then, in Climax Choices, the Secondary Variables are tested to return the game’s End States: was the mob successfully dismantled? Did you get fired or get a promotion? Did your marriage survive? Was your partner caught, discharged, or did he get off scot free?

At its most basic, a Testing Choice tests a stat and returns either success or failure. This usually reflects some sort of challenge: riding a horse, flying a plane, stealing a watch. However, as frequently as possible, you don’t want to record the results of individual tests (road_horse_chp_3 true/false), so instead we recommend the use of FairMath generally and Secondary Variables specifically, thereby trading fidelity for efficiency; e.g. instead of tracking every decision with booleans, we assign values to decisions and compress them into numbers. In particular, a classic Testing Choice tests a Primary Variable and affects Secondary Variables to record that success or failure.

Returning to our police procedural, the PC is trying to arrest a member of the Russian mob who’s taken refuge in a house. She has drugs which she’s likely trying to flush down the toilet.

*choice
  #I kick down the door before she can finish. (Tests $athletics)
    *if athletics > 45
      *set arrests +1
      *set police_rep %+5
      *set drugs_in_evidence +2000
      You kick down the door with one swift blow and rush inside. Within moments, 
      you have the suspect cornered. Her puts her hands up; two whole kilos of 
      blow are at her feet.
      *goto after_confrontation
    *else
      You give the door a swift kick, but it doesn’t budge. You kick it again and 
      again. Finally, your partner steps up and you kick it together. If flies open. 
      You charge inside, yelling “Police!”

      *label misdemeanor
      By the time you get to the bathroom, most of the blow has been flushed down 
      the toilet. 
      *label misdemeanor2
      *set arrests +1
      *set police_rep %-5
      *set drugs_in_evidence +200
      It’s enough to make an arrest, but it will be be pled down to a misdemeanor.
      *goto after_confrontation
  #I call out to her as a distraction while my partner sneaks around back.
    *if diplomacy > 45
      *set arrests +1
      *set police_rep %+5
      *set drugs_in_evidence +2000
      Covering the peephole with your hand, you ring the doorbell and shout “Pizza!” 
      There are noises of confusion from inside. You hear the suspect on the other 
      side of the door. “POLICE! Open up!” you shout.

      The suspect stumbles away from the door. Little does she realize that your  
      partner has already entered from the rear. A few moments later, the front door 
      opens; the suspect is cuffed, and two kilos of coke are sitting on the coffee
      table.
      *goto after_confrontation
    *else
      You ring the doorbell. “Who is it?” a voice calls out.

      “The mailman. I have a package I need you to sign for.”

      “It’s 11 o’clock!”

      “Yeah, it’s...uh...a late shift for me too.”

      Out of the corner of your eye, you see the curtain flick just a bit; she 
      caught sight of you. You start kicking at the door, but by the time you get 
      inside, it’s too late. She had enough time to flush most of the coke down 
      the toilet.
      *goto misdemeanor
  #I have my partner call out to her while I sneak around back.
    You slip around back. You find a window
    *if stealth > 45
      *set arrests +1
      *set police_rep %+5
      *set drugs_in_evidence +2000
      and open it silently. You pull yourself through. Tiptoeing through the house, 
      you find yourself looking at the back of the suspect, arguing with your partner
      through the front door. “Freeze! Police!”

      There are two kilos of coke resting on the coffee table. Score!
      *goto after_confrontation
    *else
      and start to open it, but suddenly it slips from your grasp, falling with  
      a heavy thud. After a split second, you hear your partner yelling, “Police!”

      You shatter the window with the butt of your gun, clear out the sharp edges 
      and pull yourself through.
      *goto misdemeanor

Here, there is one objective: catch the criminal before she can destroy the evidence. Success in the test means you get to her before the drugs are flushed (+arrests, +drugs_for_evidence, +police_rep). Failure could be several things, depending on how you handle failure in your game: failure could mean that the drugs are entirely flushed, and so you have no basis to arrest her (-police_rep); or maybe you still stop her from flushing the drugs but you get hurt in the process (+wounds, +arrests, +drugs_for_evidence, -police_rep). Alternately, your partner could save the day, but he thinks less of you for it (-partner_rep).

Regardless, the objective of the choice is singular, though the failures may be diverse. This is sometimes called a “Tool for the Job” choice, because it’s about the PC picking the right tool (skill/stat) to succeed at the task.

There are two easily-identified limitations to basic Testing Choices. The first is that it has only one axis of choice: how do you try to succeed? It also has only one axis of success: do you succeed at catching the criminal before the drugs are flushed or not? Which doesn’t mean that you shouldn’t use Testing Choices, but you should be aware of these flaws: basic Testing Choices can quickly lead to the dreaded Four Point Trap, Scores, and other symptoms of one-dimensional gameplay.

It is important to note that Testing Choices should have at least three non-overlapping yet equally valid ways forward. That means that if you have three #options in a choice, then two of them can’t test the same stat.

A variation on the Testing Choice is the Multi-Level—or Declined—Testing Choice: here, there are multiple tests/checks under an option.

Because the concept is simple, I’m going to apply it to one of the options from above, rather than outline a whole new choice.

Choosing any of the options from the fleeing drug-courier above, a mid-level test ($diplomacy > 50 instead of $diplomacy > 65) might result in some of the drugs being recovered, instead of them all being flushed. Or, maybe the drugs are flushed, but the middle-success means you don’t get your nose broken in the scuffle, whereas you do with a total failure (+wounds).

You’re called to testify for one of your recent arrests.

*choice
  #I need to prevaricate a bit, lest my tactics seem too cruel.
    *if diplomacy > 65
      *set police_rep %+10
      *set lieutenant_sentence “20”
      You successfully steer your testimony away from the indelicate parts. 
      The jury convicts and the judges sentences the criminal to twenty years.
      *goto after_testimony
    *elseif diplomacy > 50
      *set police_rep %-5
      *set lieutenant_sentence “5”
      You are not quite able to avoid some of the stickier parts of how you 
      brought down the defendant. The jury convicts, but the judge only sentences
      the criminal to five years.
      *goto after_testimony
    *else
      *set police_rep %-20
      *set lieutenant_sentence “none”
      Unfortunately, you trip over your own story multiple times. By the time 
      you’re finished, the defendant’s lawyer calls for a dismissal, and the judge 
      grants the motion. The defendant walks free.
      *goto after_testimony

Here, the PC’s ability to defend their actions on the witness stand produces more than two possible results for the trial.

MLTCs are great, in that they provide nuance to the game. It also helps with the Four Point Trap, because it allows players to try and use a skill that they may not be best at without being penalized for it. However, you shouldn’t go overboard with MLTCs, because they’re a degree of detail that most players won’t value because most players won’t perceive their degree of difference; more than three possibilities is probably not worth the effort except in extreme/climactic situations.

You can, of course, test other stats as well (the declination doesn’t have to be in just one stat; the first stat tested could be Stealth, and then a test in Athletics, for example). By the mid-game, you should probably start including MLTCs in your game. Trials of the Thief-Taker is a recent example of a game that uses MLTCs extensively.

In contrast to an MLTC is a Variable-Difficulty Testing Choice. Here, the preamble or the text of the option has to clearly communicate that some options are easier or harder than others.

For example, if a team of bank-robbers are holed up in a bank, and our detective is the only one available to negotiate with them.

#intimidate them into surrendering their weapons and leaving the bank. (Hard Test of $intimidation)
#convince them to let children and the pregnant leave the bank. (Tests $diplomacy)
#offer to come into the bank to negotiate face-to-face. (Easy Test of $diplomacy)
#negotiate? I'm going to study the blueprints so I can get the drop on these guys. (Test $tactics)

The key here is to clearly telegraph to the reader that one or more options are harder or easier than the others. Most bank-robbers, for example, aren’t going to cave to threats and just give up their carefully-made plans. Notably, if one test is harder (or easier) than the others, then its consequences (SV-effects) should reflect the degree of difficulty: if the PC manages to flat-out intimidate the robbers into putting down their weapons and walking out of the bank, the reputation and career effects should be much more substantive than the other #options.

A variant on this idea is the expenditure of resources option: there may be multiple options that are a test, and then a final option which is the “bribe” option, which decreases a Resource Variable but lets you overcome the obstacle/choice without a test. (This doesn’t necessarily have to be a bribe, but that’s a common manifestation of this type of option.)

A final variant is the shirk option: an option that is clearly worse than the others, but which places nothing at risk. By shirking a test, the PC receives a small penalty (likely in the form of an SV nerf), but doesn’t risk the bigger loss of a failed Testing option. Think of the old arcade fighting games, where blocking meant you still got hit and lost a little life, but not nearly as much as if you didn’t block at all, or tried to dodge and failed.

An evolution on the Testing Choice is a Motivated Testing Choice. An MTC may have fewer “actions,” but those actions are explained in the context of motivations. Thus, an MTC still only has one axis of success, but it has two axes of choice.

So, when a criminal holds a gun to the head of a hostage, but our PC has the drop on him:

#shoot to kill, because this trash doesn't deserve to live. (+bloodthirst, tests $marksmanship)
#shoot to kill, because that's what SOP declares in this situation. (+order, test $marksmanship)
#despite regulations to the contrary, I try to sneak up behind the criminal and disarm him. (-bloodthirst, -order, tests $stealth)
#alert the criminal to my presence and try to talk him down. (-bloodthirst, tests $diplomacy)

A success on any of these means the hostage is unharmed (+case_solved, +police_rep), and the criminal is either dead (+bodycount) or arrested (+arrest); a failure similarly means the hostage is dead (-police_rep) and the criminal is either dead (+bodycount) or arrested (+arrest).

See, after the personality effect, the testing and the result of the shoot options are pretty much the same, but why the PC has done it can be important, especially in the context of later actions. The presence of two axes of choice (the aptitude test and the moral/ethical/personality reasoning) makes this a much more interesting choice.

These variations and complications to Testing Choices help complicate the axes of choice within a *choice, adding more dimensions to the gameplay of individual choices. Next time, we’ll look at adding axes of success to your choices through the pursuit of multiple Narrative Goals/plotlines, which corresponds to the difference between success-and-failure in the micro (individual choices) with success-and-failure in the macro (in the game).

Subscribe by E-mail