top of page

Project Moon Devlogs

Devlog #1
 

It starts with a full reset 😅
My Unreal Engine 5 project got corrupted, and I had to completely restart. Clean slate, no backups. It stings, but it’s also a chance to rebuild it better from the ground up.

I’m taking what I learned from the last version and applying it with clearer goals: cleaner logic, better story, more immersive flow, and better utilization of source control.

A little behind schedule, but these things happen to the best of us. More motivated than ever. Let’s do this!

devlog1.jpg

Devlog #2
 

Detective System Activated 🔎
I’ve been prototyping a detective interaction system for my project in Unreal Engine 5.
Using Epic’s Game Animation Sample as a foundation for the movement and a Ranger character mesh from the Epic Marketplace (https://lnkd.in/eXAFqprq)

The system lets the player:
• Highlight clues around the player
• Display an interact popup on proximity
• Trigger interactions tied to gameplay

It’s still early, but getting this core gameplay system working made the game feel interactive for the first time, and that’s a big milestone.
I’ll be iterating on the design and logic, perhaps adding a journal to keep all clues found in a specific scenario. Nevertheless I’m really excited about where it’s heading.

Devlog #3
 

Quest System Complete

I just wrapped up the core quest system for my UE5 prototype, and I’m excited to share how it’s shaping up!

🎯 Quest Architecture:
All quests are driven by a data table, allowing for fast iteration and scalability.
Each quest contains stages, and each stage has its own objectives.
Supports both auto-accepted quests (triggered by overlap, level start, etc.) and interactive quest givers via a reusable component.

📘 Quest Types:
Location based: travel to a designated area
Interact: speak or interact with an NPC/object
Kill: eliminate a specific enemy or target
Collect: gather a set number of items

🗂 Journal System:
Players can open a quest journal to see all active quests, descriptions, current stages, and objectives.
Objectives are checked off in real time as they’re completed, giving clear visual feedback.
Players can also track quests to the HUD, where tracked objectives dynamically update on progress.

🎁 Completion Flow:
Quests can auto complete when the final objective is done or require players to return to the quest giver for completion (and eventually, receive rewards once the inventory system is live 😅)

Building this system taught me a lot about designing widgets, UI and layered gameplay logic that’s player readable, flexible, and easy to expand. And now we move to to the combat system!

Devlog #4
 

Combat System Part 1

A little late however the core of my combat system prototype is now up and running, it’s been a rollercoaster! What started as a simple dodge mechanic has evolved into a directional, context-aware, stylized melee system… with a lot of Blueprint problem-solving along the way.

🌀 Directional Dodge System:
Dodge in four directions (forward, back, left, right)
Smart input fallback: uses WASD input if held, or camera direction if neutral
Dodges trigger different montages for each direction, driven by dot product logic

⚔️ Free Flow Directional Combat:
Inspired by games like The Witcher, Ghost of Tsushima, and Batman: Arkham series, this system allows the player to:

Automatically find the nearest enemy in movement input direction/camera direction
Smoothly teleport into range using a Timeline + Lerp (no harsh warping)
Rotate the character to face the enemy mid-action
All built with clean, reusable Blueprint logic (no C++)

🧠 Context-Based Attacks:
System uses distance to enemy to decide between:

Close-range attacks (quick strikes)
Long-range attacks (lunges, slides, spins)
Prevents repeated hits with a HitActors array tracked per attack window

🧍 Combat States:
Combat logic is driven by an enum: Passive, CloseCombat, RangedCombat, Stealth.
Switching to CloseCombat changes animation sets, combat stance, and input behavior
Automatically plays idle/fidget animations if the player stands still (with timer logic)
Uses separate Blendspaces for strafing and sprinting while in combat

🎭 Motion Matching: Attempted, Refined, and Ultimately Scrapped
Tried using Pose Search, Blend Stack, and Choosers to combine motion matching matching with combat state machines.
Realized that using motion matching is beyond my current abilities so we'll keep the base motion matching that came with the Game Animation Sample for exploration, and use traditional state machines for combat. Understanding your weaknesses isn’t a setback, it’s how you avoid getting stuck and keep your project moving forward.

🛠️ Cleanup and Rebuild:
Originally split into multiple AnimBPs for exploration and combat, but ran into animation evaluation crashes.
Re-merged back into a single unified AnimBP with layered blending for slot overrides.
Now supports weapon equip/unequip transitions, attack states, and idle-to-locomotion movement all in one place.

So what did I learn:
Animation is hard! But it was fun to learn the ins and outs of this area in Game Design.
Not everything you prototype has to ship, but everything you prototype teaches you something.
Knowing your limits helps you build smarter, not slower.

Next steps: polish and expand the combat state. Make turn in place smoother with correct animations, add weapons, and upgrade from collision based damage to trace damage.

Devlog #5
 

Free Flow Combat System Complete!
After weeks of iteration, I’ve finally wrapped up the core combat system for my prototype project, Project Moon. What began as a simple dodge and swing mechanic has evolved into a responsive, layered combat experience that feels punchy, fluid, and reactive.

What’s New:
- Attack speeds tuned for light (quick) vs. heavy (slow) strikes
- Damage system switched to weapon trace based detection
- Enemy hit reactions and death animations, and blood FX for every strike
- Combat audio, weapon swing and impact sounds

Challenges Along the Way (there were many):
- Animation Logic: I initially split combat states across two AnimBPs, this caused crashes and inconsistent transitions. Refactored everything into one unified, clean AnimBP
- Combat Feel: Balancing montage timings and blend curves took dozens of tweaks to hit that sweet spot
- VFX Experiments: I tried to spawn blood decals on surfaces behind the enemy based on trace normals. I learned a lot, but noticed I spent too much time on it with results that weren't up to my standards, so it’s on pause for now until I revisit it with a bit more experience.

What’s Next:
- Enemy Tactics: AI that flanks, assists, and reacts to your moves
- Boss Fight Prototype: Multi phase boss encounter
- Inventory & Abilities: Stamina system, weapon equipping and switching, skill animations
- Level Design: Expanding into a full village, forest scene, and crypt boss arena

 

bottom of page