Fortitude – Version 1.2 – Patch Notes

The “Things That Go Bump In The Night” Update

This week’s update is a bit of a double act; one part “quality of life” and other part “content update”. Along with a bunch of fixes and general gameplay improvements, Fortitude 1.2 brings full controller support (to the point where playing keyboard is no longer considered optimal), the full environmental design for planet Diadem, a brand new ship UI system for velocity and distance readings and to top it all off; the Sentient Bacteria narrative event.

Capture

Additions –

  • Controls (New Controller Support) –
    • In Ship –
      • “Y”                             – Exit/Enter Ship
      • “Left Trigger”        – Thrust
      • “Left Stick”            – Left and Right Rotational Movement
      • “Left Bumper”      – Toggle Power Thrusters On/Off
      • “Right Trigger”     – Toggle Autopilot On/Off
      • “Right Stick”          – Attract/Repel Lost Ship Parts
      • “Right Bumper”    – (HOLD) Stabilise Rotation
      • “D-Pad Up”             – Toggle Lights On/Off
      • “D-Pad Left/Right – Increase/Decrease TimeScale
      • “D-Pad Down”       – Toggle HUD On/Partial/Off
      • “B”                            – Toggle current Tutorial On/Off
    • On Foot –
      • “Y”                           – (WHEN CLOSE) Enter/Exit Ship
      • “Y”                           – (WHEN FAR) Engage Remote Control
      • “Left Trigger”      – Upward Thrust
      • “Left Stick”           – Move Left/Right
      • “Right Trigger”   – Toggle Autopilot On/Off
      • “Select”                 – Toggle Map
      • “Start”                   – Toggle Pause Menu

 

  • Narrative –
    • Sentient Bacteria Event –
      This is a brand new story event that occurs as soon as the player touches down on the planet of Diadem. After a few minutes of on foot exploration, the player will receive a proximity warning from the Fortitude ship. A minute or so later, it will then warn them of multiple organisms converging on the ship itself. It will continue these warnings for a few more minutes, with the AI voice gradually getting more and more distorted as time goes on. Eventually it stops speaking entirely, and hopefully at this point the player is running back to the ship in a state of blind panic.
      Arriving at the ship, they will however find no evidence of “organisms”, but will still heed the ship’s evacuation recommendations. It is in space however that the real fun begins, as the player begins to hear strange noises and the ship begins to act unexpectedly, and these events only get worse as time goes on. Through the bizarreness however, the player can also hear the ship’s AI whisperingly pointing towards Elcalowda…

 

  • GameObjects –
    • Added full “DiademSurface” GameObject (Polygon Collider 2D) –
      This GameObject is part of Josh’s fully designed planetary surfaces, and now acts as the explorable surface GameObject for the “Diadem” planetary body. These designs include complete terrain, several rocks and a small cave system – all of which are entirely interactable and explorable. The player can now land and takeoff from this GameObject as a result of the “OrbitTransfer” script attached to it. Additionally, this new surface doesn’t have an “edge” that the player can reach on foot. Instead, the terrain is entirely looped, so that if for example the player continues travelling on foot towards the right, they will eventually end up right back where they started. This “infinite terrain” feature functions as a result of the “OrbitTransfer” script.
    • Edited Pause Menu UI (Sprite Renderer) –
      This edit changed the text of the “Pause Menu’s” layout slightly, adding to and replacing various sections of the “Controls” aspect of the “Menu”. It now displays much more of the game’s various controls, as well as correctly listing the brand new controller support inputs alongside their game mechanics.
    • Edited Opening Tutorial UI (Sprite Renderer) –
      This edit changed the text of the “Opening Tutorial UI’s” layout by taking out and replacing various chunks of the basic controls introduction section of the opening tutorial. These replacements switched the PC keyboard instructions with controller inputs instead, as Fortitude now functions primarily as a controller-based game.
    • Removed obsolete “DiademSurface” GameObject (Polygon Collider 2D) –
      This was removed and replaced by the above new fully designed “Diadem” planetary surface created by Josh.

 

  • Scripts –
    • Added “SentientBacteria” script –
      This script acts as the primary building block for the brand new “Sentient Bacteria” game narrative event. It contains two primary functions; Story Event One and Story Event Two. Event One deals with narrative elements on the ground, which begin as soon as the “Fortitude” ship touches down on the surface of the “Diadem” planetary body. After exactly two minutes and twenty seconds (exact numbers to be playtested) the ship begins exhibiting proximity alerts at regular intervals. These get more specific and worrisome as time progresses, with the ship’s AI warning continuously of approaching “organisms” and recommending that the player evacuate the world. The ship’s AI voice will also start to distort as its warnings repeat, until eventually falling silent altogether after a few minutes. Upon eventually arriving back at the ship however, the player will find no visual sign of foul play.
      Event Two then begins once the player successfully takes off and exits the atmosphere of the “Diadem” planetary body. After a minute or so, the ship will start to behave erratically, as one of five randomised mini-events begins. Said events include:Random Thruster Initiations
      Random Rotational Movements
      Random Autopilot Engagings
      Random Power Losses
      Random Astronaut Ejections

      These events are chosen completely at random, then occurring for a period of time between seven and twenty seconds (again, randomised) before the events stop for twenty or so seconds before then beginning again. These sporadic ship “malfunctions” will then occur continuously until the player successfully touches down on the planet of “Elcalowda”, something that the ship will try to push them towards doing via distorted AI messages. Throughout these events, the player will also occasionally hear strange breathing-like noises as they pilot the Fortitude, suggesting that they may not be alone aboard their ship…

    • Edited “SpeedGUI” script –
      This edit added a brand new UI system for the Fortitude ship as we slowly phase out the old and “ugly” game UI in the top left hand corner of gameplay. Now, the “Fortitude” ship’s current velocity is displayed right next to the vessel at all times, along with a Distance counter when landing is occurring (that shows the player’s current distance to the ground) along with a TimeScale counter that appears whenever the game’s TimeScale is above one. This new UI is also completely toggleable via the “D-Pad Down” button, a new function that comes with three modes; no HUD, partial HUD and full HUD. Partial HUD displays just the ship’s velocity while full HUD not only shows the current counters but also enables the ship’s current trajectory line, showing the player their current movement direction without needing to consult the game’s map.
    • Edited “SpaceNavigation” script –
      This edit was primarily for implementing Fortitude’s new controller support for the “Fortitude” ship controls, replacing the previously used keyboard-based “WASD” setup with joystick-related inputs instead. Full details can be read above in the “Controls” section.
    • Edited “FootNavigation” script –
      This edit was also mainly for the implementation of Fortitude’s new controller support, this time changing the controls for the “OnFoot” astronaut GameObject from the previous “WASD” keyboard method to the new controller-based joystick inputs. Full details can also be read in the “Controls” section above.
    • Edited “VehicleTransition” script –
      Several edits were made to this script, which include the implementation of Fortitude’s new controller support system – specifically for entering and exiting the “Fortitude” ship – as well as adding a few lines of code that enabled the “Random Astronaut Ejections” event from the “SentientBacteria” script to function properly.
    • Edited “Tutorials” script –
      This edit added a small function that now changes the game’s TimeScale from its current value to 0f whenever a Tutorial pops up on the player’s screen, essentially pausing the game whenever a Tutorial is being viewed. This change has been made so that the player has ample time to read and/or absorb said Tutorial before then having to shift their attention back into the game.
      This edit also added a series of functions that made the game’s “Pause Menu UI” completely compatible with the new controller support, making it so that upon a “Start” button keypress the Pause Menu is now enabled, and the player can scroll through the various options (Resume, Restart and Quit) using the “D-Pad Up” and “D-Pad Down” controller buttons before then making a decision via the “A” key.

 

Bugfixes/Improvements –

  • Fixed a bug where one of the new “Sentient Bacteria” narrative event’s randomised ship “malfunctions” would occasionally transport the “OnFoot” astronaut GameObject into the centre of the game’s Sun rather than just outside the “Fortitude” ship where it was supposed to put them. This was caused by the transform.LocalPosition changing function within the “SentientBacteria” script occuring a nanosecond after the “OnFoot” astronaut GameObject had been unparented from the “Fortitude” ship GameObject, resulting in Unity using the localPosition of the game world instead of the “Fortitude” ship and so placing the player at the centre of said world rather than just adjacent to the ship. This was fixed by adding a few lines of code (including many booleans) to the randomised events section of the “SentientBacteria” script that made it so that the transform.LocalPosition function was only called while the “OnFoot” astronaut was still parented to the “Fortitude” ship.
  • Fixed a bug where the “Sentient Bacteria” narrative event’s randomised ship malfunctions would loop on a continuous basis, resulting in near infinite “System Malfunctions” from the “Fortitude” ship that made the vessel near impossible to control. This was caused by the function that randomly chose which event to run next in the “SentientBacteria” script calling itself continuously, resulting in it starting each of the random events constantly and so wreaking havoc during the narrative event. This was fixed by adding a new function to the “SentientBacteria” script that checked to see if a randomised event was running first before then selecting and running another.
  • Fixed a bug that has been plaguing the game for a while now (I think since the mechanic was introduced, honestly) where if the player toggles the “Fortitude” ship’s autopilot function on while the game’s time.TimeScale is above 1, the “Fortitude” ship would be instantly destroyed via high rotational velocity and the game would end. The exact cause for this phenomenon is unknown, although it is suspected to be a result of the game trying to compensate for any rotational movement very quickly because of the increased timeScale, resulting in it getting into a bit of a state and compensating too much, which in turn spins the ship out into oblivion. This was fixed by adding a line of code to the autopilot function within the “VehicleTransition” script that now automatically sets the game’s time.TimeScale to 1 whenever said autopilot function is enabled.
  • Fixed a bug where holding down the “D-Pad Down” controller button resulted in the game’s HUD continually switching between disabled, partial HUD and full HUD, something that eventually resulted in said HUD glitching out by either staying disabled altogether or becoming stuck at a specific on setting. This was caused by the “SpeedGUI” script constantly checking to see if the vertical axis of the D-Pad was less than 0.2f and then changing the HUD’s current status if it was, resulting in the ability to hold the button down and change the HUD continuously. This was fixed by adding a series of booleans that made it so that upon the HUD changing it would then wait for the “D-Pad Down” button to be unpressed before then changing the status of the HUD again upon pressing the button.
  • Fixed a bug where the “Refueling Tutorial UI” Sprite GameObject would pop up as normal when the “Fortitude” ship’s Fuel levels first dipped below 40%, but then would not be disabled upon a pressing of the controller’s “B” button, resulting in the game becoming stuck as the player could not move past the tutorial and continue playing. This was caused by the Popup function in the “Tutorials” script calling the “Refueling Tutorial” whenever the ship hit exactly 40% Fuel, a function that would then set the game’s timeScale to 0f, making it so that the ship’s Fuel was constantly at 40% so the Tutorial would be constantly called, rendering it un-disable-able (what a fantastic word). This was fixed by adding another line of code to the “Tutorials” script that checked to see if the “Refueling Tutorial” was already enabled first before then enabling it, so that it wouldn’t be continuously pulled up and subsequently break the game.
  • Fixed a bug where sometimes the game’s “Pause Menu UI” from Fortitude 1.1 wouldn’t actually pause the game upon being enabled (which was unfortunate, considering that is pretty much it’s primary function). The cause for this particular phenomenon is unknown, although it is suspected to be something to do with the game’s landing mechanics stored in scripts “OrbitTransfer” and “SpaceNavigation”, as this non-pausing event only seemed to occur while the player is currently landing or taking off from a planetary body. This was fixed by adding a few more lines of code to the “Tutorials” script that checked heavily to see if the game was actually paused (i.e. timeScale at 0f) before then enabling the Pause Menu.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s