Uber Planetary

Open World Narrative

The goal was to make an experemental narrative game where the player is not a driving agent in the event of the worlds, but rather just an observer getting glimses of the fractured, twisted tail of Uber Planetary.

Notable Features

I always make the features I implement as robust and polished as possible. Here are a few small examples.

Player Movement

After several iterations, we landed on a simple and fun movement system for traversing the world. The process involved a lot of trial and error to get just right.

I also focused on code-based animations for several elements of the player ship.


Navigation

Here, many things are happening in the backend, but I wanted to highlight the attention to the player experience.

Simply lowering the UI indicator closer to the destination based on the player's position helps guide the player downwards to our parking space's actual height.

Notable Code

I found myself making interesting design decisions while trying to optimize my solutions. I try to challenge myself by implementing solutions outside of my comfort range. This accelerates growth and has helped me understand better applications for certain concepts.

In this section, I will break down some of those moments.


The landmark manager maintains internal lists of ILandmarks and its derived scripts. By creating a dictionary of Type and a list of our base Interface, I am able to create highly reusable code.

By creating generic overloaded functions, I can apply the same logic for a verity of different landmark types.

On the other end, the script using the Navigation Manager only needs to worry about passing in the appropriate parameters like so.

Shader Work

I have always been fascinated by computer graphics, and with the project, I felt confident enough to create a Toon shader for our needs.


I got help from the amazing community over on Twitter for handling shadows and point lights.

The wonderful Alexender Ameye supplemented the edge detection.



Codebase Organization

I also want to showcase just the high-level structure of the codebase. All the scripts are publicly accessible on my GitHub as well.