This video demonstrates a custom interaction system that balances responsiveness and performance through interval-based detection. Interaction traces originate from the player's camera and follow the player's aim, providing intuitive object targeting while minimizing the cost of continuous per-frame checks.
Challenges
One of the primary challenges was preventing unintended interactions when multiple interactable objects were close together. The initial implementation used a Multi-Sphere Trace, which could detect several objects simultaneously and lead to inconsistent interaction behavior. To improve precision, I replaced it with a Single Sphere Trace system and incorporated a dot product check to ensure the player is actively looking at the target object before interaction is allowed.
This video showcases a HUD lag effect commonly found in first-person games, where the interface subtly trails behind the player's aim to create a greater sense of movement and immersion. In addition, I developed a custom health bar material inspired by the visual style of Diablo, giving the UI a more distinct and polished appearance.
Challenges
The primary challenge was ensuring the HUD not only lagged behind the player's aim but also smoothly returned to its original position afterward. While the initial lag effect functioned correctly, the reset behavior was inconsistent. I resolved this by tracking and continuously updating the widget's offset, allowing the HUD to interpolate back to its intended position while maintaining smooth and responsive movement.
This video highlights the player's primary attack, a melee shovel swing implemented using a trace-based hit detection system. To maintain performance, traces are only executed during the active hit window and are gated by conditional logic rather than running continuously. The video also showcases a damage overlay, providing clear visual feedback when the player takes damage.
Challenges
The biggest challenge was ensuring the damage overlay only appeared when the player's health was actually reduced. Initially, the overlay could be triggered by damage-related effects even when no damage had yet been applied. I resolved this by validating health changes and only displaying the overlay animation when the new health value was lower than the previous value, ensuring accurate player feedback.
Gravekeeper began as a concept created alongside classmates in the MAGIC program at Miami Dade College during a Game Jam in our first semester. As our skills and experience grew, we decided to revisit the project from the ground up, transitioning development from Unity to Unreal Engine 5.
Gravekeeper is a first-person melee action game set in a dark, cemetery-themed world. Players battle enemies, earn upgrades, and grow stronger throughout their journey in preparation for a climactic boss encounter.