The Refueling Update
In it’s biggest content update yet, Fortitude’s difficulty is kicked up a notch as the Refueling mechanic returns to the game, this time with a vengeance. In order to gather Fuel and continue living, the player must travel to the outer edges of nearby gas giants. Unfortunately, their ship cannot enter Fuel Clouds as they wreak havoc with the computer systems, so the player must instead conduct a rather dangerous EVA and then navigate through the thick gaseous fogs on foot in order to discover and harvest precious Fuel. During this, the only thing that stands between the player and fatal gravitational forces is a somewhat delicate rope that keeps them tethered to the ship, so it’s best that they try not to break it.
- Controls –
- “M” – While within a planet’s atmosphere, this engages the planetary map.
- GameObjects –
- Added “EstabahnSurface” GameObject (Circle Colliders 2D) –
This GameObject acts as the “surface” for the gas giant “Estabahn”. The player can now “land” and “takeoff” from this planet as a result of the “OrbitTransfer” script. Since “Estabahn” is a gas giant and so doesn’t have a solid surface, upon colliding with the On Trigger Circle Collider 2D of it, the player will be transported to the outer edges of the “EstabahnSurface” GameObject, where they can then navigate around in search of Fuel Clouds. Navigating towards the core of the planet will result in death.
- Edited “Estabahn” GameObject (Rigidbody2D, Circle Collider 2D, Line Renderer, Trail Renderer) –
Added an On Trigger Circle Collider 2D tagged with “EstabahnAtmosphere” that transports the player to the outer edges of the “EstabahnSurface” GameObject upon collision.
- Added multiple placeholder “Fuel Cloud” GameObjects (Polygon Collider 2D) –
These GameObjects have been placed in the outer edges of the “EstabahnSurface” GameObject. Like the one implemented in Prototype 0.2, these essentially act as clouds of precious Fuel in the game. Upon colliding with them while controlling the “OnFoot” astronaut GameObject, the player will begin refueling the “Fortitude” ship.
- Added multiple placeholder “Nasty Cloud” GameObjects (Polygon Collider 2D, Rigidbody2D) –
These GameObjects are very visually similar to the “Fuel Cloud” GameObjects, but with several differences – they are smaller, faster and red. Their primary function in the game is to interfere with the player as they refuel the ship, as they move slowly towards said ship while refueling is in progress.
- Edited “Fortitude” GameObject (Rigidbody2D, Box Colliders 2D, Circle Colliders 2D, LineRenderer) –
This edit parented the “Radius” GameObject to the ship, as well as adding and parenting an additional smaller “LocatorBeacon” GameObject for when the planetary map is enabled.
- Edited “OnFoot” GameObject (Rigidbody2D, Box Collider 2D, Circle Collider 2D, LineRenderer) –
This edit added and parented an additional smaller “LocatorBeacon” GameObject for when the planetary map is enabled.
- Added “Radius” (Sprite) –
This sprite is parented to the “Fortitude” GameObject, and is enabled when the new Tethering System is activated, to act as a visual representation of the On Trigger Circle Collider 2D that the player must stay within in order to remain tethered to the ship.
- Added “Fuel UI” (Sprites) –
This is a series of bar-shaped sprites that are coloured from red to green, and which are coded to appear and disappear off the ship’s UI depending on the Fuel level.
- Removed “Tether” –
This was removed as it is obsolete – a new Tethering System (version three) was added in this update.
- Added “EstabahnSurface” GameObject (Circle Colliders 2D) –
- Scripts –
- Added “GasGiantOrbit” script –
This script is essentially just a copy-paste of the “OrbitSystem” script implemented in Prototype 0.4, but with one small difference; this version allows the swapping and disablement of the planetary bodies that affect the player gravitationally in real time, which is particularly useful as it allows the game to disable the gravitational pull of the “Surface” GameObjects until they are activated and needed, and then essentially pick whichever gas giant’s surface is being set to active and set that as the source of gravity at that moment in time.
- Edited “OrbitTransfer” script –
This edit adds the landing/takeoff mechanic implemented in Prototype 0.5.5 to the “Estabahn” GameObject. It functions in almost exactly the same manner as the previously implemented planetary surfaces, with the player being moved via transform.position to the “EstabahnSurface” GameObject upon colliding with the planetary body’s On Trigger Circle Collider 2D. The only difference with gas giants is that upon transportation, the script will take the player’s current positional offset relative to said planet into account. This essentially means that if the player is approaching the gas giant from the east, the script will transport the player to the east side of the “EstabahnSurface” GameObject. The same then occurs when the player attempts to leave the gas giant, except in reverse order (as the script transports the player to the outer edges of the “Estabahn” GameObject).
- Edited “CameraController” script –
This edit added a planetary map into the game. Previously, the map system zoomed out the OrthographicSize of the game to 25,000f whenever the player pressed the “M” key. Now however, this still occurs but only when the player is in deep space. If they are near to or within the atmosphere of a nearby planet, pressing the “M” key will zoom to an OrthographicSize of 750f, as well as enabling smaller versions of the “LocatorBeacon” GameObjects (the triangular indicators implemented in Prototype 0.4). This change was made so that the player can better see their current position in relation to the planet as well as covering up the transform.position transition between atmosphere and surface.
- Edited “FootNavigation” script –
This edit adds the first version of the ship’s AI Voice System into the game as part of the continual game sounds implementation started in Prototype 0.7. Whenever the “OnFoot” GameObject enters a “Fuel Cloud” GameObject and begins refueling the ship, the AI will say “refueling”.
- Edited “VehicleTransition” script –
This edit further refined the Autopilot mechanic that was previously implemented in Prototype 0.7. Now, whenever it is enabled, the “Fortitude” ship GameObject will automatically turn away from its current heading, in order to give the visual impression of firing the thrusters to slow the ship down. This occurs in real time, so if any gravitational forces occur while the ship is under autopilot control, it will visually rotate to compensate. Additionally, when autopilot is enabled, the ship’s AI will now say “autopilot engaged!” and when it is disabled, the AI will say “autopilot disengaged.”
This edit also added a mechanic that damages the Fortitude ship upon contact with a “Fuel Cloud”. Upon entering a “Fuel Cloud’s” On Trigger Circle Collider 2D, the thruster effects of the ship will begin flickering and the ship’s AI will say “losing power!”, and if the ship is exposed to the “Fuel Cloud” for more than seven seconds, the piloting functions will cease and all thrusters will be disabled (by disabling the “SpaceNavigation” script), leaving the ship vulnerable to external influences. Upon exiting the “Fuel Cloud”, the ship’s AI will say “power restored, rebooting systems” and the ship’s systems will then take five seconds to “reboot” before the thrusters come back online (as the “SpaceNavigation” script is re-enabled).
- Edited “Tether” script –
This edit implemented the third and final Tether System into the game. Upon exiting the ship while within the atmosphere of a gas giant, the “OnFoot” GameObject’s LineRenderer will be enabled, drawing a line between the ship and the astronaut. Additionally, the effects of the gravitational pull of the gas giant on the astronaut are negated, and a small force continually pulls the player towards the ship, in a bungee-cord like fashion. This “tether” will be enabled for as long as the player stays within the “Fortitude” GameObject’s On Trigger Circle Collider 2D, as if they exit it then the tether will “snap” and the Tethering System will be disabled, leaving the player vulnerable to the gas giant’s strong gravitational forces. The player can see this radius via the “Radius” GameObject that is enabled as the Tethering System comes online – a sprite that essentially draws a large circle around the ship.
- Edited “Sounds” script –
This small edit refined the previously implemented sound effects so that they only play while the player is inside the Fortitude ship and said ship is under thrust. The sounds will not be heard while the player is outside the ship, in order to be in-keeping with realism – there is no sound in space.
- Edited “Asteroids” script –
This edit added a size mechanic to the “Fuel Cloud” GameObjects. Essentially, while the player is within them and “refueling”, the size of the GameObjects will gradually decrease, giving the visual impression that they are being “used up”. When the GameObjects reach a small enough size, they are then destroyed so it looks like the player consumed all the Fuel from the “Fuel Cloud”.
This edit also added code that makes the “Nasty Cloud” GameObjects move towards the player while refueling is taking place, and upon colliding with the ship the GameObjects will destroy it.
- Edited “FuelSystem” script –
This edit enabled the “Fuel UI” sprites on the “Fortitude” ship’s UI and arranged them in a semi-circle shape, with the top green-coloured ones appearing when the ship’s Fuel is at 80-100% and the lower yellow and red-coloured ones appearing when the Fuel is at lower levels.
- Added “GasGiantOrbit” script –
- Fixed a bug where the “Fortitude” ship would act as if it had entered a “Fuel Cloud” and begin “losing power” despite being a short distance away from one. This was caused by the large On Trigger Circle Collider 2D that is used for the Tethering System triggering the “losing power” mechanic as it was parented to the ship and so the ship recognised it as its own collider. This was fixed by unparenting the empty GameObject that the Tethering System is attached to from the “Fortitude” ship and adding a short script (so short it wasn’t worth mentioning in the Patch Notes) to it that makes it follow the “Fortitude” ship as if it was attached to it via a transform.position function.
- Fixed a bug where the newly refined autopilot mechanic would cause the “Fortitude” ship to instantly rotate at high speeds and then destroy iself as soon as the mechanic was enabled. The exact cause of this bug is unknown, although it was suspected to have been caused by the AddTorque function of the mechanic being attributed to Unity’s somewhat buggy physics. This was fixed by reducing the amount the AddTorque function slows the “Fortitude” ship down by from 100 to 10.
- Fixed a bug where the newly refined autopilot mechanic would cause the “Fortitude” ship to turn instantly away from its current heading upon its enablement, instead of gradually rotating it. This was caused by the Quaternion.LookRotation function of the autopilot mechanic calling inaccurate and therefore incorrect variables. This was fixed by changing said variables to account for the “Fortitude” GameObject’s velocity Vector3.
- Fixed a bug where the “LocatorBeacon” triangular-shaped GameObject of the newly implemented planetary map would be hidden behind the “Estabahn” GameObject upon the “Fortitude” ship entering its atmosphere. This was caused by said “LocatorBeacon” being on a lower “Order In Layer” than some of the rotating elements of the “Estabahn” GameObject, resulting in it being hidden behind them. This was fixed by increasing the “Order In Layer” of the “LocatorBeacon” to 100.
- Fixed a bug where the newly implemented “ship AI” sound effects would continually repeat themselves as the “Fortitude” ship passed through the On Trigger Colliders that triggered them. This was caused by the scripts that enabled the sounds using an OnTriggerEnter2D function that was constantly telling the sounds to play while the “Fortitude” ship was entering the colliders. This was fixed by adding a short function to the scripts that checks to see if the sound effect is already playing before then playing the sound if it is not.
- Fixed a bug where the “Fortitude” ship would automatically re-enable the “SpaceNavigation” script despite it being disabled if the ship was inside a “Fuel Cloud” GameObject for more than seven seconds. This was caused by the “VehicleTransition” script continually telling the “SpaceNavigation” script to be enabled if the “OnFoot” GameObject was inside the ship. This was fixed by adding a short function to the “VehicleTransition” script that now only enables the “SpaceNavigation” script if it hasn’t been disabled by the “losing power” mechanic.