Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UE5 Action RPG — Source Release

Source-level reference implementation for UE5 gameplay architecture: GAS-driven combat, data-driven ability features, StateTree AI, hit detection, and animation integration.

See it running

What this repository is

This is the self-authored C++ source release of a UE5 single-player action RPG portfolio project. It is intended to make the gameplay architecture inspectable and reusable as a reference.

It is not a standalone runnable or playable game project. The C++ modules have been verified to build with a compatible UE5 setup, but the original game requires the intentionally omitted assets, maps, Blueprints, DataAssets, and third-party plugins.

Author: Jung Yo Han (@ilchul1)

Code review guide

1. GAS combat ability framework

Start with:

  • Source/UE5ActionRPG/AbilitySystem/Abilities/PTGameplayAbility.*
  • Source/UE5ActionRPG/AbilitySystem/Abilities/PTMontageGameplayAbility.*
  • Source/UE5ActionRPG/AbilitySystem/Abilities/PTCombatGameplayAbility.*
  • Source/UE5ActionRPG/AbilitySystem/Abilities/PTGameplayAbility_ComboAttack.*

The ability hierarchy separates common lifecycle handling, montage execution, and combat-specific orchestration so that player and AI-controlled actors can share combat rules.

2. Data-driven ability features

Start with:

  • Source/UE5ActionRPG/AbilitySystem/AbilityFeatures/PTAbilityActionData.h
  • Source/UE5ActionRPG/AbilitySystem/AbilityFeatures/PTAbilityFeature.*
  • Source/UE5ActionRPG/AbilitySystem/AbilityFeatures/PTAbilityFeature_GEApplication.*

Combat actions are composed from FInstancedStruct features rather than a separate C++ class for every attack variation.

3. Weapon hit detection and reactions

Start with:

  • Source/UE5ActionRPG/Combat/Trace/PTAttackTraceComponent.*
  • Source/UE5ActionRPG/Combat/Trace/PTAttackTraceTypes.h
  • Source/UE5ActionRPG/AbilitySystem/Effect/PTGameplayEffectContext.*

The trace component uses post-physics sweep interpolation for fast weapon movement, favors mesh hits when possible, and falls back safely to collision shapes.

4. StateTree combat AI

Start with:

  • Source/UE5ActionRPG/AI/PTAIConfig.*
  • Source/UE5ActionRPG/AI/Tasks/PTStateTreeTask_SelectAbility.*
  • Source/UE5ActionRPG/AI/Tasks/PTStateTreeTask_TriggerAbility.*
  • Source/UE5ActionRPG/AI/TriggerDecisions/PTTriggerAbilityDecision.*
  • Source/UE5ActionRPG/Subsystem/PTAttackTokenSubsystem.*

Ability selection, execution timing, and multi-enemy attack coordination are deliberately separated into configurable systems.

5. Gameplay-tag-driven Motion Matching state synchronization

Start with:

  • Source/UE5ActionRPG/Animation/Components/PTMotionMatchingProxyComponent.*
  • Source/UE5ActionRPG/Animation/DataAssets/PTMotionMatchingConfig.*
  • Source/UE5ActionRPG/Interfaces/PTMotionMatchingProxyProvider.*
  • Source/UE5ActionRPG/Character/Hero/PTPlayer.*

The proxy resolves Ability System gameplay tags into one active state per configured motion-matching sync group. The data asset defines group tags, priority order, and fallback states; PoseSearch databases, Choosers, and animation assets are intentionally excluded from this source release.

Engine and dependencies

The public source was last verified with Unreal Engine 5.8 on Windows. A compatible C++ Unreal Engine installation is required to compile the modules; the excluded assets and plugins are required to run the original game.

The original project uses Gameplay Ability System, StateTree, PoseSearch, Motion Warping, Enhanced Input, Niagara, and MVVM-related engine modules.

The original project also used third-party plugins that are not included here. See NOTICE.md before attempting to reuse or build any part of this code.

Public-build decal behavior

The private project used an optional SkinnedDecalComponent integration for character-surface decals. Its source, content, and module dependency are intentionally absent from this repository. Accordingly, UE5ACTIONRPG_WITH_SKINNED_DECALS is set to 0 in UE5ActionRPG.Build.cs:

  • UPTDecalManagerComponent keeps its gameplay-facing API and the original integration code for review.
  • The third-party implementation is compiled out, so decal spawn and clear calls are no-ops in this public source release.
  • This removes that plugin as a C++ build blocker; it does not make the repository playable, because project assets and Blueprint content remain excluded.

Content-dependent systems

The source-only release deliberately excludes the EQS and Blueprint assets used by some optional systems. They therefore degrade safely rather than assert at startup:

  • Pressure-slot allocation stays unavailable until UPTAISettings.PressureSlot.SlotQuery is configured with an EQS asset.
  • Item-drop spawning is a no-op until UPTCombatSettings.DroppedItemClass is configured with a dropped-item class.

These systems can be configured with compatible assets in a local project; their missing assets do not affect C++ compilation or the rest of the source review.

Repository scope

  • Included: self-authored C++ source, target files, project descriptor, and minimal configuration for code context.
  • Currently excluded: all original project assets, maps, Blueprints, DataAssets, third-party plugins, engine code, packaged binaries, cache files, local browser exports, and the private repository history.

Roadmap

This repository is currently a source-release portfolio. The following is an intended direction, not a delivery schedule or product commitment.

Near-term: editor-playable public sample

  • Build a minimal editor-playable sample that demonstrates representative C++ gameplay systems in Unreal Editor.
  • Add only the maps, Blueprints, DataAssets, .uasset files, and configuration needed to exercise representative combat, AI, and animation flows.
  • Replace private-project dependencies with public-sample equivalents; the goal is to demonstrate the architecture, not to recreate the original game.

Public asset policy

  • Public sample assets will be self-authored, CC0, or Unreal Engine Examples/Template content only after their source-redistribution terms have been confirmed.
  • Marketplace, Fab, Quixel, Paragon, and private-project assets will remain excluded from public source control.
  • Any non-authored asset included in a future sample will have its source and license documented separately and will not be covered by this repository's MIT License.

Future exploration: modular plugins

  • Evaluate extracting independently useful systems into self-contained Unreal Engine plugins after the public sample validates their dependencies.
  • Initial candidates include the GAS ability and data-driven feature framework, StateTree combat AI and attack-token coordination, and the weapon hit-trace and reaction pipeline.
  • Any plugin release will require an independently reproducible sample, documented dependencies, confirmed redistribution rights, and a sustainable maintenance scope.

License

Unless otherwise noted, the self-authored source code, configuration, project descriptor, and documentation in this repository are available under the MIT License.

The MIT License applies only to material owned by this repository's author. It does not grant rights to Unreal Engine, Epic Games content, Marketplace/Fab/Quixel content, third-party plugins, or any omitted project assets.

About

UE5 C++ action RPG gameplay architecture: GAS combat, StateTree AI, Motion Matching, and data-driven systems

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages