Skip to content

davon92/UEActionRoguelike

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Action Roguelike

Unreal Engine C++ gameplay prototype focused on rebuilding and demonstrating core action-game systems: character input, projectile attacks, interaction targeting, damage response, health state, and effect/audio feedback.

This repository is positioned as structured Unreal C++ practice and portfolio proof. It is not presented as a shipped commercial title; the value is in showing how the gameplay pieces are organized, extended, and explained.

Portfolio Focus

This project is useful evidence for:

  • Unreal C++ gameplay programming fundamentals
  • Component-based health and damage flow
  • Projectile inheritance and attack dispatch
  • Player interaction detection using overlaps, view direction, and interfaces
  • Enhanced Input setup for movement, look, jump, and multiple attacks
  • Gameplay feedback through animation, Niagara effects, and audio
  • Debug visualization for interaction reasoning

Current Technical Highlights

Character And Attack Flow

ARogueCharacter owns player movement, camera setup, input bindings, attack triggers, delayed projectile spawning, damage handling, and death response.

Key ideas:

  • Enhanced Input actions are bound in SetupPlayerInputComponent.
  • Primary, secondary, and tertiary attacks share one delayed projectile-spawn path.
  • Attack animation, casting effect, and sound are triggered before projectile spawn.
  • Damage routes into the action system component instead of directly mutating character state.

Action System Component

URogueActionSystemComponent stores a small attribute set and exposes health changes through a multicast delegate.

Key ideas:

  • Health changes are clamped to a max value.
  • State changes broadcast OnHealthChanged only when health actually changes.
  • Character death behavior subscribes to the component event instead of polling health.

Projectile Hierarchy

ARogueProjectile provides shared projectile setup through a sphere collision component and projectile movement component.

Specialized projectiles build on that base:

  • Magic projectile applies point damage and spawns impact feedback.
  • Black hole and teleport projectile classes extend the attack vocabulary.
  • Collision behavior is separated from character input code.

Interaction Component

URogueInteractionComponent scans nearby interactable actors, scores candidates by camera-facing direction, and stores the best target for interaction.

Key ideas:

  • Uses overlap queries on a custom interaction channel.
  • Chooses the most forward-facing interactable using a dot product.
  • Uses debug shapes/text to visualize candidate selection.
  • Calls IRogueInteractionInterface so interactable actors stay decoupled from the player component.

Exploding Barrel

AExplodingBarrel demonstrates a damage-triggered world actor:

  • Starts warning feedback when damaged.
  • Uses a timer before detonation.
  • Applies radial damage and radial force.
  • Spawns explosion Niagara/audio feedback.

Key Source Locations

Area Files
Character/input/attacks Source/ActionRoguelike/Player/RogueCharacter.*
Health/action component Source/ActionRoguelike/ActionSystem/RogueActionSystemComponent.*
Interaction targeting Source/ActionRoguelike/Player/RogueInteractionComponent.*
Interaction interface Source/ActionRoguelike/Core/RogueInteractionInterface.*
Projectile base/classes Source/ActionRoguelike/Projectiles/*
World damage actor Source/ActionRoguelike/World/ExplodingBarrel.*
Game mode/types Source/ActionRoguelike/Core/*, Source/ActionRoguelike/RogueGameTypes.h

Running The Project

  1. Install Unreal Engine 5.7 or the closest compatible version available locally.
  2. Clone the repository.
  3. Open ActionRoguelike.uproject.
  4. Let Unreal regenerate IDE project files if prompted.
  5. Open the main gameplay map in Content/ and press Play.

If the engine version changes, regenerate project files from the .uproject before building C++.

What I Would Improve Next

  • Rename lingering Rouge file/class typos to Rogue after verifying Blueprint references.
  • Add clearer null guards around input/component binding paths.
  • Move repeated attack setup into a smaller helper or data-driven attack definition.
  • Add screenshot/video proof of attacks, interaction selection, and barrel detonation.
  • Add an architecture note explaining ownership of character state, damage events, and gameplay feedback.
  • Add a focused debug overlay or console commands for validating health, damage, and interaction state.

Interview Topics This Project Supports

I can use this project to discuss:

  • How input maps to gameplay actions in Unreal.
  • Why health changes are routed through a component and delegate.
  • How projectile inheritance reduces duplicate attack code.
  • How interaction targeting can be debugged visually.
  • How to separate character responsibilities from world actor behavior.
  • How I would refactor a prototype into a stronger production-ready system.

Status

Active rebuild project. The current goal is to turn it into a clear, inspectable Unreal C++ proof piece with screenshots, a small vertical slice video, and one deeper architecture write-up.

About

Unreal Engine C++ action roguelike prototype for gameplay systems, projectiles, interaction targeting, health/damage, and portfolio-ready architecture notes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors