The Game

Super Bash Goats is a local multiplayer brawler game, where you play as goats in a mountainous landscape. Make a bloody mess by bashing your friends into rocks, to be the last goat standing!

Development started as a 2-week school project and continued as a side project.

Platform

PC

Engine

Unreal Engine

Language

Blueprints

Development Time

9 months

Team Size

4 x Designers

4 x 3D Artists

1 x Sound Effects

1 x Music

Over 3000 downloads on itch.io

Platform

Engine

Language

Development Time

Team Size

PC

Unreal Engine

Blueprints

8 months

4 x Designers

4 x 3D Artists

My role

Menu-system

UI-implementation

Game Mode

Death & Respawn-system

Sound & Particles-implementation

I was responsible for scripting menus, implementing UI and the rules of the game, such as player score, death and respawning.

I also created a system that allowed different sounds and particles to be played depending on what surface a player is standing on.

Menus

Main Menu

Since Unreal didn’t support navigating UI elements with a gamepad we had to make our own system. This was accomplished by making an array of images and changing the index when up or down is pressed on the gamepad, each button has an animation to show that it’s currently selected.

The menu consists of three locations in the level. Each button pressed sets the state of the menu and the camera moves to the location of that menu section.

Pause Menu

A simple pause menu that can quit back to the main menu or show the controls.

Join Game

The game supports 2-4 players. In this section of the menu, each player must press “A” to join in, then again to be ready and the game can’t be started until at least two players are ready.

Player UI

UI for each player is created and positioned based on how many players joined. I add the UI component for each player and increment the current column and use the value for the next player. The UI widget component does the rest based on the spacing and padding-values assigned.

Player Spawning

When spawning a new goat we have full control over which player controller it belongs to as well as what materials it should have and at which location it should spawn.

Since we can’t detect how many gamepads are plugged in, we always create 4 and then only use them if we detect that a player has joined. This works no matter which player controller is used. Even if there are 4 gamepads plugged in, you can still use 2 and 4, and it will function the same.

Sound & Particles

We have three different surfaces in the game and wanted sound and particle effects to match the current surface the player is walking on. This was accomplished by raycasting towards the ground and checking what surface type was hit and sending that information to functions that control the particle system and audio component.