Kill Your Friends VR

Kill Your Friends VR is a 1 versus 1, multiplayer Virtual Reality game where one player on keyboard and mouse plays the killer and one player in a VR headset plays the survivor. The survivor must locate 3 MacGuffins to win while avoiding the killer’s grasp. The killer must attack the survivor 3 times to win.

At the University of Central Florida’s game jam, hosted by the Game Dev Knights, I was a part of a small team that created Kill Your Friends VR. Over the weekend, I was responsible for designing, scripting, and implementing all combat within our game. This included both the survivor’s weapon against the killer, the flashlight, and the killer’s melee attack. In the final quarter of the project, we began to experience many showstopping bugs which were making our game unplayable. I was able to successfully debug about 8 different scripts across our tech team in a short amount of time and reimplement them within our project before the deadline.

Role: Technical Designer

Project Details:
• Team Size: 7
• Created in 48 Hours at the Game Dev Knights’ Spooky Game Jam
• Game Engine: Unity

Highlighted Contributions:
• Designed and Scripted Combat for the Survivor and Killer
• Efficiently Debugged Numerous Scripts in the Final Hours of the Project
• Designed and Scripted Menu Multiplayer “Ready Check”
• Implemented Animations and Sound

Combat

My primary responsibility on Kill Your Friends VR was to create the interaction between both players. This interaction takes the form of combat within our game. It was my responsibility to design, script, and implement the tools that both the Survivor and the Killer would use to help themselves win against the other player.

Survivor:

For the player in the virtual reality headset, I decided to give them access to a multi-functional flashlight. Besides lighting up darker area within the level, the flashlight also acts as a weapon for the Survivor. By pressing the trigger on the vr controller, the player is able to stun the Killer for a brief duration. The player must be within a close range in order to activate it. The beam briefly flashes brighter and a distinctive sound it played, signaling the activation of the ability. The flashlight beam remains dim for a moderate duration in order to recharge.

Killer:

For the player on keyboard and mouse, I decided to give them access to a swift, melee attack and a special ability. The melee attack is fairly straight forward, but requires the player to “commit” and stop moving when activated. This strikes a balance with the player’s “ghostly” ability to move at twice the speed and through structures for a brief duration. This ability allows the Killer to position themselves within a building to surprise the player, or allows them to briefly close the gap between the Killer and the Survivor.

Debugging

In the last quarter of the project, during the integration of all of our work into a single scene, we quickly discovered that although our individual scripts were working within our own separate test scenes, they were not working within the main level. I decided to take the task upon myself to debug about 8 different scripts and reimplement everything within the level personally.

C# Scripting:

Debugging “Game Jam Code” from 3 different authors proved to be quite the challenge. Time is never an abundant resource at game jams. In my experience, code is commonly rushed at the event, depending on the scope of the game pitched. Kill Your Friends VR was no exception. I found common mistakes within everyone’s code, including my own. I corrected everything from spelling errors and missing semicolons, to logic within “if statements,” and references to other scripts. My extensive experience working with C# and its application within Unity allowed me to correct all showstopping bugs present within the final build of Kill Your Friends VR.

Integration:

After gaining a firm understanding of all scripts within our project, integration was fairly straightforward. I found that some scripts were not set up properly on our Survivor Game Object and references to components not receiving their correct inputs. Correcting those took little time, but the remainder of it was spent getting multiplayer functionality working with a single computer. Both player screens were not outputting to the correct displays and therefore player input was unresponsive because of it. With a bit of additional time spent, I was able to resolve the issue, and present our game at the end of the event.