top of page

Aurora Express: The Mechanic

About the game

Engine: Unity

Language: C#

You're the sole passenger aboard the Aurora Express, with machines breaking all over the spacecraft, the responsibility to fix everything falls on you! Replace batteries, refill the vending machines and fix the engines in order to keep the Aurora Express stellar-bound. 

Aurora Express: The Mechanic was created during the Global Game Jam 2020.

Aurora Express: The Mechanic: Bio

My contribution

During the game jam I programmed all of the UI and worked on some of the gameplay mechanics as well, I was also tasked with putting the game together in scene/editor.

Aurora Express: The Mechanic: Text

Programming

Some key areas that I programmed were:

  • UI

  • Interaction

    • Picking Up​

    • Fixing

  • Ship Health

Aurora Express: The Mechanic: Text

User Interface

I created a UI manager script that handled all of the games UI. We decided early on that the game would only consist of a single scene. Our difficulty states were only effecting the games duration, spawn and damage rates, thus keeping everything in one scene allowed for these variables to be changed extremely easy.

The end game UI features a distance measure which show's the players progress through their journey, it works like a progress bar, stopping the space shuttle at whatever percentage they finished their game at.

The code snippet below shows the code to lerp the shuttle across from one end of the distance measure to the other.

Aurora Express: The Mechanic: Text
EndGame_ShipLerp.png
Aurora Express: The Mechanic: Image
LerpShip.gif
Aurora Express: The Mechanic: Image

Interaction

The interaction code first checks to see whether the player is within X units on an interactable object, it then checks to see if that object is visible by the camera. If both of these conditions are met and the player pressed the interact button, then the object is picked up and placed into their "hands".

To avoid the object clipping into other objects and being knocked out of the players hand, it's layer is changed and collision turned off. A second camera that only renders the object in the players hand is used to overlay that object over everything else. This did cause an issue if the player took the object to a wall and tried to throw the object. They were able to throw objects out of the ship and into the abyss of space. 

To fix this issue I cast a ray down from the object and see if it collides with anything, if it does, it's still inside the ship and can be thrown, otherwise, the ability to throw the object is removed.

The code snippet below shows the fix for that issue alongside the throwing mechanic.

Aurora Express: The Mechanic: Text
Interaction_HoldingObjectCheck.png
Aurora Express: The Mechanic: Image

Ship Health

When a part of the ship needs to be repaired, every X seconds the ship will take Y damage and every Z seconds the amount of damage to deal to the ship is increased.
The damage value is of the broken machine is then passed into a the TakeDamage() function, shown in the code snippet below.

Aurora Express: The Mechanic: Text
ShipHealth_TakeDamage.png
Aurora Express: The Mechanic: Image

Source code

To view all of the above scripts, along with many unmentioned ones, that I created during the development of 'Aurora Express: The Mechanic', click the button below to go a GitHub repository with all of the .cs files.

Aurora Express: The Mechanic: Text
bottom of page