Engine: Unreal Engine 5
Role: Gameplay Programmer & Level Designer
Key Skills: Blueprints, Dot Product Math, Physics Impulses, Global Time Dilation, State Management.
Summary: A Third-Person Action prototype focused on manipulating player perception through mechanics. The core goal was to move beyond standard "stat buffs" (like speed increases) and implement relative time dilation, allowing the player to manipulate the physics simulation of the environment.
Rather than simply increasing the character's movement speed, I engineered a system that separates the player's time delta from the world's time delta. By manipulating GlobalTimeDilation to slow the environment while maintaining the player's CustomTimeDilation at 1.0, I simulated the "heightened reflexes" trope seen in action cinema. This allows players to navigate falling hazards that would otherwise be impossible to cross.
I developed an Area of Effect (AoE) system utilizing AddRadialImpulse. Unlike standard hit-scan damage, this projectile calculates a vector from the impact point to apply kinetic force to physics-enabled actors. This results in emergent gameplay where enemies can be knocked off ledges or into environmental hazards rather than just having their health bar depleted.
To create responsive enemy tracking, I bypassed standard "LookAt" functions in favor of vector math. I utilized Dot Product calculations to determine the angle between the turret's forward vector and the player's location. This allowed for precise clamping on the Z-axis (elevation) and X-axis (rotation), ensuring the turret tracks the player smoothly across complex elevations without "snapping."
To provide visual feedback on the physics systems, I implemented a material instance swapping system. Walls track their own health states and dynamically swap material parameters (from Yellow to Red) before physics simulation takes over to crumble the mesh.
I designed a traversal puzzle that requires system mastery. The falling platforms are scripted to enable physics/gravity immediately upon collision overlap. This creates a "fail state" for normal movement, forcing the player to engage the Chrono-Shift mechanic to cross the gap before the floor disintegrates.
The Issue: Implementing a checkpoint system created conflicts between the Game Mode, the Player Controller, and the World State (resetting physics objects).
The Solution: I developed a Save Game Instance that stores the transform data of the player and the state of key environmental actors. This taught me the importance of casting strictly to a Game Instance for persistent data rather than relying on the transient Player Character.
The Issue: Early in development, I found myself spending disproportionate time on visual fidelity rather than gameplay loops.
The Solution: I shifted to a strict "Greybox First" methodology. By using simple geometry and color-coded materials (as seen in the destructible walls), I was able to iterate on the "fun factor" of the physics impulses without getting bogged down in texture mapping. This ensured the mechanic felt good before it looked good.