The Struggle of the Directional Marker

During this week of development, one of my main tasks was to implement a dynamic objective marker, a waypoint arrow that would point players toward the delivery objective in our game Same Day Delivery. At first glance, this seemed like a relatively straightforward feature, but it turned into a far more complex and frustrating challenge due to the lack of clear documentation and conflicting implementation methods across forums and tutorials.
The biggest issue was finding a solution that worked specifically for our game’s fast-paced, UI-driven structure. Most resources I found either relied heavily on Blueprints, didn’t account for screen clamping, or were outdated for Unreal Engine 5. I needed the arrow to fade based on proximity, clamp to the edges of the screen, rotate toward the objective, and hide/show dynamically during gameplay. The lack of a robust starting point made it extremely difficult to even get the arrow to appear correctly—let alone behave properly. This problem directly affected the user experience, as players wouldn’t be able to intuitively find their objective without the marker working reliably.
To address the issue, I started by experimenting with multiple UI approaches. I initially followed tutorials using simple ProjectWorldToScreen logic, but these didn’t work well when the objective was behind the player or off-screen. The arrow would either disappear, teleport oddly, or stay fixed in the center of the screen no matter the actual target location. I also ran into problems where the delivery point reference wasn’t set correctly, which caused the waypoint to do nothing at all.
Eventually, I implemented a fully custom UUserWidget class in C++ that updates every frame in NativeTick. This allowed me to access the player and target positions, convert world direction into screen space manually, and clamp the arrow to the viewport edges while keeping the rotation accurate. I also added a fading function based on distance and ensured the widget was only shown when a delivery is active. The biggest breakthrough came when I realized the widget’s visibility and actor references had to be managed carefully—created only once and updated dynamically, not redundantly through both the HUD and GameMode.
Now, the directional marker smoothly rotates around the screen edge, fades when the player is nearby, and fully disappears when inactive—enhancing the clarity and overall gameplay experience for the player. While it took more debugging and design consideration than I anticipated, I’ve ended up with a reusable, polished system that works great for our project and will likely benefit future ones as well.
Get Same Day Delivery
Same Day Delivery
Status | In development |
Authors | Well Played Studios, InfernousX19, Zuhan, AvEnergy, DariusHolmes, fairylover8 |
Genre | Action, Adventure |
Tags | capstone, chaotic, delivery, Fast-Paced, fullsail, fullsail-university, Sandbox, Third Person |
More posts
- Demo Available Now3 days ago
- Jamming Jetpack4 days ago
- Taking Shape4 days ago
- Creating an ET (Extraterrestrial Thief)4 days ago
- More behind the scenes Same Day Delivery Production4 days ago
- Car problems/AI implementation10 days ago
- The New Building Manager10 days ago
- Finding a Navigation System That Fits10 days ago
- "I Get Ragdolled, But I Get Up Again."10 days ago
Leave a comment
Log in with itch.io to leave a comment.