BOOP

Project Summary

BOOP is a multiplayer party game in which you use gravity-defying powers to knock your opponents into deadly traps

Role: Game Designer & Product Owner
Date: May - June 2020
Time:  7 Weeks
Team Size:  10 People (2 Designers)

Genre : Action Adventure
Engine:  Unity
Version Control:  Perforce
Code Language:  C#

  • Role
    Scripter & Gameplay Designer

  • Time
    2 weeks

  • Team
    7 people

  • Favourite Snack
    KitKat

  • Genre
    Party Arena

  • Engine
    Unreal 4

  • Version Control
    Perforce

  • "Code Language"
    Blueprints

My Contributions

Blueprint Scripting
Character Movement
Hazard Behaviour
Gameplay Design
Character Movement
Core Gameplay

Game Overview

Grabbing

You can use your gravity defying device to grab onto thin air, allowing you to swing around it and change the direction of your momentum, perhaps saving you from certain death

Shockwave

Your only weapon to fight your enemies with is a shockwave, which launches them away from you, hopefully into a hazard

Problem Solving

Placeholder :)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Read More
Read Less
Show Script
Hide Script

Information

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Problem

Players finding it frustrating that the spike ball gets stuck everywhere

"Solution"

Change the spike ball to a magnet that is only activated when you press a button
Read More
Read Less
Show Script

Spikeball

Initially the magnet was designed as a spiky ball, meant to get stuck on whatever surfaces it touches, to allow the player to swing themselves around it. Quickly after testing we found that players found it incredibly frustrating to have it get stuck when they didn't want it to. This triggered the decision to turn the spiky ball into an activated magnet instead.

With the new magnet, players would no longer get stuck to surfaces when not intended. However, they also couldnt stick to a surface when they tried to. The window for grabbing on to a surface with the magnet was incredibly slim, and that made the skill requirement very high.

As a result, we tried changing the collision box, and adding coyote time to the grab, but nothing seemed to work properly.


The story continues below

Problem

Players have difficulty attaching to anything due to high skill requirement
NEW

Solution

Change the magnet to a gravity defying device that could grab onto thin air
Read More
Read Less
Show Script

Magnet

After trying out all kinds of solutions, during a debug session where we had disabled the contact requirement for the magnet, allowing it to grab wherever you pressed the button, we found that it actually made the game a lot more fun to play. So we decided to go ahead and implement it in the game the way it was.

With the unrestricted magnet arm, we tested the game again and found that players also found the game more fun with the free movement. We realized that as the game is focused on launching enemies into hazards, the skill requirement of the magnet conflicted with the player's goals.

And that marks the end of this story about how what seems to be an improvement to a mechanic turns out to be a regression. But you learn from your mistakes, and what matters is the final product and what you learned along the way.

Problem

Unable to use OnLanded function to check if the player has landed

Solution

Implement custom check for if the character velocity is nearly 0
Read More
Read Less
Show Script

Landing

The character controller we had for this game didn't have the best friendship with Unreal Engine 4. We had a ton of issues getting it to work the way we wanted it to, from components not working together to functions not being available. But in the end it seems to have worked out alright.

One decision we made was to detach the character controller component from the actual player character, so the character controller is only use to get inputs, whereas the character itself is the one moving around. This worked fine until we realized that we couldn't reset our jump using the OnLanded function.

Since the character controller is static, the OnLanded function would never be called. This prompted the decision to make a custom solution in which we check if the player velocity is close to 0. It's not a perfect solution, but it worked.

Problem

Using Grab stops momentum, which makes the Shockwave less impactful

Solution

Release Grab when Shockwaved, and disable it for a short period
Read More
Read Less
Show Script

Shockwave

As the grab was made to be able to grab onto thin air, this presented the problem of allowing players to counter the Boop, which is an ability with a cooldown, with the Grab, which is an ability without a cooldown. This created a stalemate situation where it would be very difficult to kill other players.

On top of that, players couldn't affect other players that were already using Grab. Which created the awful playstyle of just going to one corner and hiding until the other players had killed each other, as nobody could move the person who was just holding Grab.

The solution to both of these problems, was to force the players affected by the shockwave to release their Grab, and set a cooldown on it, so that they couldn't instantly counter the shockwave by Grabbing again.