Clean My BFF's BF
"You wake up with your BFF's BF next to your bed, dead. What do you do?"
Clean My BFF's BF
"You wake up with your BFF's BF next to your bed, dead. What do you do?"
# of Devs: 3
Duration: 3 months
Engine: Unreal Engine 5
Platform: Windows
Roles: Programmer, UI Programmer, UI Designer, Texture Artist
Clean My BFFs BF is a class project I'm working on with two other peers. The game takes place one day in Tiffany's apartment, where she wakes up with her best friend's boyfriend in bed with her. Tiffany, like any sensible person, handles this situation with the upmost care and respect...
....and kills him in the heat of the moment. Afterwards, she gets a text from her BFF telling her she'll arrive at her apartment in 6 minutes. Will Tiffany be able to cover up the crime scene in time?
During the development process, I took inspiration from games like Yandere Simulator and Cryptid Click. As the programmer and UI designer of the team, I was responsible for programming the mechanics, checklist, and timer the player sees within the game as well as designing the UI pop-ups the player will encounter throughout the game. The funny thing about writing code is that it doesn't always work on the first try, and I ran into my fair share of issues while working on this project. Here are some issues I ran into and how I fixed it!
There's a UI widget telling the player what key to press to hold the mop, but nothing tells them how to drop it. This would cause confusion and have the player hold on to an item for longer than they needed to.
I created a separate widget to appear and tell the player what key they needed to press to drop the mop. Using a "Do Once" script, the widget will only appear and disappear once.
Through several rounds of playtesting, a common issue that came up was players not knowing what order to do tasks and where they could grab a body part once it's been cut up, creating unnecessary confusion for our testers.
List of tasks has been redone as a way to guide the player through all the steps they need to do. Through adding a crosshair, the player can know where they can grab the body parts post-chopping. I'm also developing the ability for the crosshair to close into a fist when the player is currently grabbing a body part.
While I wanted players to actively search the apartment to figure out what to do, there were several cases of players immediately running out of the bedroom and losing track of the body, overwhelming themselves before they could truly start the game.
To prevent this from happening, the door leading out of the bedroom is locked and tasks won't appear until the body is cut up.
The flip phone tells the player what to do, but doesn't inform the player what's already been accomplished. This can lead to the player getting lost if they don't internally keep track of everything they've done. With a time limit above their heads, this confusion isn't helped at all.
I created a series of custom events that trigger when certain conditions are completed and increase the alpha values of the lines to 1. Each line is triggered thanks to blueprint interfaces and custom events. A counter increments each time a task is completed, leading to the win condition being achieved once all tasks are complete.
Slashes do help communicating if something has been accomplished, but not how much progress the player has made in completing the game. To fix this, counters have been added to show progress a player has made to mark a task off of their list.
I implemented a system where blood stains would randomly spawn throughout the apartment, which unfortunately led to cases like this. Gameplay functions as intended, but it doesn't look polished.
By changing the "Collision Handling Overide" to avoid spawning actors if they overlap each other, we can prevent the blood stains from overlapping!
I've also developed a system where each blood actor can spawn at a set number of locations instead of any actor spawning at any location in the map and potentially, on top of other actors.