Project Details
Project Type Personal Project
Duriation 1 Month
Tools Used

Unity

Trello

GitKraken

Visual Studio

Jett is a high-octane, anti-gravity racer inspired by games reminiscent of Wipeout, F-Zero, Pacer and BallisticNG. Jett is a personal project developed during the summer break whilst attending university, used as a platform to learn and experiment with systems and features normally found within racing games. The project concluded in a playable graybox prototype that included an array of core features. With a potential to restart the project again from scratch in the future, equipped with a better understanding of developing a project like this would allow for higher quality and efficient implementations.

Main Features
Racer Tracking System

The tracking system utilizes a spline following along the course of a track, enabling positional tracking of racers along the track – an essential component for many other features needed in this project. These features include:

  • Accurately ranking racers allowing for players to see where they position in real-time.
  • A checkpoint system defined during development, serving multiple purposes:
    • Tracking time splits between racers or from a player’s personal best record.
    • Preventing players from exploiting unintentionally skipping parts of the track by ensuring that they pass each checkpoint in succession.
    • Return players back on the track should they fall out of bounds, storing a position on the spline should they become ungrounded.

This would only require mapping a spline along a track and defining checkpoints along it, ensuring straightforward implementation will allow for efficient horizontal development.

Ship Leveller System

The ship leveller is responsible for smoothly aligning the racer with the surface angle of the track, ensuring seamless transitions between different surface rotations. This is achieved by utilizing an array of raycasts that returns the surface rotation value and create an average value used for setting the ship's rotation. The density of the array, it's size and offset can be easily adjusted to fit the footprint of a ship.

Track Intro

After a scene has finished loading, a camera cinematic will play on loop until the player proceeds. This is achieved by utilizing Unity's keyframe animation and animation tree systems. Taking advantage of these built-in systems allow for simple implementation and flexible revision of each animation, as well as being able to attach functions in the animation timeline for effects and flexibility of each animation's order.

Main Menu

A main menu wasn't essential for the playable prototype, but it was an element I wanted to include to experiment and learn from, with the goal to create a simple menu system and design that accommodates with both controller and mouse/keyboard inputs.

3D Modeling

I wanted to integrate some 3D modelling work into the project, as I enjoy the process of 3D art, and integrating it into an active project seemed fitting. While the model remains incomplete, I am satisfied with how it is taking shape, and should I return to this project later and opt to recreate from the project from the ground-up, this model will likely carry over to a future iteration.

The basic greyboxing for the test level was also done within blender, as it was easier to create a smooth yet irregular set of surfaces to test as a track environment.