Orbital Tilt

Roles - Design, Scripting, Music, UI

Made in Unity
Team Size: 12
2019 (Steam)

Overview

  • Created the original game pitch
  • Worked closely with artists to develop the distinct visual style of each of the game’s three major environments
  • Designed and built the game’s opening section
  • Composed the original soundtrack
  • Picked up various odd jobs in 3D modelling, sound design, and illustration

Lonely Skies is my capstone game for the University of Utah. I originally pitched the game as focusing on the relationship between the player and their in-game vehicle, a run-down airship. The ship would act as a kind of puzzle, behaving in ways that might seem random, but that the player would grow to understand through interacting with it.

The design evolved quite a bit over the course of development. We found that moving between ships was a lot more fun than moving around on one ship, so we refocused the game on stealing parts from other ships in order to keep your own ship running. We also removed the slow, clumsy ship combat, focusing instead on high-speed piloting challenges.

Scripting

To facilitate the core dynamic of stealing pieces from other ships and adding them to your own, the ships themselves had to be modular, which was a problem for Unity’s physics. It was important to us that adding or removing a piece could change the balance and weight of a ship dramatically, but polling the ship every frame would be way too resource intensive. Instead, I created the Hierarchy Physics system, which piggybacked off of Unity’s scene hierarchy to allow for complex physics objects made up of multiple individual masses.

The root of any airship has an active rigidbody with a weight and center of mass determined by all of its children. When any HierarchyPhysics object has its position in the hierarchy changed, it triggers a re-evaluation of both itself and its former parent. If any HierarchyPhysics object suddenly becomes the root of its own hierarchy, it enables its rigidbody and becomes a distinct physics object.

This allowed the airships to be highly dynamic, with entire sections capable of being knocked off, and balance being a real concern when stealing engines for the player’s ship.

Another scripting challenge this project presented was the wind. We needed the rotation of an object like a wing to affect how it interacted with the wind, and we wanted that wind affect to apply to the bodies of ships, not just wings and sails.

My solution used a set of raycasts in the direction of the wind, which would find the surface normals and use the average to determine the direction and magnitude of the wind force to apply. The number of raycasts could be adjusted depending on how much precision was needed. The wings of the player ship had five, whereas many of the crates and cannonballs in the game only needed one.

Odd Jobs

One of the modular pipe models that appears on the ship. These pipes and various other 3D models throughout the game were made by me when our 3D modelers were busy with more urgent tasks.

I created this map in Photoshop to appear as a prop in the title screen. A version of it also appears in the pause screen.

Music

For the music that I wrote for Lonely Skies see the Music section of the Portfolio page, or the album on soundcloud.