Free-to-Play fundamentals

You’re building a free-to-play or freemium mobile game, and you want that sweet retention. How do you get it? Here are some elements to use.


The player must end each session wanting more. If the player can just play and play until he’s fully sated, then he leaves not wanting more. If he doesn’t want more, he won’t have a strong pull to come back, so you might never see him again. On the other hand, if you use some limiting mechanic so that as his session progresses he stops being able to make progress or stops being able to get everything he wants and he has to wait before he can play again, then he’ll leave the app still wanting more. That out-of-app part of the engagement loop is incredibly important, and you’ve just sent him into it with a craving for more of your app. Nice. And now, when he does come back, you can immediately give him the thing he wanted, which is super reinforcing.


  • Lives or hearts or whatever they are in Candy Crush
  • Chests unlocking in Clash Royale
  • Buildings taking time to build in Clash of Clans
  • Wait for other player to go in Words with Friends


When the player is in the out-of-app part of the loop, if you’ve done everything right, there are things in the app that he wants, but can’t get yet. When those things are ready, you want him to be triggered so that he opens up the app. The best kind of trigger is what’s often called “internal”, but a better word might be something like “endogenous” — it comes from the user, rather than from you the developer. For example, maybe he sees his phone on his desk, and that reminds him that his building is probably finished. Or maybe he feels a pang of boredom as he sits down on the bus, and that makes him think of playing something on his phone, and that makes him think of your app. Or maybe he’s on the toilet, and he always pulls his phone out when he’s on the toilet.

But it can take time to build endogenous triggers. You can kick start things — and help them along as necessary — with “external” or “exogenous” triggers. Usually that means push notifications and emails. Just do everything you can to make it so that you have something your player cares about that you can notify him of. If you’re sending him push notifs for your own stuff that he doesn’t care about (eg, “Special sale today, gems are 10% off”) then he’ll probably ignore it, and he’ll like you less, and he’ll be more likely to ignore future pushes, and he might turn off push permissions all together.


  • Facebook’s “Someone tagged you in a photo” email/notifications. How could you ignore that?
  • Clash of Clans’s push notifs for “So-and-so is raiding your base!”
  • Clash Royale’s push notifs for “Your chest is done unlocking”
  • The Royale player wakes up in the morning and sees his phone and it occurs to him that his chests must be finished unlocking now.

Session length optionality

Michail Katkoff has the best article about this so I’ll keep it short. Basically, you need to have super short, rewarding sessions in order for the player to complete sessions a bunch of times throughout the day (while waiting in line, while taking a poop, while on hold, at lunch, on the way home, while going to bed at night). If your sessions are too long (more than 1–2 minutes) then he won’t be able to complete a session in lots of those times, so he won’t start one. And it’s only when a player uses your app multiple times a day that app use will become a habit. And you should think of making it a habit as your primary goal.

But you don’t want your sessions to only be short. That’ll make it hard for your player to get deeply invested in your app.

So what you want is optionality. Katkoff talks about this in terms of “dual loops” — you want a short loop like harvesting resources in Clash, and if the player has more time and wants to do more, there are longer loops that he can go through, like battling or rearranging his base.

Many long and short goals/projects

Aside from stamping in habits, your other goal as a designer is to use every moment you have with a player to get him feeling more pull towards more goals in your app. You want those to be on lots of different timescales.

  • Very short — 1o seconds to 1 minute. Eg: ‘tap here to collect your reward for accomplishing this achievement’ and ‘purchase this upgrade that you now have enough gold for’ and ‘do a battle to get gold’
  • Medium — 1 minute to 1 hour. Eg: ‘you have 5/10 crowns in your crown tower accumulator; if you win 5 more you’ll unlock the Crown Chest’ and ‘You almost have enough gold to upgrade to Town Hall level 6’.
  • Long — 1 hour to 1 week. Eg: ‘Your Town Hall is underway, ready in 5 days’ and ‘This tournament ends on Friday’.
  • Lifetime — Looong term. Eg: ‘Exercise keeps your heart healthy so you won’t die so young’ and ‘This will allow you to look back and see your performance over a lifetime’.

There are lots of ways to create goals/projects. Here are a few common ones:

  • Collection mechanic. Think Pokemon.
  • Climb a ranking ladder
  • Win a one-off event
  • Unlock some item of utility
  • Advance a relationship with another human or humans
  • Answer questions/resolve secrets

Those are some of the most fundamental mechanics. Hopefully this list gives you some good stuff to think about.


Leave a Reply