Liberosis

Time of Development: 9 weeks

Role: Lead Programmer

Game Engine: Unity

A third-person platformer adventure game made in Unity for the PlayStation 4. The game is set high up in the skies with floating islands filled with lush greens, ruins of the past and beautiful wildlife.

The player plays as a young childlike creature that is trying to find their purpose and home while navigating this world. The game was made by 13 students at PlaygroundSquad; 7 artists, 3 designers, and 3 programmers.

Liberosis was entered to the Rookies Game of the Year contest, in which we received numerous awards.

Trailer

Main Contributions

The Vortex Ball

I was in charge of the core mechanic of the game, the vortex ball. The player was to shoot these vortexes, to then either jump or dive into them in order to get launched into a direction. While this seems like a simple task at first, there were many variables that would totally change the resulting bounce.

To tackle this problem,  I designed the vortex as a state machine for easy customization and maintainability. 

The Dive Mechanic

The dive mechanic gives the player additional momentum in the direction of movement, but also to provide the player with the option to cancel momentum mid-air by diving in the opposite direction.

I later added a vortex lock-on, that made sure the player would dive into the vortex without fail if aimed in that direction, as well as an auto dive when the player shoots a vortex mid-air. Both of these choices added to the flow of the game.

Custom Character Controller

I was the co-designer of a custom character controller that used our own physics logic. Originally, we used Unity’s built-in Rigidbody component, but since we constantly had to work against it, we decided to make our own physics solution based on the bare-bones CharacterController component

 As a result, we were able to tailor the movement to fit our needs. Our component supported several force types, gravity, torque, sliding, stepping, and more.

Animations

I worked closely together with our animator in order to bring the character to life. There were 22 animations in total, and I made sure each animation played when it should, and that the transitions were smooth.

Object Pooling System

I designed a generic pooling system that allowed us to access and enable/disable objects from its own pool. This system was built to prevent unnecessary garbage allocation.