Scoring system is one of the most fundamental aspect of any SHMUP games. The main objective is always surviving and progressing to fight the boss like in the most games. But achieving the highest score possible feels like a intriguing challenge.
Making a balanced and fun scoring system is a bit complex sometimes. Most SHMUPs have their own scoring system. DoDonPachi, Touhou, Geometry Wars and Ikaruga have a different scoring system.
There are many unique scoring addition that you can observe. Grazing is one example. Grazing is when you almost get hit by an enemy bullet, much like a near-miss. One of my favorite SHMUP, Touhou has this as one of the major scoring factor. This encourages the players to play aggresively. And this really fits well with it’s bullet pattern style that fills the whole screen with bullets. As a player I felt this is a great scoring system addition.
I’ve considered to add grazing before. But I realize it does not fits well with my gameplay style. First, Solar Ascension is not one-dimensional shooting SHMUP. Grazing needs you to focus complete on your movement. It will be too hard for players to graze while maintaining their firing angle. Second, Solar Ascension is not bullet-curtain styled SHMUP. Bullet curtain is when the enemy bullets fills the whole f*cking screen with a very slow movement. It’s much more easier to graze in this situation. But in Solar Ascension, your screen wouldn’t be covered in bullets. But the enemy bullets has a faster speed overall. I designed them this way because in Solar Ascension the players can actually move freely in the map, not only move freely in the screen. If I were applying the bullet-curtain style, players would just camp in the borders circling around the map.
So what I decided to implement is a quite simple scoring system. I borrowed some of DoDonPachi scoring system. In the game, killing enemies fills the Combo bar based by how strong the enemy you just destroyed is. The larger your combo is, the more score you get when killing another enemy.
So in Solar Ascension, enemies has their fixed ‘value’. This value is used in 2 mechanism, the first one is when spawning groups of enemies. The system calculates the enemy values to prevent 5 strong enemies spawning in a same group. The second use of these ‘values’ is for the scoring system. Every time you killed an enemy, the value of that enemy is added to the variable in the memory. If the variable value has reached a fixed amount, you gain a chain-multiplier. Further enemies that got killed were multiplied by this chain-multiplier. When the player got hit, they lost 33% of their current multiplier, with a minimal of 3-chain-multiplier lost. When the player got destroyed, the multiplier is set to 0. This is designed to make it rewarding for players to evade the bullets and not getting hit.
Another thing I’ve implemented is a simple multiplier on what wave you’re on. So if you’re on wave 16 you’ll get 16X multiplier. This multiplier will be added with the previous multiplier, chain-multiplier. This is designed to make survival at later levels more rewarding.