top of page

Breakneck

Menushot.png

Project Type: â€‹

Senior Thesis

​

Software:

Unreal Engine

​

Languages:

Blueprinting

 

Roles:

Lead Programmer

Gameplay Designer 

Breakneck Is A Zero-G Racing Game Made Over Half A Year With A Team Of Six People - Of Which I Was The Only Dedicated Programmer.

Overview: â€‹

Breakneck is an arcade-style, zero-gravity racing game in which you take on the role of Cyan, a competitor in the Breakneck Championships, as you speed through a stunningly futuristic, solarpunk metropolis.

Hover System: â€‹

I designed a system that allows the player to hover over the track, taking into account factors such as lift force, drag force, spring force, and damping force. This allows the player to feel like they are dynamically floating above the track rather than gliding evenly across it. By carefully balancing these forces, I was able to create a physics system that is responsive and intuitive, providing the player with an engaging and exciting racing experience.

​

​

The system operates by attaching Blueprint Components to the player Blueprint, with each component responsible for a particular aspect of the hovering system. These components work in tandem, the forces generated by each component combining to create a stable hovering effect. This approach allows for precise control over each force and facilitates easier debugging and modification. The end result is a polished and finely-tuned hovering system that allows the player to navigate the track seamlessly.

Hover Components Variables
Hover Components
Spring System

The spring effect functions by measuring the distance between the Parent Vehicle and the floor and adjusting its effects based on the distance between the Parent Vehicle and the desired hovering distance.

Damper

The dampener operates by detecting the variance between the current height above the floor and the desired height above the floor. When this variance is low, the Dampener absorbs energy from the system, preventing the player from overshooting the desired hovering distance. Without the Dampener, the Spring Force would lack opposition, resulting in a constantly oscillating hovering effect that would be difficult for the player to control.

Finally the desired force is applied to the parent vehicle and the relevant information is cycled to the next tick.

 

This system is a modified version of the Unain’s tutorial on hovering vehicles and has been changed to fit the needs of the project.

Force Application

Variable Gravity: â€‹

While the hovering system works with standard Unreal 3 Gravity an alternative gravity system was developed to function in conjunction with the hovering system to deliver on the design values of a Zero-G Racer. The alternative gravity system was developed specifically to meet the needs of the Hovering System and enable the player to achieve the desired effect. 

AltGrav.PNG

The system operates by first attempting to detect a surface beneath the player, and if successful, orienting the gravity force based on the surface normal. During playtesting, we discovered that previous gravity systems implemented were ineffective at preventing the player from flying off the track at high speeds, particularly when the track curved away from the player's trajectory. To address this issue, we developed a new gravity system that increases gravity as the player moves further away from the desired hover distance. When used in conjunction with the Hovering System, this new gravity system effectively anchors the player to the track while still allowing for hovering.

Racing AI Navigation:

As part of this project, I developed a robust racing AI that is capable of detecting the player's position, detecting and avoiding other AI racers, and implementing rubber-banding to ensure that players of all skill levels are fully engaged in the race. This required a bespoke system that accounted for the player in sections that were fully vertical or upside-down.

 

The AI works by first pulling data from a spline placed above the middle line of the whole track.

Racespline Large
Spline To Above Track Hover

I then use a line trace from the spline onto the track below allowing the Racing AI to “float” above the middle line of the track at the desired hovering distance. This technique effectively smooths out the otherwise wavy and bumpy spline.

AI Left And Right

To enable the AI to go from side to side on the track, I implemented a secondary line trace that uses the data from the initial line trace to determine if the proposed point is still on the track. If the proposed point is within the boundaries of the track, it is fed into the output of the function and the AI gains the ability to move from side to side on the track.

Racing Line Curve
Race Line Implimentation

After both systems were integrated, a curve was created that represents the ideal racing line for the Racing AI to follow along the course of the spline. This approach ensures that the system is reusable on different tracks and allowed for a simple variable to determine a specific AI's "skill" at any given point in the race by simply increasing or decreasing the AI’s adherence to the ideal racing line. A similar system is used to control the AI’s speed at different points as well.

bottom of page