StagedFright

In StagedFright, you play as Mallow, a ghost entertainer. The players goal is to make money and become a world famous scarer by spooking the inhabitants of the house in a comedic fashion. As such the core gameplay loop encourages chaining scares together with both crowd feedback, providing a dash of horror and comedy! 

Gameplay Video

Skills Showcased


Turning Horror to Comedy

The core of StagedFright is the concept of turning a horror game into a comedy game by shifting the perspective of the player to the one doing the scaring. Screams are met by a ghostly chorus of laughter along with screams. To make this shift feel natural, a number of decisions were made.

First, we built every scare with a focus on having some sort of humorous component. Was it funny because it was violent? Was it funny cause it was absurd? Was it somewhere between the two? This was extremely important to get right, as the gameplay loop hinged on the entertainment value of the scares. Getting a large chain scare off on an unsuspecting victim simply isn't fun if game doesn't provide that visual and auditorial feedback.

To accomplish this, we created multiple systems to deliver that feedback. First, we implemented a crowd system that responds to the players actions. For example, when the player is taking too long to scare the residents, the crowd will boo. But when the player gets more points, the crowd will become progressively louder and louder. The second system is the NPC AI. The NPC's have a massive library of sounds they can draw from. Based on their state, they will scream, whimper, or argue. This reinforces scare chains, while punishing the player for taking too long. 

Creating emergant gameplay

The Possession System

In order for the game to function, I had to build a robust system of possessable objects that could be used to manipulate and scare the NPCs, each with their own distinct flair. Each possessable object needs to have a distinct use that can be combined with other objects to create chains of scares. In addition, we wanted players to slowly learn how each object works on their own through trial and error, which creates a form of exploration as they learn how each object interacts not just with the NPCs, but also with the other possessable objects. We settled on a total of five types of possessable objects, with an array of dials we could turn on each.

The Crowd


The NPCs

The NPCs have eight distinct states, with four to control the phases of being scared. This was necessary because we wanted the AI to reset to the start of the Scared tree when another object scared them. Overall, the behavior tree is stable, and works effectively. However, If I could redo the behavior tree, I would control states with integers instead of Booleans, since it reduces visual clutter and is much easier to manage. 

Default State: The NPC will always choose a location to walk to, then wait a short amount of time before moving again. In addition, there is a chance for the AI to randomly choose an object in the room to investigate, while will activate the investigation tree

Investigation State: This state is triggered by an invesitagatable object being used in the same room as the NPC. Following this trigger, the AI would walk up to the object, play an animation, and wait for a decent amount of time. This provided players with an easy way to control the actions of an NPC, setting it up for a big chain of scares.

Attacked State: In this state, the NPC will be knocked down before transitioning into the Scared state. The reason why this is it's own state is because the animation blend state required a variable to be set. 

Scared State: In this state, the NPC lets out a scream, and then goes to the Running state. This is it's own state so it's easy to transition to if the NPC is scared while running.

Running State: The NPC chooses a new room somewhere in the house, and runs away towards it. It then transisitions to the Calming down state.

Calming State: Here the NPC cowers in place for a short while. Afterwards the score accumulated from scaring this specific NPC is multiplied by X*0.5 where X is the number of times scared before calming down. Afterwards, the NPC reverts to it's default state. 

Argue State: This is a unique state triggered by knocking down an NPC with a door while another NPC is on the other side. This is a complex function that is handled by the door itself. The NPCs remain in place for a long time playing an audio clip. Afterwards they reset to their default state. The unique aspect of this state is it allows the player to both gain score and lock two NPC's in place close together. While this is the hardest and least common state, it is by far the most rewarding of them to achieve.