Over the past month of writing, I started keeping a list of tips, shortcuts, and concepts from my experience writing choice games for those who may be interested. It is very basic and a bit stream of consciousness.
Feel free to ask questions, add your own, or suggest better ways of doing things.
Keep a file of common code you use. For example, I keep a list of common stats that change and variables I use a lot:
*set morality %+10
*set humanity %-10
*set honor %-10
*set impulse %+10
*set truth %+10
*set ideal %+10
*if group_leader = firstname
*if group_leader = "Rachel"
*if group_leader = "Jaime"
If you code long scenes or long vignettes, create sections in a temporary file. It makes testing, especially Quicktest, much faster to run.
For most choice games, you should have stats with specific mechanics. For simplicity, keep in mind two major ones: establishing and secondary.
- Establishing stats define your character, get set early in the game, and rarely change once set. You should check these stats throughout the game to determine whether an MC succeeds or fails. You track that outcome by changing a secondary stat.
- Secondary stats reflect the choices and actions of the MC throughout the game, change frequently, and generally use fairmath. They can be personality (morality, honesty, impulsiveness), resources (health, money, mana), or relationships with characters, groups, factions, etc.
Save files with an underscore at the front (prefix) if it is a code reference or a temporary scene. It will be easier not to bundle these for publishing.
For every option in a choice, change or track some variable. Any time you ask a player to make a choice is an opportunity to gather info about their character. Make it count. Add or subtract from a numeric stat. Set a flag. Do something.
In that frame of mine, as you set up a choice, ask if you can test any stats. For example, if you want to convince the guard to release you from a cell, what stat can I check to assess whether he agrees or not? For more info, reference Axes of Success and Axes of Choice.
Give player’s agency. Before you present a choice, provide some details on why those choices may benefit the MC and possible outcomes if selected. Don’t let a player make uniformed choices. Here is a good write-up on Agency.
As you’re writing choices, keep a list of characters in mind who you expect represent a range of people who would be MCs. For example, if your game is a modern crime thriller, MCs may be Jack Bauer (24), Olivia Pope (Scandal), Jack Ryan, Clarice Starling (Silence of the Lambs), Luther, Nikita, Sydney Bristow (Alias), Alex Parrish (Quantico), etc.
Before you ask for beta-testers, play your game. A lot. I fail at this far too often. I am so excited to share my latest scene that I release it with obvious bugs. This takes time and energy away from testers, who should be helping you to find overlooked and nuanced errors.