About

Superhot-inspired, slow-paced A-RPG set in a world where time is currency, power is absolute, and salvation comes with a price tag. Use a time-slow grenade to freeze the fight in your favor, or rewind your own timeline to undo mistakes.

Project Info

Role: Ability Programmer

Team Size: 8

Duration: 4 Weeks

Engine: Unreal Engine

Overview

I was responsible for implementing nearly all abilities using Unreal's Gameplay Ability System (GAS), handling activation flow, tag checks, cooldowns, and gameplay effects.

I also built an object pooling system for projectiles, implemented their behavior, and collaborated on resolving collision issues. A key achievement was successfully setting up and structuring GAS into a functional, scalable foundation for the project.

Abilities

I implemented a lightweight object pooling system that we used for all projectiles in the game. Instead of spawning and destroying actors repeatedly, projectiles were recycled through the pool, improving performance and keeping the system clean and efficient during combat-heavy scenarios.

Custom Ability Tasks

I created two custom GAS Ability Tasks to extend functionality beyond the default setup. One task listens for cooldown changes, exposing events that allowed the UI to react dynamically and stay synchronized with ability states. The other introduces tick support within an ability, enabling real-time updates during the preview phase and supporting responsive ability visualization.

What I Learned

The core ability loop was functional and playable by the end of the project, and strong on-site team communication helped resolve issues quickly before they escalated.

However, much of the implementation was rushed and relied too heavily on Blueprints, leaving systems that would have been clearer and more performant in C++. Choosing GAS also introduced significant overhead; I underestimated both its complexity and how deeply it integrates with the entire project architecture.

Going forward, I aim to prioritize C++ for core systems, using Blueprints primarily for iteration and glue logic. The goal is to build cleaner, more maintainable, and more scalable systems, especially when working under production constraints.

Object Pooling System

The abilities follow a two-step activation flow typical of an A-RPG targeting system. On first input, the ability enters a preview state, visualizing its range, direction, or area of effect to give the player spatial feedback. A second confirmation input then executes the ability, triggering the actual gameplay logic, effects, and costs. This approach supports intentional combat decisions while maintaining clarity and responsiveness.