Developing New Game Mechanics at Kahoot!

When I was a kid, my brother got the coolest games console in the known world, the Super Nintendo. It was the summer holidays and, as with every year, we spent it at my grandparents. They were endless days of my gran making bánh cuốn as fast as we could eat them, going to the park with my grandad and playing video games until the dead of night.

The Super Nintendo, the start of something beautiful…

One glorious summer, we got the legendary multiplayer role playing game; Secret of Mana. Each night, we all huddled around the tiniest television and we’d vanquish monsters, adventure through magical lands and prevent the end of the world.

We shared in everything; the epic battles, the slow grind, the dramatic plot twists. Even if you were just spectating, being there supporting each other, laughing and crying together, there was just something special about sharing the moment. It was the greatest summer of my life. A game can do that, a game can make you feel those emotions, a game can bring people together.

It was the first time the future mattered to me, it was the first time I’ve ever wanted to be something; I wanted to make games.

So I learnt how to code, got into web design and, fast forward, the future is now. I’m living the good life as a developer at Kahoot!, the gaming platform that gets people to learn better together. Wanting to recreate that summer feeling I had of everyone playing together, Kahoot! resonates with me particularly since we do this with our campfire moments.

Lately I’ve had a chance to work on something special that I can’t help but want to show off: Answer Streak Bonus.

Let’s get streaking!

Getting you ready to streak

We wanted to reward players for answering accurately. We developed Answer Streak Bonus to give bonus points to players who are on a roll, answering consecutive questions correctly, and to make games a little more exciting. We wanted to balance out the scoreboard between the speed demons and the sure-fire players, and get players to take their time to answer. This is the story of how we brought the awesomeness of Answer Streak Bonus to life.

It started small with a developer/designer buddy-cop combo working closely to explore what Answer Streak Bonus might be and build a working prototype in a couple of weeks so that we could test whether there was value in the concept.

Version 1: Streak twice for twice the goodness!

In our first version, when you got a streak, the points you were awarded were multiplied, like in Bejewelled. So you could get double points for a question if you had a streak of two, triple points for a streak of three and so on.

It was an exciting new feature and I was pumped. The designs looked amazing with cool, new animations. It was really fun to dig into the codebase and make a working, playable prototype. It did well to show off the concept of Answer Streak Bonus and I was feeling pretty good. It was time to test out this first version internally and show it off to the rest of the team.

Our first internal test was madness because scores would balloon and get to really high numbers just like in Bejewelled Blitz. As entertaining as that was, we found that the top scorers were having the time of their lives, but the players near the bottom were struggling to keep up.

So we asked for some feedback from people and found that they cared more about answer accuracy (which was fantastic since that’s what we were aiming for!), the game was more exciting and had more of a sense of jeopardy. However we found that people felt the scores being multiplied upset the game balance, with some players’ scores being really high and others being really low. We had suspected as much just from looking at the scoreboard, but it was interesting that people felt this through playing. Players also commented that because the multiplier had a lot of impact, when you lost a high streak, it felt impossible to catch up to everyone else that kept their streak.

Streak level per question compared to number of correct: Something’s weird when 6 correct answers beats 7 by 1,000pts

We looked at the data and the concerns from the feedback were illustrated very well. A player would be ranked higher if they had a high streak and lost it, than another player who had answered more questions correctly but didn’t get a streak.

This initial version of Answer Streak Bonus clearly had some issues with game balancing, but with all the positive feedback we knew we had something special… so we grabbed a couple more people, put on our thinking hats and went back to the drawing board.

With this now bigger and better team, we were ready to look at Answer Streak Bonus again with fresh, new perspectives.

One of the things we unexpectedly found was that it was just really fun to get a really high number of streaks regardless of points. Pivoting with this idea in mind, we decided on giving a set amount of points for each streak a player reached. So you would get an additional bonus points of 100 points for a streak of 2, 200 points for a streak of 3 and so on. It would be just enough to offset the points you would miss out on by answering correctly but slower, like a little pick-me-up, and would put you in league with players who answered faster but weren’t as consistently correct.

To make it easier to get back into the game, we limited the amount of bonus points you could potentially get. This mitigated the feeling that it was impossible to catch up after losing your streak since the most you lost out on was a maximum of 500 points.

Bigger team, new mechanic, I felt confident we nailed it this time. We ran another test and made another set of colourful spreadsheets and charts.

With Answer Streak Bonus, some players who took more time gained positions

Huzzah, the data was looking much better! The scoreboard was in order of players that answered more questions correctly again. Players with very high streaks did not beat players who had no streaks but answered more correctly overall. Players with streaks also tended to take more time and their ranking was better for it. So players who took their time, but answered more accurately, benefited overall. Wicked!

It wasn’t all about the testing out the mechanics of Answer Streak Bonus. We noticed that during play, people started to shout out their streak and share it around the room, which was fantastic. So, we added a bunch of new messages to accompany the highest climber to celebrate all the streakers out there. It added another dimension of fun and gave more opportunities for other players to see their name on the big screen which was a big win!

Proud and loud!

The design for playing kahoots also went through some transformation. When we designed the initial version, there was a lot of exploration into how we would portray Answer Streak Bonus. What would players see on the big screen and what would they see on their devices? We wanted to show what was happening to the score when streaks were involved.

The first version had a lot of animation packed into the player screen to guide players through the Answer Streak Bonus process. For example, animations transitioning the points a player would have gained without bonus points, to when that was applied. Then, animating that new value for the points gained to increase the total score. There was also more animation transitioning between the player’s correct or incorrect screen and their ranking screen.

Through testing and development, we felt that there was actually too much happening and, as we played more and more rounds, the animations felt like they took a bit too much time. So, we started refining the designs so they were enough to convey Answer Streak Bonus and provide enough understanding about what was happening, but not detract from the game.

Left: Version 1 having fun with animations. Right: Version 2 getting you to your streak quicker

We found the toned-down animations provide a smoother experience illustrating information transitioning, like the bonus points being applied. People still enjoyed the new animations, and were able to see the their points, streak and rank more quickly.

We were super happy with what we had — it looked and played like a dream and we knew we had to get this out. So, we refactored the code, made sure it played well in the various modes and settings, and worked on some final tweaks to the design. It started as a rough and ready prototype that demonstrated the concept of Answer Streak Bonus. Now it was good enough to go out the door as one of our first fledgling experimental features.

Shout out, and shake it all about

My rambling is over and now you know what went into developing Answer Streak Bonus. I hope that it has inspired you to play Kahoot! in new ways. I’ve certainly thought of a few interesting ways myself…

I’m looking forward to trying a centurion kahoot of 100 questions to see who can gain the most ridiculous streak, and want to see how teachers use Answer Streak Bonus to boost their blind kahoots (a game where each question builds upon the last to teach a completely new concept). Imagine structuring the blind kahoot to make everyone feel more confident with a string of correct answers, and then throwing in a curveball so everyone loses their streak together. It would enhance the feeling that it’s okay to be incorrect, but also make students hungry to learn how they could have answered correctly.

These are just a couple of ideas. It’s out there now and it’s just exciting to see what everyone will do with it. Grab some buddies and take it for a spin, share all the crazy ways you use Answer Streak Bonus and definitely shout about it. We’ll definitely be looking out for you via Amplitude.

Get it on!

I’m making games like I’ve always wanted. Tell me if you liked it, tell me how I’ve done, and tell me if it made any of you guys want to make games too.

If you enjoyed hearing about Answer Streak Bonus and want to know more about experimental features, my squad captain Dominic MacBean has written a really good read about where this all came from — check it out!