top of page

Andrew Vogt
Technical Designer

Backyard Brawl

A party game made by a team of 9 in Unity 6, embodying the chaos of rowdy kids out for themselves.

Backyard Brawl

Prelude

​​​

Backyard brawl is a game designed similarly to Mario Party minigames, where up to four players compete in a free for all full of chaotic elements. This project started as a smaller prototype for Michigan State University's second Game Design and Development Minor course. Picked as one of just five games that would continue to the next course, I was put on this project in May 2024. For the summer and during the following semester, our team focused heavily on getting this game ready for online play, complete with new game modes, mechanics, and features.

​

On this project were two programmers, four designers, and three artists. We originally set out to create three game modes on top of the 'trick or treat' game mode made for the previous class. Halfway through the semester, we realized in order to have the quality we needed, we could only focus on one additional game mode, on top of other features. The two game modes are as such: 'Candy Collectathon' where each player competes to gather as much candy as possible in two minutes, dodging traffic and each other's attacks to deposit in a central cauldron or have their candy stolen by their rivals. And 'Laserball' where instead of candy, players gather tickets from arcade machines, and once enough are deposited into the Laserball vending machine, they race to score a goal.

Accomplishments

​

  1. Worked with unity netcode

  2. Designed and implemented various game hazards

    • Snow pile

    • Ice patch

    • Pit

    • Cannon

    • Snake

    • Bumper (+ variants)

  3. Designed and implemented special effects using unity’s shader graph and vfx graph

    • Snow

    • Mesh trail

    • Ball trail

  4. Designed and implemented level blockouts

  5. Communicated with team members to accomplish tasks

  6. Documented design goals early in the process

  7. Made features easily adjustable in unity inspector for other team members

Hazards

Hazards list.png

​​My main contributions to Backyard Brawl were game hazards and special effects. Game hazards for this game are designed to either be placed on or spawn around each level randomly, giving each player a randomize sense of danger.

​

I created the spreadsheet that the team would use throughout development to add design elements, such as hazards (some shown here), and track how far along the development process we were. Eventually, people stopped utilizing sheets as we realized how ambitious our designs may be for a student project and cut down significantly to where we could keep track of progress week by week instead. A couple of the hazards I worked on are explained below.

Rattlesnake

One hazard I worked on was the rattlesnake. This snake would be able to lunge at a player, stunning them on a hit. The logic of this was intuitive for me to implement: just a simple check on how far away the player is, and then if they're in range lerp from the grounded position to the determined destination along the same vector but farther than the player. A unique challenge I ran into, however, was that since we needed this to be compatible with online play, I had to learn enough of Unity's Netcode standards to be able to make sure it behaved the same for all players, and that it was able to check all players in the scene for the closest one. Once I got the snake working properly, however, I needed to focus on other tasks and play testing wouldn't be for a couple months, so I never adjusted the values to resemble how it would move during real play.

SnakeJump.gif
Bumper

Working on the bumper, originally meant for our soccer game mode, was a breath of fresh air to me. Simple - elegant - I was tasked with making a perfectly round game object repel players and balls on collision. In order to make this feel consistent with other stunning effects, such as the rattlesnake or the already implemented kick, I chose to copy and alter the code used in the player kick function of our game. This had the unintended side effect of only pushing the player in one direction. In order to fix this issue, I had to rotate the game object to look at the player it was stunning, then rotate back to it's original position once the stun was calculation. This then brought on a new bug where players would get launched up vertically as well as to the desired direction, thankfully this was a simple fix of ignoring the y value of rotation when applying the stun.

Bumper.gif

Special Effects

SnowEffect.gif

Along with developing hazards for the game, I also took it upon myself to create some unique special effects, even though they are not what I originally expected to do. For the more complex of these, I adapted designs from Gabriel Aguiar Prod. on Youtube. Specifically his Character Trail and Snow Interactive Effect tutorials.

​

For the ball trail, I learned how to manipulate the line renderer component in Unity through scripting, and changed the color and opacity of the line to the new player owner's color each time it was picked up, and disabled it until it is kicked.

​

Of these approaches, adapting another person's design for our own project proved the most troublesome, but ultimately they turned out great with some fine tuning, and those tutorials taught me more about how to use unity's shader graphs than I've known before, and I am grateful for the knowledge in case I need to communicate with artists or demonstrate simple ideas in engine.

MeshTrail.gif
2024-12-08 12-21-00.gif

Final Remarks

​

This is the first time I've ever been a part of a project of this size, either in length of development or in number of team members. It's truly been the greatest learning journey I've ever embarked on, and I hold each of the other members in a permanent place in my heart and mind. Throughout the months of development, I have learned how to properly and effectively communicate with a team. This ranges from organizing design documentation, to requesting help when others are better suited for a task, to simply being someone for others to lean on and joke with, encouraging us all to push forward with our collective passion. Hopefully, I have conveyed the sheer joy I receive from problem solving and putting ideas to action throughout this description. There are plenty more features in the game I could go over, but these are my personal highlights since they taught me the most both with Unity, and with what I like to accomplish in game development.

Score Multiplier

Utilizing my newly acquired skill of using Unity's netcode, I was tasked with implementing a score multiplier system. This system needed a UI element of the player's respective color and it needed to adjust the value of points gained based on the number of deposits of candy into the cauldron in a short time frame. Getting the basic functionality was simple enough: I found a formula using Desmos which had a suitable curve, then hard coded the math to determine the integer of points from number of candies deposited within a second of each other. Hooking up a UI element to showcase the multiplier number was also simple, although I had to converse back and forth with our UI artists to make sure it appeared within the style desired.

​

I didn't like the fact that I had hard coded a formula, since this meant adjusting based on player feedback would require going back into the script. I wanted a simple table in the unity inspector where designers could place what is effectively the x and y values of points on a graph, so that at x number of candies, the points would multiply by y. In order to accomplish this, I spent eight hours teaching myself how to make a custom editor in unity, which was entirely worth it as the new system was simpler to understand and saved time later on when needing to adjust from playtesting.

2024-12-08 12-21-00_2.gif
Screenshot 2024-12-08 122752.png
bottom of page