I wanted the Npc’s to maintain the aesthetic and unserious tone of the game. The different customers that roam the café have a few different states they transition between depending on where they are.
Sitting state: when the npc spawns in, they have a random coffee order and will attempt to find a random seat in the café.
InjuredState: for when the Npcs were knocked over by the player, triggering certain animations.
Wander state: If they are knocked over by the player, they will wander the café randomly until their coffee order is delivered.
Leaving state: If the Npc’s order is completed, they will leave the café and the player will earn credits based on how quickly they completed the order. If the Npc is knocked over too many times, they will get frustrated and leave the café, and the player will lose out on their reward.
The first iteration of the Npcs functioned as intended, but didn't have much interaction with the player outside of completing orders. To help with this issue, I designed the Npcs to be dynamic obstacles as well as objectives for the player. To achieve this, I added the wander state for when the Npc's were knocked over. This also added an extra layer of life to the level, which was one of the main criticisms after some initial playtests.
Once I was happy with the core loop of the Npcs, we did another round of playtests for feedback. One of the aspects players had repeatedly enjoyed was knocking into the Npcs and laughing at them falling over. We had a meeting to discuss how we could enhance that experience for players and also adding another strategical layer to gameplay. This is when I came up with the throwing mechanic.
One of the aspects players had repeatedly enjoyed was knocking into the Npcs and laughing at them falling over. We had a meeting to discuss how we could enhance that experience for players and also adding another strategical layer to gameplay. This is when I came up with the throwing mechanic.
Throwing is a simple addition to the controls that lets players interact with the environment in a new way. The player can hold down the throw button to throw further, allowing them to control the distance of the throw. Keeping with one of the main design pillars of CoffeeBot, that everything affected by physics should be interactable, the player can throw any object from chairs, tables, coffees or even Npcs. This mechanic was added in response to feedback to initial playtests, where testers mentioned they enjoyed knocking over Npcs. It can also be used in a pinch to complete orders from a distance if the player is running out of time. Throwing added a comedic value for players looking to mess with the environment, while also adding a strategic element to the gameplay.
The throwing speed is able to be increased via the “upgrades” menu, and the tutorial has a faster throwing speed than what the player starts with to give them a mini goal to work towards.
To give the player something to work towards that wasn't just "make as much money as possible", I added an upgrades system. The player can purchase upgrades at the end of every day, with the credits they've earned. This was to make the gameplay loop less repetitive and gives a smaller sub goal for the player to work towards.
I started off with three basic upgrades.
Speed: This affected the top speed and acceleration of the player.
Handling: This affected the turn speed of the player.
Throw: The maximum throw distance of the player.
While these were initially functional, I wanted to think of other ways to enhance the gameplay experience, that wasn't just tweaking various numbers. I turned my focus away from the player to come up with ways the café itself could be upgraded. After iterating with some ideas i added extra storage capacity upgrade, which made storing ingredients more efficient, and the "insta-stock" upgrade which would fill a storage container to its maximum capacity after a single button press, so the player wouldn't have to continually press the same button. These upgrades however, were more quality of life changes, and I still wanted a visually and mechanically impactful change, something the player could purchase once and have for the rest of the playthrough. The final upgrades I added were:
Gumball Machine: The gumball machine when activated distracts certain Npcs for a few seconds, giving the player more breathing room if the Café is getting too busy
Dash: The dash is a short boost of speed the player can use in a pinch to deliver an order in time.
Robo-Mop: The robo-mop is an upgrade of the mop, which enables automatic cleaning, saving the player from having to spend time to clean a mess themselves. The robo-mop detects a spill when it happens, finds the spill and then returns to its original position.