1. Overview
- When developing the game, the most important thing I considered was implementing a structure that is expandable and reusable.
- So, for this project, I designed a common SkillBase structure + GameplayTag based status effect system based on Unreal Engine 5's GAS (Gameplay Ability System).
- All skills operate based on a common
SkillBase, and each skill receives data through SkillData and GameplayTag. - Status effects are also processed based on GameplayTag, and each effect is managed as an independent Effect Object.
2. Core Architecture
Combat System Architecture
- Designed the combat system using Unreal Engine’s Gameplay Ability System(GAS). TurnManager controls turn flow, while GameplayAbilities handle skill execution.
- AbilitySystemComponent and AttributeSet manage damage calculations and gameplay states.
SkillBase Skill Architecture
- Integrated all runtime skill execution data into FCBSkillContext and designed UCBGA_SkillBase to handle common skill execution flow.
- Blueprint handles montage, camera, and combo flow control, while core functionality is implemented in C++.
Skill Execution Flow
SkillDataAsset → GameplayEvent → SkillContextBuilder → FCBSkillContext → UCBGA_SkillBase → ApplyTagToTarget
GameplayTag-Based Status Effect System
- Designed a data-driven status effect system using GameplayTags and GameplayEffects.
- SkillTagContainer manages active effects, while each effect inherits from UCBTagEffectBase.
Status Effect Flow
OnApplied() → OnTurnTick() → OnRemoved()
3. Result
- I implemented turn-based skill combat using Unreal Engine's GAS.
- Learned the importance of object-oriented architecture by separating responsibilities between SkillBase, SkillContext, and TagEffect systems.
- Designed a GameplayTag-based status effect framework and understood the strengths of data-driven architecture.
- Improved maintainability and collaboration efficiency by refactoring Blueprint-heavy systems into C++.
- Used UML diagrams to visualize and share gameplay architecture with teammates.
- Gained collaborative workflow experience using Git Fork, including branch strategies and Unreal Asset conflict resolution.
Preview gif
Skill Play YouTube Playlist
Github Repository
Github - CHronoBreak
- Cannot share because the source code is prohibited from being shared





Top comments (0)