For nearly two years, I’ve been immersed in small projects and commissions within UE5, yet I’ve never fully committed to creating something truly my own—something worth sharing. From the moment I first dabbled with Project RPG Alpha (dont worry I still have that toiling away somewhere), my humble RPG Maker game, the thought of evolving it into a fully-fledged Unreal Engine experience has lingered in my mind. But as I poured myself into that project, a new, insistent idea began to take root, demanding my attention, refusing to be ignored.
That was a 3rd person / top down action/RPG game, Lets have a bit of a back story.
My love for old-school games runs deep, rooted in countless hours spent on the Commodore 64, and evolving with each new generation of console and PC alike. Among those early treasures, The Last Ninja II by System 3 held a special place in my heart—a masterpiece that captivated my imagination. I’ve long believed this iconic game deserved a rebirth in a modern engine, and many have tried to bring it back to life. Yet, each attempt has been silenced by cease-and-desist orders, as System 3 fiercely guards their stake in this legendary title.
Last Ninja II – Commodore 64
As a game developer, especially in the indie scene, I fully understand the importance of protecting IP and copyright—they’re the lifeblood of our industry. So, I decided to put the idea on hold, at least for now. But then, another light-bulb moment struck: why not create a shooter from a similar perspective? My mind instantly flashed back to the thrill of playing Cannon Fodder as a kid—the addictive music, the nonstop action—it had everything I loved in a game. Yet, what really stuck with me was the iconic main menu: the green hill dotted with the graves of your fallen soldiers, while new recruits marched down to the recruitment barracks. This haunting image left a mark on me, and now, I’m driven to recreate that atmosphere—but with my own twist, breathing new life into that nostalgic memory.
Cannon Fodder
Without revealing too much—after all, IP is sacred—I’m aiming to reinvent this concept with a fresh twist. Imagine a game where your player-created character isn’t the only hero—other playable characters come with their own status, ranks, experience points, and the looming threat of perma-death. I’m also toying with a POW mechanic that adds an intense layer of strategy: rescuing captured comrades and returning them to your ranks, knowing full well that each mission could be their last. It’s a dynamic, high-stakes world where every decision could mean the difference between victory and permanent loss.
Enter: Project ProtoFodder
Once again, protecting IP is key, so ProtoFodder is just a working title—a nod to the inspiration driving this project. I wanted this game to be a true reflection of my vision, so I started from scratch with a blank UE5 project, building everything from the ground up. For now, I’m using models from the marketplace and Sketchfab, allowing me to focus on prototyping the core game mechanics. But before I could dive into that, I needed to establish the basics—a functional level and a solid movement system—to lay the foundation for what’s to come.
I began by crafting a basic floor plan and pinpointing the ideal location for the starting area. From there, I partitioned off various sections, realizing I needed a dedicated space for spawning enemies. It was crucial to avoid the pitfall of designing an expansive test level only to later struggle with integrating the movement and aiming systems. My focus was on creating a functional environment that would allow me to fine-tune these mechanics effectively before expanding further.
I shifted my focus, diving into the technical setup by organizing a dedicated folder for my AI components. I integrated an IMC and mapped out the movement keys, then moved on to the Character Blueprint to refine the aiming-at-cursor system. The results were promising—my character could now navigate the environment while tracking the cursor with precision. It was a significant milestone, marking the successful implementation of a core feature.
To cut to the chase, after nailing down the look-at-cursor system, I turned my attention to testing the weapon aiming mechanics. I created a crosshair cursor and equipped my character with a pistol to see how it would handle. That’s when I hit my first major roadblock: the line trace. I set up two trace points—one from the pelvis and another from the barrel of the pistol—but quickly realized the trace from the barrel wasn’t intersecting with the crosshair. This misalignment meant that shots fired at enemies wouldn’t hit where the player aimed, presenting a critical challenge I needed to overcome.
No matter what I tried—tweaking aim offsets, adjusting parameters—I just couldn’t get my character to aim precisely at the cursor. I suspected the issue lay with the camera angle, but I couldn’t figure out how to resolve it. Up until now, my experience had been with third-person, first-person, or top-down games—never one where the camera was set at a distance with such an unconventional angle. It was a frustrating challenge, one that pushed me to confront the limits of my knowledge and forced me to think beyond my usual approaches.
My progress ground to a halt. Countless hours bled into frustration as I tried every possible approach to perfect the look-at-cursor function. I scoured forums, dug through endless YouTube tutorials, hoping for a breakthrough. But no matter what I did, nothing worked.
In the end, I gave up.
Breakthrough
It had been nearly two months since I last opened my project, and the frustration had drained even my desire to work on my RPG game. I haven’t mentioned this on my blog before, but I’m a tertiary education teacher, specializing in general IT and game development. Recently, during a lecture on game development using UE5, a student asked a question. Though it wasn’t directly related to my issue, the way they phrased it sparked an epiphany—ray tracing!
I had been stuck on line tracing all this time, but then it hit me—why not use ray tracing from the camera to the plane and create an intersection to fix the cursor problem? Math has never been my strong suit, so I did some Googling and pieced together a solution from various sources. With a bit of trial and error, I managed to set up a ray trace to line intersection.
Ray tracing to line intersection is all about precision. Instead of relying on basic line tracing from the character to the cursor, I realized I could leverage a more sophisticated approach. By casting a ray from the camera—essentially a straight line—to the game’s plane, I could calculate the exact point where that ray intersects. This intersection gives a true point of reference for where the cursor actually is in 3D space, perfectly aligning the aim. It’s a more complex solution, but one that ensures the character’s aim hits exactly where the player intends. It took some research and a bit of cobbling together, but it finally brought everything into focus.
Vola! With the new system in place, my shots finally hit their mark, bringing those pesky enemies down with precision. Since then, I’ve made significant progress, even overhauling the older weapon system—but that’s a story for another time.
Sometimes, all it takes is stepping away, letting your mind clear, and trusting that the solution will eventually reveal itself.
Until next time!