Junkyard Bash

jacob-stenberg-junkyard-bash-poster.jpg

Role: Technical Game Designer

Development Time: 2 Weeks (2018)

Tools: Unreal Engine 4

Team: 9
 

Contributions:

  • Game Play Programming

  • Multiplayer Back-End Systems

  • Game Design

Music and SFX by Joakim Johansson

Trailer

About

Junkyard Bash is a physics based racing game for 1-4 people where players race through a scrappy junkyard full of traps and junk. 

This was the first project we did at Futuregames in two weeks where our theme was Physics and Goofiness. So we made a racing game with goofy characters and where the vehicles were all driven by physics. 

JunkyardBash_pitch2
JunkyardBash_pitch2

press to zoom
JunkyardBash_pitch4
JunkyardBash_pitch4

press to zoom
JunkyardBash_pitch3
JunkyardBash_pitch3

press to zoom
JunkyardBash_pitch2
JunkyardBash_pitch2

press to zoom
1/3
 

Game Play Scripting

I made all the Game Play Scripting such as Input Handling, the Camera and the different Physics-Based Vehicles that are made completely from Scratch. 

Junkyard Bash Play through

Physics Based Vehicles

Getting Custom Forward of Spinning Vehicle
Junkyard Bash - CustomForwardVector
Junkyard Bash - CustomForwardVector

press to zoom
Junkyard Bash - SetCockpitRotation
Junkyard Bash - SetCockpitRotation

press to zoom
Junkyard Bash - CustomForwardVector
Junkyard Bash - CustomForwardVector

press to zoom
1/2

(Hover Over for More)

Custom Forward Vector

Acceleration & Engine Braking

Acceleration & Engine Brake
Junkyard Bash - Accelerate and Engine Br
Junkyard Bash - Accelerate and Engine Br

press to zoom
Junkyard Bash - Accceleration
Junkyard Bash - Accceleration

press to zoom
Junkyard Bash - Engine Braking
Junkyard Bash - Engine Braking

press to zoom
Junkyard Bash - Accelerate and Engine Br
Junkyard Bash - Accelerate and Engine Br

press to zoom
1/3

(Hover Over for More)

Slope Tilting & Pitching

Slope Tilt & Pitch

Junkyard Bash - Camera Tilt
Junkyard Bash - Camera Tilt

press to zoom
Junkyard Bash - Tilt Code
Junkyard Bash - Tilt Code

press to zoom
Junkyard Bash - Tilt Calculation
Junkyard Bash - Tilt Calculation

press to zoom
Junkyard Bash - Camera Tilt
Junkyard Bash - Camera Tilt

press to zoom
1/4

(Hover Over for More)

Ground Friction
Junkyard Bash - Friction
Junkyard Bash - Friction

The Black Material represents Tar with alot of friction which gives the vehicle lesser acceleration

press to zoom
Junkyard Bash - GroundFrictionTrace
Junkyard Bash - GroundFrictionTrace

press to zoom
Junkyard Bash - Ground Friction Resistan
Junkyard Bash - Ground Friction Resistan

press to zoom
Junkyard Bash - Friction
Junkyard Bash - Friction

The Black Material represents Tar with alot of friction which gives the vehicle lesser acceleration

press to zoom
1/3

(Hover Over for More)

Boost, Jump, Bash and Drift
Junkyard Bash - Abilities
Junkyard Bash - Abilities

press to zoom
Junkyard Bash - Jump
Junkyard Bash - Jump

press to zoom
Junkyard Bash - BashAbility
Junkyard Bash - BashAbility

press to zoom
Junkyard Bash - Abilities
Junkyard Bash - Abilities

press to zoom
1/4

(Hover Over for More)

Surface Friction

Abilities

Camera

Camera Tilt and Height Adjustment
Junkyard Bash - Camera Tilt
Junkyard Bash - Camera Tilt

press to zoom
Junkyard Bash - CameraLowAltitudeAndRoll
Junkyard Bash - CameraLowAltitudeAndRoll

press to zoom
Junkyard Bash - LerpingTheCameraAndFXs
Junkyard Bash - LerpingTheCameraAndFXs

press to zoom
Junkyard Bash - Camera Tilt
Junkyard Bash - Camera Tilt

press to zoom
1/5

(Hover Over for More)

 

Back-End Scripting

PlayerController, GameMode & GameInstance

I made all the Back-End Scripting such as Character Select Screen, Checkpoints, State Machine and the different Multiplayer Setup with Spawning, setting the cameras, clearing up Player Controllers etc. 

You can play the game with 1-4 players but I made it comfortable to pickup and play so for example controller 1 and controller 4 could join a game and it would be a 2 player game with the split screen adjusted for the amount of players joined.

Junkyard Bash - PlayerController
Junkyard Bash - PlayerController

press to zoom
Junkyard Bash - GameMode
Junkyard Bash - GameMode

press to zoom
Junkyard Bash - GameInstance
Junkyard Bash - GameInstance

press to zoom
Junkyard Bash - PlayerController
Junkyard Bash - PlayerController

press to zoom
1/3

(Hover Over for More)

Character Select Screen

Junkyard Bash - Character Selection Scre
Junkyard Bash - Character Selection Scre

press to zoom
Junkyard Bash - Character Selection Scre
Junkyard Bash - Character Selection Scre

press to zoom
1/1
Character Selection
Character Selection

Spawning Players

Junkyard Bash - Spawning Players
Junkyard Bash - Spawning Players

press to zoom
Junkyard Bash - Spawning Players
Junkyard Bash - Spawning Players

press to zoom
1/1
Spawning Players
Spawning Players

States
 

I make good use of States to determine where in the game the player is, for example At Menu, At Sub Menu or At Race, depending on which the Input could execute different things. There is so much more I could write about the Back-End but for readabilities sake I'm gonna present the most notable below. 

Input & Use of States

Level Streaming
 

The game's level is split up into several sub levels so each designer and artist could work on different one without conflicts. The Main menu uses the same level to make the transition from Character Selection Screen to Race quick. 

After the Levels have been loaded it checks what State the Game is in, for example if it was AtIntroLogos it means the game has been just Booted, If it was Debugging then it will call Debugging and spawn the characters that's been chosen to debug with right away. 

 

Level Streaming