Degree Project - Roguelike Auto-Shooter
Report: Open PDF
For this project, I set out to create a single-player roguelike auto-shooter powered by Unreal Engine's Gameplay Ability System (GAS). My primary goal was to gain experience with GAS and deliver a playable demo within a nine-week timeframe.
The result is a compact but polished game demo that demonstrates GAS's strengths - data-driven design, modular abilities, and scalable gameplay systems.
Project Overview
The demo drops the player into a confined arena as a dwarf mage wielding magical weapons. Enemies spawn continuously, so the player must keep moving and positioning to survive.
The roguelike element comes from a progression system that evolves differently each run:
- Dynamic Leveling System - Defeating enemies grants XP, which triggers level-ups. At each level-up, the player chooses from randomized upgrade options.
- Upgrade Variety - Upgrades can enhance attributes like stamina or critical strike chance, grant new passive effects, or unlock entirely new abilities. Every ten levels, the player gains a new weapon/skill slot, expanding their arsenal.
By combining auto-shooter mechanics with roguelike progression, I was able to showcase how GAS can manage evolving, data-driven gameplay in a clean and scalable way.
Technical Implementation
The technical foundation of this project revolves around GAS's modular architecture:
- Attributes & Effects - A custom Attribute Set defined stats such as health, armor, and resistances. Gameplay Effects controlled buffs, debuffs, and upgrades, ensuring a consistent, data-driven workflow.
- Abilities - All weapons and enemy actions were implemented as Gameplay Abilities. These included custom C++ base classes, execution calculations (factoring in resistances, crits, and dodge), and Gameplay Tags for cooldowns and state tracking.
- Upgrade System - The level-up menu was powered by GAS. Each upgrade corresponded to a Gameplay Effect, which could be applied without writing new code. This highlights GAS's reusability and scalability.
- UI Integration - HUD and upgrade menus were built with UMG, connected directly to GAS events. For example, when the player levels up, GAS triggers the upgrade menu, which listens for ASC events and applies upgrades via the chosen Gameplay Effect.
Beyond GAS, I implemented architectural patterns to keep systems clean and
scalable:
• Event Handler system in the GameInstance managed state transitions (menu,
gameplay, upgrade screens), ensuring multi-level-up events can be queued without skipping.
• Model-View-Controller (MVC) kept UI logic decoupled from gameplay code,
reinforcing good software architecture practices.
Development Timeline
The project followed a structured nine-week plan, with milestones ranging from system setup to polish:
- Weeks 1-3 - Initial setup and GAS integration: Ability System Component, Attribute Sets, and core framework.
- Weeks 3-5 - Enemy AI and spawning, and early ability prototyping.
- Weeks 5-6 - Visual polish, UI layouts, and weapon/upgrade implementation.
- Weeks 7-9 - Refinement, bug fixes, and documentation.
Although ambitious, most goals were completed on time. Some features, like a planned boss encounter, were cut to keep scope realistic. By the end, the core gameplay loop was fully functional.
Learnings & New Skills
- Deep GAS expertise - Mastery of the Ability System Component, Attributes, Abilities, Effects, Execution Calculations, and Tags.
- C++ in Unreal - Writing reusable systems, implementing custom ability logic, and working with asynchronous ability tasks.
- Data-driven design - Creating scalable mechanics where new content (enemies, upgrades, damage types) can be added without altering core code.
- UI/UX integration - Building reactive HUDs and menus directly tied to GAS events.
More broadly, this project taught me to balance ambition with scope, iterate quickly, and design systems with long-term flexibility.
Future Directions
- Multiplayer/Networking - GAS was built with networking in mind, so enabling co-op play with prediction and replication would be a natural next step.
- Expanded abilities - Multi-tiered skills (e.g., fireball evolves from one missile → two missiles → homing missiles).
- Visual & Audio polish - Using Gameplay Cues to trigger particle effects and sound for impactful feedback.
- Advanced AI - Enemies with unique movement patterns and ability sets, all powered by GAS.
- UI Improvements - Upgrade menus with animations, tooltips, and different rarity levels for upgrades.