BOOP
Project Summary
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 DesignerTime
2 weeksTeam
7 peopleFavourite Snack
KitKat
Genre
Party ArenaEngine
Unreal 4Version Control
Perforce"Code Language"
Blueprints
My Contributions
Hazard Behaviour
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.
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
"Solution"
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
Solution
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
Solution
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
Solution
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.