Looterland

Made in Unity

Dynamic Gravity System

I created three types of Gravity Platforms, two of which are unused in the final game.

All share a base class GravitySource, which contains a UCurveFloat for dynamic gravity strengths.

Platform Types

GravitySource C++ code

Property used to store a UCurveFloat for curved gravity strength.

GravityPlayerController C++ code

GravityPlayerController - header


GravityPlayerController - UpdateGravityRotation


GravityPlayerController - Custom Input


GravityPlayerController - Get Rotations

Player-Gravity Blueprint Implementations

Collects overlapping gravity fields. Executed on BeginPlay.

Player Rotation and Locomotion

The player's upper body rotates to face the direction the camera is facing when on the surface of a planet.

The player blueprint passes input data to GravityPlayerController to be processed relative to gravity.

The user can also rotate the player 180 degrees to propel themselves forwards.

Platform Types

Player Rotation/Locomotion Blueprint Implementation

Applies rotation input to GravityPlayerController and calculates relative pitch for torso-rotation. Executed on camera input received.

User Interface

I designed functionality for most UI elements.

All menus use custom widgets to combine input received from gamepad and keyboard interaction.

Platform Types

Custom Widgets Blueprint Implementations

Custom Button.