I decided to do a wrap up post regarding the current state of the score system as it’s the system I’ve worked on the most and I’m pretty proud of it. It is a little rough around the edges still and there is plenty of ways it can be expanded but it is functional and suits our games needs.
Level End Screen
This addition came in the final few weeks of the game and was created to allow the player to have a breakdown of their score so they knew where they earned the most score, where they lost it and in the future, see the max multiplier, max previous score as well as total score and ranking against other players. The score entries appear over time with the value part incrementing, similar to how the ingame score displays however each “entry” can be skipped/spend up by tapping the screen. The final ranking (PASS/FAIL) is determined currently by the script that triggers the end level which is not entirely ideal but it can be expanded upon in the future instead to give a classic score rating of between S to F with S being highest.
The font used is “bump IT UP” available under Creative Commons here.
A recent change we made (more to fix a “bug”) is that score is now only granted on enemy death rather than when the enemy GameObject is destroyed. This allows us to safely despawn enemies without them causing the player to gain score. This was done via the modification of the Health script to use a new Property HealthValue and in its set method, checks if the GameObject has a score component and if so, adds the spawn as required. In the future, this will be changed so the Score component handles sending the ScoreData to the ScoreManager.