Deep Dive: Difficulty Balancing
Balancing for Very Very Valet was tricky! This was our first time designing a “party” game that can have 1-4 players, also of likely very different skill levels / familiarity with games. Let's talk about how we approached this!
Our goals/philosophy:
⭐It's better to be a bit too easy than too hard.
⭐Levels should have some ebb-and-flow / drama
⭐Scales from 1-4 players
⭐Not the same experience every time (party games are meant to be replayed with different groups of people!)
We decided to structure our levels as "scripts" of events that do things like:
✅ Queue up customers to enter
✅ Queue up pre-parked customers to leave the building
✅ Wait for conditions to be met
✅ Signal phase changes to the players
🆕Set the "Action Target"
What is this "action target"?!? It's basically a way of authoring "how busy" we want the players to be. It's roughly in units of "active timers the players need to deal with".
So, a value of 1 means: "about 1 customer is actively waiting".
While the game is running a "Game Director" is constantly calculating the current, live "action" value, and comparing it to the target action value from the level sequence. The live value is "normalized" based on number of players.
The Level Director, based on thresholds, can:
IF players are not busy enough
➡ Spawn new customers
➡ Release pre-parked customers
➡ Release customers from the building early
IF players are too busy:
➡ Prevent customers from exiting the building
➡ Delay spawns
Sometimes the level director was a little too reactive! It would see that the players weren't busy enough, so it would spawn a new customer... juuuust before two other customers came out of the building - now the players are overwhelmed! Yikes!
We solved this by adding some cooldowns, as well as letting the Director "see the future" by looking at customers in the building, and use that to predict the action value in the future, and take that into account as well.
That's about it for this topic! Luckily our game seems to be pretty resilient to difficulty balancing, most of the "fun" has come from the level layouts themselves! If any other developers have tackled a similar problem, we'd love to hear about it!