ABSOLUTION

Engine / Language

  • UE4 / Blueprint

Project Size

  • 5 Designers, 6 Artists

Duration

  • 4 Weeks

ABOUT ABSOLUTION

ABSOLUTION is a rogue-lite top-down shooter set in a deceased woman's Purgatory. Helped by a semi-autonomous and upgradeable Guardian Angel, the player must go through the different periods of Lyne's tragic life, fighting back her own demons and growing stronger with each step.

DEVELOPED FEATURES

  • Top-Down Shooter Controller

  • Rogue-Lite Upgrades

  • Dynamic In-Game Upgrades

  • Enemy Spawners and AI

  • Animation Blueprints

The game was made as an end-of-year workshop. My team and I originally wanted to create a strong narrative aspect in the game, but we soon realised it would be far too complex to implement in a month, and focused on the gameplay instead.

In-Game Upgrades

The greatest challenge was in implementing the various run-specific upgrades, to the player and the weapon. Selecting an upgrade saves its data such as its Rarity and Price inside the Game Instance, allowing the player to keep their upgrades between levels. Upon obtaining and then on every level change, a component is instanced and added to the player or their weapon for each saved upgrade.

The components are separated in two types : Player and Weapon bonuses. Each of them applies its modifications only when it is instanced.

This system works fine for the simple upgrades we went for, but more complicated stuff like radical weapon changes would require a rework.

CODE SNIPPET

Roguelite Upgrades

The angel following the player character is upgraded in the Hub between every run.
This code is run when the player uses the
upgrade altar in the Hub.
Using the
index with which the widgets are instanced, we can easily add levels to each upgrade.

CODE SNIPPET

Level Generation

The level generation was kept simple due to our low number of maps. I had 3 arrays of maps, each corresponding to a difficulty level. They were appropriately shuffled and interspersed with shop maps. This code is called every time the player reaches the Hub, when they die or reach the end of the map array.

The gif shows the game's debug mode which allows you to see what your run is made of.

CODE SNIPPET

Enemy Spawners

I created a simple spawner system, allowing my level designers to quickly iterate in their levels. They could quickly add and remove waves, the amount of enemies in them and create spawners for each enemy type. The amounts of enemies were then spread between the corresponding spawners.

They could also rename them with a Scripted Actor Action in order to easily sort them in the Outliner.

CODE SNIPPETS

My level designers could call in-editor functions such as this one to rapidly create spawn points.

MEDIA