← Back to Projects
Through The Light

Through The Light

gamejam · Unreal Engine 5

Unreal Engine 5 C++ Blueprints Component-Based Architecture Physics-Based Movement Events & Delegates 2D/3D Hybrid Animation

Through The Light was a small 5 people project made in Unreal Engine in under 72h for the thatgamejam#01.

Concept

Through The Light is a small physics 2.5D platformer, mixing physics based movement with a beautifully handcrafted 2D and 3D scenario.

Ability System

Ability system diagram
BaseAbility extends ActorComponent and implements IAbilityInterface; PushAroundAbility and PullAbility both implement IPushable.

The ability system is a generic and flexible system created for possible future expansion. We used C++ classes to define all the behaviour and functions, making use of inheritance and composition to make it the most decoupled and independent possible.

Level Design

The game contains 4 main areas initially designed for a progressive introduction of the physics abilities available. Due to time limitations and after gametesting we decided to give the player all the abilities in the beginning of the game, changing it from a linear progression to a fun sandbox to mess around with the movement.

Environment and Animations

All the art itself was hand drawn and hand modelled by our team. Since I was the only one proficient with game engines I was the one implementing them tho. For the 3D models a small trick was used - 2 different pieces, including a no collision scenario and a collision straight path for easier movement control and less variability, keeping everything tidy and under control.

For the 2D part I used the Unreal flipbooks, with a controller that changes the orientation and animation according to the velocity input for the player.

Movement System - Physics

The movement used in the character is a physics based movement, locked in the YZ axis plane:

  • Impulse forces are applied to the character for pushing around and jumps
  • For the pulling ability a continuous force is applied while the ability is being pressed

After extensive testing, we added a reset to the velocity when the player hits the ground (no slipping), and also made so that whenever he moves horizontally it would reset only the horizontal speed, making the movement more responsive while keeping the fun physics aspect.

Key Implementation Concepts