Boss Lab
On Boss Lab, I was responsible designing and developing some of the core mechanics and systems of the game in Unreal Engine and C++.
Boss Lab is a top-down action roguelite with RPG that focuses on
giving players choices over the progression of their enemy.
It's a venture project that my team and I did as a part of our academic work for a semester and
we're still working on it part-time.
Role: Gameplay Engineer, Systems Designer
Game Engine: Unreal Engine 5
Programming Language: C++
Technologies: Adobe Photoshop, GithHub, Rider, Notion
Platform: PC
Date: 2024
Concept
Boss Lab is about battling a modifiable boss in cycles where the player has power over the abilities and behaviors the boss has. Using an equipment system, players can add or remove attachments on the boss before each encounter, altering how the fight will play out. Each time the player defeats the boss, they will receive temporary perks resulting from the attachments they selected for the boss. Additionally, the player will acquire experience they can spend on permanent upgrades like stat boosts and increase the available attachments pool.
Contribution
During this 3-month project, the team members took on multiple roles. I mainly worked with Blueprints and C++ but I also explored and implemented some effects using Niagara System. I'm going to highlight my key contributions:
Boss AI
I developed the game’s boss AI using Unreal Engine’s Behavior Tree system.
To make the AI adaptable, I created a modular approach where each attack was handled by a
sub-behavior
tree.
These were stored in data assets and dynamically added to the boss based on
the player’s choices before the fight.
The main behavior tree selected actions based on player proximity and a
probability
system that adjusted based on the frequency of each behavior's use which
allowed the AI to be highly responsive and varied in its tactics and allow us
to add behaviors without having to connect manually connect as the system handled adding
them to the boss's list of behaviors.
Mod System
Features dynamic camera effects that respond to the player's state. For example, the view gets distorted when the player runs out of stamina, and the camera's focus changes based on what object the player is looking at.
Shooting System
I implemented the shooting system used by both the player and the boss.
This system is an Actor Component that can be added to any actor,
requiring only a designated shooting point from which to spawn projectiles.
The component manages projectile spawning using properties defined in the
Shooting Attack Data—a data asset that contains all relevant properties for projectile
behavior and shooting mechanics.
The Shooting Attack Data includes crucial settings such as:
- Projectile Reference: The blueprint reference for the projectile to be spawned.
- Settings: These include parameters like Duration, Shots Number, Projectile Speed, and whether the effect is Additive.
- Damage Info: This section defines the amount of damage, damage multiplier, type, and response, as well as special conditions like invincibility and parrying.
- Pattern Type: Determines the firing pattern to be used.
- Modifiers: Handles additional effects like Area of Effect (AOE), AOE radius, homing capabilities, ricochet, accuracy adjustments, and deflection count.

Other Responsibilities
Here's a list of other tasks that I was responsible for in the project:
- Technical documentation: Documented every feature I was responsible for as a reference for future development.
- Assets creation: Created all the assets used in the game, which includes ships art assets, visual effects, background images and shaders, UI elements, sound effects, and a custom font that I made specifically for the game.