Mau-Mau, part 3: Optimizing the difficulty level

Florian Hollandt
#VoiceFirst Games
Published in
6 min readFeb 10, 2018

What makes a game difficult? How difficult can a game be to be enjoyable? Or is there a good and a bad kind of difficult? In this third part of my series on my ‘deepest’ voice game Mau-Mau (the German version of the Crazy Eights card game), we look into some ways to optimize the game’s mechanics and voice interface.

When you think about designing a card game (that is not Black Jack) for a group of devices that typically don’t have a screen, the first thing that will come to your mind is ‘How does the user know which cards they have?’. The obvious solution is to read the cards out loud and provide the option to repeat it, but still the user has to make the effort of memorizing the ‘off card’, comparing it with what Alexa says, and keeping track of their options.

This is not as bad as it sounds: It’s probably what people expect when they play cards with their voice assistant. However, it does create a mental strain (one reviewer even called Mau-Mau a ‘brain-jogging’ game) that gets more intense with the number of cards the player has, and the length of the session. According to Harvard psychologist George Miller, we can only keep about 7 items in short-term memory at once, and each card consists of two items each (suit and value).

How to keep a tolerable level of cognitive strain?

Up to this level of Miller’s number (I will call this ‘Miller’s range’ here) memorizing and comparing cards is a good kind of difficult:It’s an essential part of the game-play, and valued as such by the users. Staying above Miller’s range for too long causes a runaway feedback effect of decreasing concentration and higher failure rate, resulting in frustration and churn.

How can we keep the gaming experience enjoyable by keeping mental strain in Miller’s range?

I made sure the player has as few cards as possible, and can remember them more easily.

Helping the user memorizing their card has an active and a passive part: The passive part is simply to sort the user’s cards by their value (from 7 to Ace) — As I’ve seen most real world players do it with their cards as well. This way, two cards with the same value will end up next to each other, and thus be closer to three than to four items to remember (‘ten of spades and hearts’).

The active part is to prevent users from passing a round when they actually have a matching card on their hand (and forgot to discard them). This might actually be part of a player’s strategy (like saving up a wildcard jack until the very end), so instead of confronting the user with their ‘irrational’ decision, Alexa gently asks them if they’re sure about passing the round (which she doesn’t if the user indeed has no matching card and passes the round).

Until this point, we eliminated some bad difficulty by optimizing the voice user interface. Where else can we look for ways to reduce mental strain?

We could manipulate the mechanics of the game itself, just to please our users. Let’s do this!

From the game dynamics perspective, the number of cards a player holds is determined by 4 factors:

  • The number of initial cards on the player’s hand
    In a real-world game, you play with either 7 cards (with 2 players) or 6 cards (for 3 or more players) — And 5 cards if you play with children. Since our #VoiceFirst users have a natural disadvantage (no visual information on the game) that is comparable to being a child, reducing their number of initial cards to 5 seems fair.
  • How well the human player uses their cards
    We already optimized the voice user interface to make it as easy as possible to them — Our job here is done.
  • The cards on the player’s hand
    If god isn’t playing dice, why should we? Alright, let’s cover this right away, before moving on the the fourth item.

Here’s a subtle and really effective thing I did: I made sure that at the beginning of each game, the player has a matching card to discard on their hand!
I’m very happy about this mechanism, because at the same time it decreases the number of card into the enjoyable ‘Miller range’ (of 4 sorted cards), and creates an early success and thus a positive spin for the user in every single game.

Now at this point, we successfully adapted and optimized a real-world game to the #VoiceFirst world. We eliminated all the bad difficulty we could, leaving the player with the good difficulty of playing an almost fair game against the computer opponent.

Adjusting the difficulty level

Let’s examine the fourth item of what determines the game dynamics, and how we could work with that one:

  • How well the computer opponent is using their cards

After releasing Mau-Mau and monitoring it for a few days, I made a surprising observation: Alexa is excellent at Mau-Mau. With the unfair ‘Matching initial card’ advantage for the player, I would have expected a win rate of about 60%. Instead, human players only won 4 out of 10 games!
The reason for this seems to be the fact that Alexa simply makes no mistakes. Even with the user interface enhancements we already discussed, human players overlook (or in this case overhear) a matching card every once in a while, giving them a disadvantage against a computer with perfect memory.

What would you have done with this observation?

I decided that this was a good lever for adjusting the game’s difficulty level.

What I did was to introduce a ‘cheat mode’: When cheating is activated, Alexa would ‘forget’ that she has a matching card in a given fraction (currently 25%) of her turns.
Now with cheat mode, the player’s win rate rises up to 74%, opposed to 47% in default mode. Now that’s quite the effect!

Shouldn’t cheat mode be the default mode, then?

Apart from the user experience perspective, constantly enabling cheat mode would feel like patronizing my users… As if I denied them the chance to honestly beat a computer opponent in a simple game. Seeing that users still win, engage and come back when playing at full difficulty is a bit of a ‘human pride’ moment for me. :)

On the UX side, cheat mode is a sweet instrument for shaping the overall gaming experience for the user: For example, by making sure they win their very first game when trying out this voice game. Starting with such a feeling of success and gratification contributes to making the user want to play more and again.

Beyond the first game, I use cheat mode to adapt the difficulty to the user’s skill level: If their win rate drops below 50%, cheat mode is always activated. This way, both strong and weak players have a good balance of challenge and gratification.

And actually my usage data show that users don’t seem to be too discouraged by the lower win rate in cheat mode: With only 10%, the abandon rate is really low — Looks like I successfully engaged players in the first place, and am now offering them an enjoyable level of challenge.

So what do you learn from all of this for your own #VoiceFirst game?

Much of what I presented you here is very specific to my card game, but there are some angles that everyone can apply to their game:

  • Where do you burden your users with cognitive strain?
    Try to bring it down into Miller’s range.
  • Where can you can fabricate experiences of success and gratification without compromising your game?
    Remember that the beginning and the end of an event (such as a session of your game) leave the strongest impression.
  • How can you adapt you difficulty level so that users with varying skill equally enjoy your game?

How can or can’t you apply this to you voice game? What would you like to have read more about? What mechanisms for crafting an enjoyable user experience did you come up with? I look forward to exchanging about this with you!

--

--

Florian Hollandt
#VoiceFirst Games

Maker, with a focus on Arduino, LEDs & 3D printing. There’s a range of other topics I’m also engaged and/or interested in, most notably Alexa skill development.