Dance, Esquelito, Dance!

Esquelito’s Scoring System

By Staton Otto - Programming Director, Enemy & Shader Programmer

 

The objective of the scoring system in Esquelito is to provide a reason to play the game more than once.  It’s really boring to just play a game repeatedly without an actual reason to replay the game other than just liking the game. 

The scoring system needs to be adaptable to each individual level and robust enough that it can handle changes in the scene without manual edits for each new object.  I endeavored to find a unique element that I could grab from each object so we could avoid extra development steps. Without this, we would manually need to setup a unique id for each object. Fortunately, each object has a unique instance id so I can grab the unique id from each object and place it into the manager for that object type.  This allows me to track the state changes for these objects reliably.  

Each set of objects (Enemies, Collectables) have managers that keep a record of their objects’ state(their states just whether they were cured or collected) and since these managers are global nodes, I need to manage when they will be reset which is something I needed for the functionality.  This provides enough maintainability and flexibility for what we need for SGX since having a permanent record of these scores would be pointless when we are switching between users.  After SGX, I am going to redesign the system to track the progress permanently and keep a record of completed run progress. 

I needed a method to display this progress succinctly since it could only take up space in the top right of the screen. Hence, I needed an equation that takes all these stats and push them into a single value. This equation would need to balance the progress of the user from start to finish.  It also needed to be challenging and rewarding.  I formulated a couple of equations that could be balanced so the player was challenged but didn’t feel punished if they didn’t do well on their first run.  The score is based on the percentage of on-beat actions, damage received by the player, collected collectables, and the number of enemies cured.  I reset the system after the player returns to the main menu to better show off the system at SGX and I plan to rework this system after SGX to provide a progress saving feature for these scores. 

hB  = beats hit 
tB = total beats 
tD = total damage taken 
cC = collected collectables 
tC = total collectables 
cE = cured enemies 
tE  = total enemies

Next
Next

User Interface Design