Like most people, I love unlocking a new achievement. Therefore my new app has to have some. But before entering conditions that seem appropriate, I want to research a bit about why, how and which achievements are useful to gamify the app experience.
Psychology of achievements
“Why Do Achievements, Trophies, and Badges Work?” (2016, by Jamie Madigan) gives an excellent explanation on why achievements work for humans and how they can be used to enhance user experience and usage. In short, here are his reasons why achievements and such work:
- They make us expect higher performance from ourselves (to reach that next achievement)
- They make us more efficient by setting the goals for us
- By reaching those goals and gain the achievement, we are satisfied
- They create commitment for our goals
- They act as guidance and provide us feedback
- They facilitate psychological flow through feedback
- They trigger social proof
- They motivate us by triggering social comparison
Please go and read that article. Although my WordProgressor is not a game, I want to motivate it’s users to write more and perform better in their hobby or profession. I found another source, the abstract of a scientific paper: “Achievement unlocked!” – The impact of digital achievements as a gamification element on motivation and performance” (2019 by C. Groening and C. Binnewies), which highlights that achievements should motivate and be difficult enough to push the user to achieve more.
Types of achievements
I want to differ two types of achievements. Those that users can claim for themselves, being honest as a reward for something that my app can not or should not measure. Let’s call them personal achievements.
In the world of my WordProgressor, examples are to write in specific genres, or meet with writer friends, or write in a cafe or park.
Then there are app achievements that can be added to any app, independant of it’s theme. Create an account, return x times, have a streak of opening the app, share it with a friend, rate the app in the store, pay for a subscription.
Yes, I definitely want to reward the user for supporting me.
Now the most important ones – psychology wise – those that reward the user for his app specific behavior. The WordProgressor lets you track your writing projects and your progress with them, measured in words. I want to reward the user for making progress with his writing. For showing up (nearly) every day to add words to his projects, for trying new things and reaching the next step within the projects state (ever submitted something?).
Oh, they still need a name… behavior achievements.
For some of them, I want to reward the user for achieving something x times. Submitting x stories, writing x words total, finishing x first drafts. But how to set x to be motivational?
My first x equals 1.
First visit at the WordProgressor? – Achievement. First time creating a project? – Achievement. First word count update? First submission? First… well, everything.
Rewarding the first time doing something has several effects.
- The user is rewarded for his behavior
- The user learns, that there is an achievement to earn for this specific behavior
- The user will want to try more things for the first time to gain more achievements
- The user will repeat this action to get the next achievement for it
I never want to show all the possible achievements, but always the next one to reach, as a motivation. Also, the next step must be larger. Somewhat difficult. And demand the users work. To switch to mathematical terms, I don’t want a linear function, but the steeps must get higher.
My next x should be 5. Just by intuition, I think that’s a good number. Although this counts for projects, not words. Words will receive a multiplier.
I tried with mathematical functions, but the numbers turned out odd, so let’s just say that the steps grow larger.
1 – 5 – 20 – 50 – 100 – 500
If I can motivate someone to write 500 stories just because of this achievement, I think that makes me a better person, don’t you?
It’s not enough to show a short notification, when the user earned his new achievement. There should be a page for it, kind of a hall of fame. Plus the user must be able to see upcoming achievements he want’s to reach next.
Besides from type four; secret achievements. Just some easter eggs to make me as a developer happy.
I will add a post with an angular AchievementService as soon as I implement one.
Which type of achievement do you like the most? Any favorite achievements in other games or apps?
Personally, the “cheat to win” achievement ruined one of the games for me.