JJ

History
The prisoner JJ23110205 (known as JJ) is the main protagonist of JJRacing, developed by Alter Ego. He is an outstanding challenger of the Xeronoid speed tests. He belongs to the human race, which is almost extinct.

Raised in a humble family, he was kidnapped and held prisoner of the Xeronoids, where he gained a lot of fame for being the prisoner with the fastest times, and for that, the one that has survived the longest. It seems like he will spend the rest of his days the same way... Unless some day his fate changes.

Variables
bool fuelFill

bool turboActivated

bool onTurboSurface

float fuel: fuel current value.

float maxFuel = 100: fuel maximum quantity.

float fuel_Increment = 0.5: quantity of fuel added per frame when requirements are met.

float fuel_DecrementTurbo = 0.4: quantity of fuel subtracted per frame when requirements are met.

float fuel_DecrementAscension = 1.15: quantity of fuel subtracted per frame when requirements are met.

float normal_Speed = 800: default movement speed.

float turbo_Speed = 1200: movement speed when in turbo mode.

float FOV: FOV current value.

float FOV_Max = 95: FOV value in turbo mode.

float FOV_Min = 90: FOV default value.

float FOV_Change = 0.5: speed at which FOV changes per frame during the transition from default mode to turbo mode.

Behaviour
JJ is a playable character in the game. He is a biped character moved by a pair of aeroboots that let him levitate and move at a higher speed throughout the terrain, and also being able make higher jumps and propel himself upwards.


 * His behaviour is controlled by the default controls from almost any first person game:
 * WASD - Movement
 * Space bar - Jump/Jetpack (if pressed and maintained while in air)
 * Mouse - Camera movement
 * Shift - Turbo
 * His movement must resemble as if he was levitating. The base movement speed is 800, and the friction is value is very low, currently stated at 0.1.
 * He jumps with an impulse of 500. Air control is set to a medium value of 0.6 (in a range from 0 to 1)
 * While in the air, if space bar is pressed again and maintained pressed, jetpack is activated. This makes the character's gravity scale change from 1 to -0.5, what makes him go up. This consumes fuel (more details down below)
 * The character's default gravity scale is set to 1.25 and his mass is 100.
 * The character can enter Turbo Mode. While in this mode, the character has a movement speed of 1200. Plus, the FOV transitions from 90 (default value) to 95 while in this mode. This mode is activated when:
 * The player presses Shift. This mode is maintained until the key is released. This action consumes fuel (more details down below)
 * The player is colliding with a turbo surface.
 * The player has a fuel quantity that can vary between 0 and 100.
 * When in Turbo Mode while pressing Shift, fuel is consumed at a rate of 0.4 u/frame.
 * When using the jetpack, fuel is consumed at a rate of 1.15 u/frame.
 * When neither of these conditions are met, fuel refills automatically at a rate of 0.5 u/frame.
 * When colliding with a fuel recharge, 50 is instantly added to the current fuel quantity, without surpassing the maximum fuel quantity

Aesthetic
As JJRacing is a first person game, there is no need for a model or certain aspect for the character behind the camera. Nonetheless, he does have two visual elements:


 * His hands and the character's hook (weapon). In this particular case, Unreal default model was used.
 * Fire particles coming from the aeroboots. They leave a trail where the player goes for a short period of time.