How to Make Games More Engaging and Controlled by the Player

I am making my second full-scale IF game. I am using Twine and Harlowe which are very basic programs that don’t offer many features. To make decisions, the player clicks on linked text. Usually there is only two choices to click. During a playthrough, I noticed this really limits the player’s power.

For example, This is one of my combat sequences:

You walk out of the tavern. The grimy wooden door swings shut behind you, shutting the noise and warmth from the building out. You trudge down the path, wishing you had enough coins to buy a horse. Suddenley, a green streak rushes past you. You look down, and your coin purse is gone. A goblin! You spin around, and sprint after the tiny creature. Eventually, you get it cornered in the forest. The animal is chittering in its language. Should you attack or ask nicely for your coins back?

As you can tell, there are only two options. It is very limited. I want the player to feel like they have the power. Right now, it feels like the player is reading through a story set by the author. Even though they are making decisions, I set the options, which really limits the game. I don’t want the game to be like Zork, where you randomly guess what to do. I still want to follow a system, but I want to give the player more power. Any advice?

If the Goblin kills you, the game is over of course. So how to provide different and interesting paths to victory?

Maybe each path has a different implication for the emerging story.

In real life, there are many ways to screw up, and far fewer lead to success. I think it’s the reverse in good IF though.

Just as a side remark, but in parser-based games, it’s usually not “random guessing”. If the game is well-designed and well-implemented, then the player will be able to form a decent idea of what he is supposed to accomplish next, and how to phrase it.
(ATTACK GOBLIN or TALK TO GOBLIN or even just TAKE PURSE might be reasonable things to try, for example. Or just GO NORTH and venture forth without the gold.)

But, to address the question of giving the players the feeling of agency in a choice-based game; here are some ways of doing so, for example:


You can have more than two choices. You shouldn’t overwhelm the players, but nothing’s stopping you from providing three choices per node (on average).
(Of course, you need to take care to join some of the strands together again, otherwise it would become impossible to handle the exponential writing workload.)
That should at least help to alleviate the impression of being funneled through a narrow set of possibilies.


You can make the choices have meaningful consequences (and make that clear to the player – there was a related thread here recently: How do you "show" choice in choice-based IF?).

In your example, maybe the choice to attack the goblin has the outcome that the whole goblin tribe is hostile to you now, or raids your village in revenge. Whereas the choice to talk to the goblin might lead to a peaceful resolution, and later you can enlist the tribe’s help against a dragon.

Sure, those are two paths which the author individually predetermined for the players, but still, the fact that the choices matter will help with the feeling of agency.

And if you implement several more of such choices, then the players will (justifiably) feel that they are shaping their fate within the story.


Another way, but of course not mutually exclusive with the others, would be to include a more “systems”-like approach, as RPGs and RPG-like games often do.

You can implement stats/attributes, and an inventory, and places which the player can revisit, where you open up more options on later visits, depending on whether the player has enough wisdom / gold / faction reputation / experience points and so on.

In your example, you could offer choices depending on the player’s stats, for example: steal back the purse (high dexterity required), intimidate the goblin (high strength or charisma), explain the concept of justice (high wisdom), and so on.
Or, if the player has the “animal summoning” skill, he might summon a thieving magpie bird and order it to steal the gold back from the goblin.

This will typically give players the feeling of really inhabiting that world, and it will also lead to such a vast range of possible paths that they won’t get the impression “I’m just choosing one of the two paths which the author set up for me”.


The usual design rules, from a high level:

When the player encounters a choice, each option should be a tradeoff between different possible goals. Don’t just phrase things in terms of immediate outcomes (fight or talk). If the player has an idea of what they want in the long term (peace with the goblin village, friendly relations with the humans at home) then individual choices become tools to work towards those goals. And if the goals conflict (humans hate goblins), well, then you have a plot.

The stats idea that StJohn mentioned is a common way of making that work. Bunch of numbers representing different story goals (wealth, rank, social bond with X) and everything you do makes some go up and others go down.


You walk out of the tavern. The grimy wooden door swings shut behind you, shutting the noise and warmth from the building out. You trudge down the path, wishing you had enough coins to buy a horse. Suddenley, a green streak rushes past you. You look down, and your coin purse is gone. A goblin! You spin around, and sprint after the tiny creature.

[Did that thing just steal my coin purse?]
[Obviously, I don’t want any trouble.]
[Obviously, it doesn’t want any trouble…]
[I’ll just draw my sword and call out so it is a fair and chivalrous parlay into combat…]
[Avast, foul pestilence. I believe you have something that belongs to me…]
[If I harm that creature, it is to be war between our kingdoms.]
[Hey! You bring that back to me RIGHT THIS INSTANT.]
[Steady li’l fella, not gonna hurt ya’…just gonna snatch that right back, you won’t even know…]
[I’ll just kill it quick and hide the body. Nobody will miss it.]
[I’ll just move on and not say a thing. Obviously it needs the money more than I do…]
[But…that was my horse money goshdarnit!]

The trick here…all these choices only lead to your two outcomes. The player will either fight or won’t. Maybe throw in a couple weird reactions and loop back to the same set of choices if it’s one where the player is inner-monologuing.

1 Like

I agree with everything the last three people said.

I’d say that the big ‘secrets’ to making games more engaging and having more agency are:

  1. Branch-and-bottleneck design
    This is where you give people a lot of options for a short while, then they all come back together after a medium amount of time. It’s so you don’t have to write each branch independently but people still have options. It’s the same thing Hanon showed in his example and St John mentioned.

  2. Delayed effects of choices.
    This is where your choices don’t take effect immediately. An example is starting a game and you can pick an apple, an axe, or a shield; later on, if you encounter a hungry horse, the apple lets you tame them, or if you fight a dragon, the shield protects you. By making the effects happen later, it keeps people from immediately UNDOing and feels like you’re actually controlling the game. That’s what St John and Zarf mentioned with systems and weighing choices.


Thank you all for the help.