Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

Lately I had to make some game-design decisions that are worth sharing.

But first, some fonts:

Main menu

Lovely fonts. Although I'm still not sure about the color for the game screen's text. It has to be blue, but… Meh.

Also, I've discovered that the game is incredibly hard if I let a delay of only 0.55 sec before and after each beats. So I've twitched this value, and found a nice balance with… 0.56 sec. Yep, turns out 1/1000th of a second can really have an impact! Still, I think I'll need to add a "calibration screen" to the game. The comfort zone might vary for each player.

Anyway, let's talk about the main subject! I want to explain how the score system work.

The Score in Bongo Machine

So, here is my initial idea, that was first implemented:

  • Player get a rank at the end of a level. Ranks go from D (lower) to Perfect (higher).
  • When the player finish a level, they unlock the next one. Ranks allow them to unlock some bonus content. There are five bonus to unlock: one for each rank superior to D (C, B, A and Perfect), and one for completing the level in hard mode.
  • Rank is determined from the number of mistakes the player does. The player starts with a perfect score, which is the number of measures (playable parts) in the song. Each time the player fails a measure, their score goes down by 1. As the player plays the same measure again, it keeps decreasing when they fail. At the end of the song, the player gets perfect if they have still all their points, A if their points are higher than 2/3 of the initial score, B if higher than 1/3, C if higher than 0, D for 0 and below.
  • When player fails a measure, the screen gives them a feed-back with a red "FAILED". When they succeed, it gives them a different feed-back according to their number of tries for that measure: "PERFECT" on the first try, then "EXCELLENT", "GREAT", "NICE" and "OKAY".

That's all. Seems pretty simple and fair, right? Well, actually, it is fair! The problem is: it doesn't feel so.

First, feed-backs don't predict correctly player's final score. They seem to correlate to the rank, though. But since we're decreasing for each mistake, and not calculating an average, they don't give any real clue about what the final score will actually be. For example, a player can miss every single measure only once: they will have an entire game of "EXCELLENT". But their score will be 0, and therefore they will have a D! A little bit disconcerting.

There are several possible solutions. One is to compute an average instead. But with that few ranks, players might not see a difference between two different games (say, one consisting of only "EXCELLENT", and one with only "PERFECT" and an "EXCELLENT", would both give an A, although the player improved a lot). It seems coherent to me that a player missing all measures, even if only once, would get a bad grade.

Another solution, more brutal, is to get rid of the nuances in feedback. Since they don't give clues about the player's global performance, they are only confusing. We can just keep "FAILED", "PERFECT", and "OKAY". Player will know that succeeding on the first try is good, and more attempts are just accepted, but will have an impact on their rank.

But there is another issue I didn't mention yet! Well, I did in the introduction actually: the game is hard. Purposely hard. Not because I want it to be "for hardcore player only", but because its goal is to teach player to practice until they get a rhythm perfectly. So when they fail somewhere, they repeat. Again, and again, and again. Until they master it. There is failure, but no fail state: you win the level eventually. And you do because you learned it well. Demanding, but not punitive, is the game's core philosophy.

Except it does feel punitive! That's a big issue I hadn't foreseen. I played with a tight margin delay, and had a lot of failed measures. That was infuriating. I was getting stuck on the same measure, each time making probably a little mistake on only one beat. But that was enough for the game to tell me that I've failed ("all or nothing"), and keep me in the same part. As with every rhythm game, I started to doubt the accuracy of the machine. Sometimes I felt completely offbeat, and it would still accept, and other times I had the impression the game was just not cooperating! But it had been tested, and it works fine (… I think). It's just the difficulty was too high for me. This is why I decreased it a little by according an additional 1/1000th sec before and after a beat. However, it is still likely that some players will get stuck like me, and it won't be fun at all.

So, how to change that? I still want the game to be difficult, but I don't want it to feel punitive. And after some thoughts, I think I nailed one important mistake I've made: when the player does a mistake, the only answer they get from the game is a big red "FAILED". And this plays a lot in exasperating the player, and making them feel like the game is too hard for them and doesn't want them to succeed.

So I've made a simple, but quite important change. When the player misses a measure, the first two times, they gets a "FAILED". But after the third failure, the message becomes "YOU CAN DO IT". And let's be even more encouraging: if they do two more mistakes, the game will display "DON'T GIVE UP"!

Also, remember how I explained why I gave up the nuances in positive feed-backs? Well, I've came back on it (again). Because actually, diversifying messages creates a dialog between the game and the player. It's not just a cold "GOOD/BAD" indicator, but a more precise acknowledgement of how the player is playing. It is actually pleasant so see the game reacting differently for each one of your success, and in a quickly understandable way: the less you fail, the more positive the game is. But when you fail too much, instead of being neutral about it, the game becomes more patient and encouraging. Therefore, we changed "If you play bad, you will have a bad remark" into "If you keep getting better, I'll will applaud even louder". Oh, "EXCELLENT" also became "GREAT" (and "GREAT", "GOOD") because it feels less judgmental, and not linked to the rank.

Lastly, I decided to stop decreasing the score if the player does more than 4 mistakes in a measure. Getting stuck on a particular segment will still be really bad for the score, but not as much as initially. The game should let you learn without necessarily giving you a D.


I'm quite happy with those decisions, and how the game feels now. It was a great learning by experience!

Coming next: some animated backgrounds!