Setting the Foundation
Player movement is the cornerstone of the project, everything else, from combat to exploration, depends on it feeling good. My goal at this stage wasn’t to perfect it, but to build a solid base I could expand and iterate on later.
I started with basic locomotion: walking, running, and a simple stamina system controlling sprint duration and recovery.
Even in this early form, it already adds a bit of tension and rhythm to movement, and will later connect to the player stats system.
Vaulting, Climbing, and Motion Warping
This part was more experimental but also the most rewarding. I wanted to see how far I could push environmental navigation, so I added vaulting and climbing using motion warping to align the player precisely with animations.
It took a lot of trial and error: animations misaligned, root motion didn’t always behave, and transitions needed tweaking. But once it worked, it opened a lot of design possibilities for multi-level exploration and stealth-oriented movement.
Right now, all of this was built and tested in third person, though I recently switched to first person to experiment with a more immersive approach. The foundation remains, but I’m now adapting the same systems to work from a new perspective.




Combo System and Assassination
After setting up locomotion, I moved on to something more dynamic: combat. The goal here wasn’t to finalize mechanics, but to prototype different combat flows and see how movement, stealth, and AI could interact.
I began with stealth kills, since they bridge movement and combat naturally. When the player is behind an unaware enemy, pressing the attack input triggers a stealth assassination animation.
From there, I expanded into open combat. I created a combo system using animation montages and notifies, with each attack triggering the next stage if the player inputs within a small timing window.
Hit detection uses line traces along the weapon’s path, which keeps things simple but reliable for now.
These systems are still experimental, but they give me a solid foundation for testing pacing, responsiveness, and animation transitions.


AI Detection and Patrol
To make combat feel grounded, I also set up basic enemy behavior using Unreal’s Behavior Trees and AI Perception.
Enemies patrol, detect the player through sight or sound, and switch to an alert or combat state before returning to patrol.
They’re currently simple in behavior, but even this early setup adds life and reactivity to the world.
I also added a lightweight targeting system using line tracing, letting the player automatically face nearby enemies during attacks, a small detail that already improves flow and readability.



Building the Framework
After getting movement and combat to feel solid, I wanted to give players a way to manage objects. The goal wasn’t to make a final inventory yet, but to create a foundation flexible enough to expand later.
The inventory is built around a Data Table that defines all item information. Each item entry includes a few key elements:
-
ID – a unique reference for quick lookup.
-
Item Type – weapon, armor, consumable, or quest item.
-
Stat Modifiers – values like damage, defense, or stamina cost.
-
Equip Slot – defines where it can be equipped (right hand, torso, etc.).
This data-driven setup keeps things flexible. I can easily add new weapons or equipment later without touching core logic. Right now, equipping works across different body slots, though only the regular sword is fully functional at the moment.
UI and Usability
I built a simple inventory interface using Unreal’s widgets. The UI dynamically updates based what the player is picking up. It’s still very minimal, but it serves as a good testing tool for the logic behind equipping and managing items. At this stage, it’s more about functionality than visuals, making sure item changes update correctly.
This setup gives me a clean, modular base to build on later, whether that means adding visual feedback, expanding stats, or integrating with quest rewards.



Giving Purpose to the World
After setting up movement, combat, and inventory, I wanted to give those mechanics a sense of purpose by adding narrative goals.
At this stage, my focus wasn’t on writing story content, but on building a flexible framework that could later support story progression, branching objectives, and dynamic feedback.
The system is built around a few core components:
-
Quest Manager – tracks all active, completed, and failed quests.
-
Quest Data Table – defines each quest, its objectives, and future rewards.
-
Quest Object – created when a quest starts; it tracks the player’s progress.
Objectives and Dialogue
Each quest is divided into objectives that update through world triggers, for example, defeating an NPC or opening a chest.
Right now, there’s no reward system yet, but the full gameplay loop (start → progress → complete) is functional.
Every objective has:
-
A condition type (location, interaction, item, kill, etc.)
-
A target reference (actor or variable)
-
Completion logic and event hooks
The system also supports basic dialogue, currently using placeholder text for quest-givers.
Even in this simple form, seeing quests drive the player’s actions gives the project a much stronger sense of progression.
It’s a solid base to expand later with rewards, dynamic dialogue, and more complex quest chains.



Welcome to my Devlog!
This is where I document my journey learning Unreal Engine 5 and Blueprint scripting through a personal project. I’m building the core systems of an RPG-style game, with the goal of eventually creating a small level that plays like a mini immersive sim—think Dishonored or Deus Ex, where multiple mechanics offer different ways to solve a challenge.
The main reason I’m doing this? To learn. But I also want to showcase how I think and work as a designer—how I break down problems, adapt solutions, and build systems step by step. e player stats system.


