Fortitude – Prototype 0.4 – Patch Notes

The “Gravitational Antics” Update

This update finally adds the biggest mechanic of Fortitude into the game; gravity. As a result; Josh’s new life-sized planet and moon designs now orbit a placeholder Sun in real time, and the player is now constantly affected by the gravitational forces exhibited by the planetary bodies. Additionally, the game Map has been revamped, the Tether has been reworked into the game and trajectory prediction has taken it’s first step towards becoming a major mechanic.

0.4

Additions –

  • Controls –
    • “M” – Toggles the game’s “Map View” (upping the “Main Camera” OrthographicSize to 1000).
    • “T” – Toggles a “Tether” DrawLine between the Fortitude and “OnFoot” GameObjects.
    • “Up Arrow” – Increases the game’s Time.timeScale.
    • “Down Arrow” – Decreases the game’s Time.timeScale.

 

  • Added GameObjects –
    • Added placeholder “STAR” GameObject (Rigidbody2D) –
      This placeholder GameObject acts as the primary gravitational force of the in-game Solar System. All planetary bodies as well as the “Fortitude” and “On Foot” GameObjects are attracted to it (via the “OrbitSystem” script). Said force will also grow more powerful the closer any GameObject gets to the “STAR”.
    • Added “Diadem” GameObject (Rigidbody2D, Circle Collider 2D, LineRenderer, TrailRenderer) –
      This is the first of Josh’s fully designed planetary bodies; a barren, grey, crater-covered world that orbits the “STAR” GameObject via the “OrbitSystem” script. “Diadem” also rotates slowly via the “Asteroids” script, giving the visual impression of planetary rotation.
    • Added “Elcalowda” GameObject (Rigidbody2D, Circle Collider 2D, LineRenderer, TrailRenderer) –
      This is the second of Josh’s fully designed planetary bodies; a bright, red-sand-covered, stormy world that orbits the “STAR” GameObject via the “OrbitSystem” script. This GameObject consists of multiple rotating layers (rotation via the “Asteroids” script) that give the visual impression of a functional atmosphere as well as planetary rotation.
    • Added “Rika” GameObject (Rigidbody2D, On Trigger Circle Collider 2D, LineRenderer, TrailRenderer) –
      This is the third of Josh’s fully designed planetary bodies; a bright yellow-and-red dangerous-looking gas giant that orbits the “STAR” GameObject via the “OrbitSystem” script. This GameObject consists of multiple rotating layers (rotation via the “Asteroids” script) that give the visual impression of a large amount of atmospheric activity as well as planetary rotation.
    • Added “Estabahn” GameObject (Rigidbody2D, On Trigger Circle Collider 2D, LineRenderer, TrailRenderer) –
      This is the fourth of Josh’s fully designed planetary bodies; a bright purple dangerous-looking gas giant that orbits the “STAR” GameObject via the “OrbitSystem” script. This GameObject consists of multiple rotating layers (rotation via the “Asteroids” script) that give the visual impression of a large amount of atmospheric activity as well as planetary rotation.
    • Added “Elcalowda Moon” GameObject (Rigidbody2D, Circle Collider 2D, LineRenderer, TrailRenderer) –
      This is the first of Josh’s fully designed Moons; a bright yellow, atmospherically dense world that orbits the “Elcalowda” GameObject via the “Moons” script. This GameObject consists of multiple rotating layers (rotation via the “Asteroids” script) that give the visual impression of a functional dense atmosphere as well as moon-based rotation.
    • Added “Rika Moon” GameObject (Rigidbody2D, Circle Collider 2D, LineRenderer, TrailRenderer) –
      This is the second of Josh’s fully designed Moons; a bright blue, cold and glacier-heavy world that orbits the “Rika” GameObject via the “Moons” script. This GameObject consists of multiple rotating layers (rotation via the “Asteroids” script) that give the visual impression of a stormy and snowy atmosphere as well as moon-based rotation.
    • Edited “Fortitude” GameObject (Rigidbody2D, Box Colliders 2D) –
      This edit adds a “LineRenderer” to the GameObject that is subsequently accessed by the “VD” script to project the velocity prediction mechanic.

 

  • Added Scripts –
    • Added “OrbitSystem” script –
      This script adds and then simulates the physical force of gravity in the game. The primary source of this is the placeholder “STAR” GameObject, and so the closer a GameObject with this script attached to it (currently the “Fortitude” and the planetary bodies) gets to the “STAR”, the more intense the AddForce from said script will become and so the faster the GameObject will be pulled in.
    • Added “VD” script –
      This script adds the velocity prediction mechanic into the game. It takes the current transform position Vector3 of the “Fortitude” GameObject and then adds its Rigidbody2D velocity Vector3 and “gravity” Vector3 (provided by the “OrbitSystem” script) to the position Vector3; the result being an accurate prediction of the “Fortitude” GameObject’s position a short time in the future. The script then draws a line via a “LineRenderer” from the “Fortitude” GameObject to the “predictedPos” Vector3. It then does this prediction multiple times, making for a longer and more accurate line.
    • Added “Moons” script –
      This script adds the “orbital rails” mechanic into the game – named because any planetary body with the script attached orbits like its on rails. The script achieves this via a simple RotateAround and transform position function that rotates a Moon GameObject around its planetary body and keeps it within a certain distance of it at all times.
    • Added “Tether” script –
      This script adds a simple toggleable function that upon the pressing the “T” key draws a line via Unity’s Gizmos.DrawLine function between the “OnFoot” astronaut and “Fortitude” ship GameObjects. This script is designed to combat the unfortunate event where the player goes adventuring and then forgets where they parked their ship.
    • Edited “CameraController” script –
      This edit adds the new toggleable “Map View” into the game. Pressing the “M” key will change the “Main Camera” GameObject’s OrthographicSize to 1000, and pressing it again will reduce it back to 1. When the “Map View” is enabled, the “LineRenderer” and “TrailRenderer” elements of the planetary bodies and moons are also enabled, to give the player viewable previous orbital trajectories and predicted velocities of the various worlds. Finally, while in “Map View” the “Fortitude” GameObject’s sprite is replaced by a gigantic triangular-shaped indicator GameObject and the “OnFoot” GameObject’s sprite is replaced by a gigantic circular-shaped indicator GameObject. These both show the current location of the ship and player in the “Map View”, as their normal sprites are too small to see.
      This edit also adds the ability for the player to increase and decrease time via the “Up Arrow” and “Down Arrow” keys. This is achieved by changing Unity’s Time.timeScale accordingly.
    • Edited “SpeedGUI” script –
      This edit adds the game’s current Time.timeScale to the UI.
    • Added & Removed “VectorPrediction” script –
      This is a failed script that attempted to add the vector prediction mechanic into the game. It tried to achieve this by taking the player’s previous and current positions by subtracting the latter from the former, and using the result to predict the player’s next position. This script however did not function as intended for unknown reasons, and was subsequently removed from the game until further notice.
    • Added & Removed “PositionPrediction” script –
      This is a failed script that attempted to add the vector prediction mechanic into the game by further editing the velocity prediction mechanic. It tried to achieve this by calculating the gravitational pull of the placeholder “STAR” GameObject at points further ahead of the player’s current position, and then adding those to the velocity prediction mechanic equation to further predict the player’s next position. This script however did not function as intended for unknown reasons, and was subsequently removed from the game until further notice.

 

Bugfixes/Improvements –

  • Fixed a bug where the colour of the “LineRenderer” elements attached to the “Fortitude” and planetary body GameObjects would be black if any colour was selected other than the default bright purple one. This was caused by the “LineRenderer” not having a Material attached to it, and said Material then not having the appropriate shader selected. This was fixed by creating and attaching a brand new Material to the “LineRenderer” GameObject and then selecting the “GUI/Text Shader” from the drop down menu (bizzarely, it was the only shader that worked). Colour selection functioned as normal after this.
  • Fixed a bug where the gigantic circular-shaped indicator GameObject attached to the “OnFoot” GameObject did not show up when the game’s “Map View” was enabled. This was caused by said indicator GameObject being on the same Layer as the “Fortitude” indicator GameObject’s, and so it was hidden underneath it. This was fixed by changing the Layer of the “OnFoot” indicator GameObject from 0 to 1.
  • Fixed an issue where the “OnFoot” GameObject would continue to use up its Fuel while inside and attached to the “Fortitude” ship GameObject. The cause for this particular issue is unknown. It was fixed by adding a function to the “FuelSystem” script that reduces the “FootConsumption” float to 0 whenever the “InShip” boolean from the “VehicleTransition” script is true.
  • Fixed an issue where the Moon GameObjects would not orbit their planetary bodies correctly, no matter what gravitational force or initial velocity setting was used. The specific cause for this issue is currently unknown, although it is suspected that the unrealistically fast movement of the planetary bodies might have something to do with it. In the meantime, this issue was fixed by creating the “Moons” script that puts the Moon GameObjects on a RotateAround instead, rotating around the planetary bodies on a fixed orbital path.
  • Discovered an issue where upon colliding with a planetary body at high velocities, the “Fortitude” and “OnFoot” GameObjects can actually knock said planetary bodies out of their stable orbits around the placeholder “STAR” GameObject. The cause for this is currently unknown, although it is suspected to be something to do with the Rigidbody2D-based mass of the “Fortitude” and “OnFoot” GameObjects being too high in comparison to the Rigidbody2D-based mass of the planetary bodies.

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