Disgruntled Customer
Project Overview
​Disgruntled Customer is a sandbox game where players run around as a customer who is dissatisfied with the store environment around them, causing them to go into a fit of rage. Your screams are able to hurl objects across the store.
Team Size: 6 Members
Roles: Team Lead, Game Designer, Programmer, 3D Artist and QA
Timeline: 4 Days
Tools Used: Unity, Maya, Substance Painter, Miro
Design Process
Project Goals
The challenge was to build a game around underexplored action in a sandbox-like environment
I wanted to create an experience where players get to utilize a unique mechanic and have fun in an open-ended environment
Picking a Mechanic
On the first day of this design challenge, we were tasked with deciding what type of mechanic we wanted to explore for the rest of the week. Our group generated as many ideas for under used mechanics as we could. We all shared our ideas and narrowed them down to our three best ideas.

Once we came up with our three ideas we then presented our ideas to the rest of the teams to garner feedback. After reviewing all of the feedback we received from the rest of the teams, we sat down to make a decision on what we were going to pursue. We all took a vote and the idea with the most votes would be the one to continue. The majority of people wanted to explore the mechanic of shouting or yelling to manipulate the environment, which is what we ended up going with.
Exploring the Mechanic
Since the team was now focused on a specific mechanic, I wanted to draw up ideas on how the player would interact with the mechanic, and also generate some ideas for what the ability of screaming could allow players to do within the game environment.
​
​Some of the ideas I came up with was having players click the left mouse button to produce an audible scream that would then be able to push objects around the map. To accomplish this, we used Unity's physics engine to handle object manipulation. I then designed a system where the more destructive and chaotic the player becomes, the more they can build up a rage bar which would then allow them to break heavier objects.

Programming Player Movement
The first mechanic I wanted to complete was getting the character controller up and running. I wanted the character control to feel light and agile so players can move quickly and jump over objects. The goal was to have a very responsive movement system that feels good to move around.
​
Players could utilize WASD to move in all directions and also use a spacebar to jump. When it comes to making a satisfying jump, I always increase the gravity and jump velocity in Unity, making the jumps feel more responsive and less floaty.
Creating the Scream Mechanic
Once the character controller was complete, it was time to work on the actual underexplored mechanic: screaming. I had a few ideas for how I wanted to tackle the actual scream. One of them was having the scream spawn a collider and add velocity to any objects that were hit with that collider. This allows me to have more control over how far objects can move and the distance the scream would project.
​
After some time conceptualizing this initial idea, I thought of a much faster and cheaper solution to have similar results. My new idea was having a spherical projectile come out of the player camera at a certain speed to knock over objects. Then all I would have to do is hide the mesh of the projectile.


Showcases the scream with projectile mesh rendering on (left) and off (right)
Creating the scream in this way allowed me to speed up development and allowed our team to play around with our unique mechanic on the first day of development. With our mechanic done so early, I could experiment with how we wanted it to interact with the environment.
​Creating a Test Environment
After finishing the scream mechanic, I put together a small test level to play around with how the scream interacts with objects. I showcased this test level the following day when we presented our current progress to the rest of the teams and the professors.



Enhancing the Scream
When playing around with the scream mechanic, I noticed it felt like the mechanic lacked the power and visual aid to help players aim the screams. Some things I decided to implement to help emphasize the power of the scream was adding camera shake every time the player screamed. This helped emphasize the power and made screaming a more satisfying mechanic.


Showcases the difference between no camera shake (left) and camera shake (right)
I also added a particle system that emphasized the scream's range. The particle system I developed was a simple FX ring that would fly forwards every time the player would click to scream. This helped players identify how much range the scream had, and also made the scream a lot more intuitive to use.


Showcases the scream with no effects (left) and particle effect (right)
Unexpected Enjoyment
When doing internal playtesting, since I decided to stick with our projectile scream system, I discovered an unaccounted for side effect. Since the projectile has collision, spawns where the player's camera is, and is moving at high speeds, if players look down and scream they boost themselves upwards.
​
​
I realized this was a really enjoyable use of the mechanic, so I decided to keep it within our game. When it came down to the first round of playtesting, one of the biggest compliments testers gave about our game was the "scream jump" as we called it. Playtesters found it extremely engaging to use to get to higher up places on our map such as high shelves. After seeing this positive player feedback for this unexpected mechanic, it was confirmed that it was going to stay in the final game.