Day Twenty One
Today was a little more work on the triangle twins - nothing to show off just yet, so lets talk scoring.
The scoring system in this game has had a ton of different iterations. It started out just being a simple timer, but that didn’t really work because your damage output is relatively fixed. It also raised the question of “why have a shoot button at all if it doesn’t make any difference”.
The next iteration was a massive overhaul. Score pips now spawn when you’re dealing damage, and at a higher rate when you’re “grazing” - which just means when you’re in danger but haven’t been hit (you can tell when you’re grazing because the screen gets lighter and your bullets change). The score multiplier doubled for every 10 pips you collect, halved if you left a score pip time out, and reset completely when you were hit. On top of all that, when you defeat the boss, all the bullets that are on screen are “cancelled”, and given to you as points that take your multiplier into account. That meant massive bonuses for defeating bosses at the right time, which means that if you want the highest scores, you need to stop shooting for a little bit and make sure the boss is shooting lots of bullets before dealing the final blow. To prevent excessive “milking” (which is intentionally not defeating a boss for long periods of time to get the best score), there was a bonus for quick completion, and a penalty for being too slow. And on top of that, there was also a bonus for not getting hit, and a penalty for getting hit twice.
That iteration was a resounding success. It made the game so much more interesting, and we had a bunch of really great scoring competitions. That’s not to say there weren’t issues, though! Getting hit is heavily punished. You basically had to do a perfect run to get any chance at the top of the leaderboard, which makes mistakes incredibly demoralising. The multiplier reset alone was punishing enough, but to lose out on an extra 50% score boost at the end of the game just exacerbated the issue. On top of punishing getting hit too heavily, it also really over-prioritised precise, methodical movement. That’s kinda boring in a game that’s supposed to be a little bit chaotic, so it just didn’t meet the goals.
So how do we fix that? Introducing @tntdragon - who dropped an absolute goldmine of information about scoring in the Discord server. If you’re in the server, just search “deathlessness” and you’ll find the post, I highly recommend reading it. There was a little bit of input from some other people in the server, but that post really shaped the next iteration. So what changed?
First things first, that death punishment was too much. Now it only halves the multiplier, and your multipler increases by one instead of doubling. There’s no explicit multiplier for not getting hit, too.
Score pips no longer expire! You can keep them all on the screen for as long as you like, but the multiplier now always decreases. It decreases faster the higher the multiplier, too, which can help incentivise that frenetic, chaotic movement that I was aiming for. They also spawn a lot more frequently, which means higher scores (which is always satisfying).
There are now extra life bonuses strewn through the levels, too. These have two purposes - they provide a bit of relief for newer players, which is absolutely necessary because this is quite a difficult game, but if you haven’t been hit, they give you a nice juicy bonus. Up to 32,000 extra points each, depending on your multiplier! That actually has an extra consequence - it means getting hit after the extra lives has spawned doesn’t really impact your score too much. Mistakes at the end of the battle (which tends to be a lot more difficult) are far less costly. Hooray!
The newer scoring system brings the game much closer to my vision, and makes playing for score a lot more interesting, and with less of a punishment for mistakes it’s also a lot less frustrating and more approachable. It’s not quite perfect, though, and I could really tweak it forever… I’m considering adding bonus points for letting score pips sit for longer - which would change the dynamic of gameplay a little! There’s also the possibility of doing the bullet -> score conversion on phase changes, too. Lots more score, but also extra use of that mechanic and more reason to stop shooting. There might be a little test of that mechanic for the alpha testers in a few weeks, but it’s definitely not a priority.
What’s next?
That was a tangent, huh? Tomorrow will be some more work on the triangle twins. I might carry on doing a deeper dive of existing mechanics on a Thursday, too. I have a little bit of space to write without being able to do work on the game, it could be a good thing. Let me know what you think!
I hope you enjoyed reading about my Polyfury progress. If you have any questions or thoughts, please feel free to leave a comment below. Thanks for reading, and maybe check out the demo: