1st-person parry before....
1st-person parry now
The main goal of this project was creating 1st-person melee combat that grips people in it's back and forth, and soon, I'll be making a video to show the main iteration focuses I helped with, particularly on our parry mechanic, to make our first-person melee combat something players keep coming back from death for.
It's been a rewarding process going from watching players getting frustrated and finishing their playtest that way, to struggling for 45 minutes, but keeping on trying with a defiant gleam in their eyes, saying "this next one is it", and getting better each time, and I'd like to share some of the targeted iterations I collaborated with the team on to help us get something of that motivating style of difficulty.
Waking up at death's door, and covered in sand, you find yourself merged with mysterious nanomachines; barely keeping you alive in a desert wasteland. Not knowing the history of war that lead the world to this state, and soon finding you are not alone, you must rely on your skills in sword combat and lost, magic-like technology to survive the mechanical onslaught, and take the fight back to the mechanical overlord of it all.
Team:
Gameplay Programmer
Prototyping character mechanics, like the melee parry and magic projectile.
Implementing animations from our character animator.
Iterating on player mechanics through design collaboration, and playtesting.
Researching emulation targets to better inform gameplay design.
12 months      21
First Person Melee Dungeon Crawler
PCÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Unreal 5
As we're just about finished with pre-production, we are about to dive deeper into improving our mechanics, and here are some of the mechanic prototypes I've created to get us ready.
Melee Parry - Meant to be a our semi-risky, but powerful tool of defense, we intend to have this ability help keep our combat intense by rewarding fighting close and personal.
Electric Blast - A projectile that chips away at both an enemy's health, and stagger meter, letting the player lay a ranged smackdown after a melee barrage.
We definitely have more to do with looking at factors like the risk vs reward of the parry, and how the magic affects the melee combat, but it's been fun seeing how testers react to the combat so far, and we will push these mechanics further as we move past pre-production.
The red event marker allows adjusting where the perfect parry window begins in the parry animation.
The perfect parry frames value allows for changing how long the perfect window lasts.
Adjusting the parry is set up this way mainly because the event lets us ensure that the perfect parry window starts at a sensible time in the animation, and the window length value is easier to conceptulize when put in terms of frames.
While this project still has another half of development time to go, we have finished up with our pre-production phase, and with this being the largest interdisciplinary team I've worked on so far, and my first larger 3D game/ Unreal Engine 5 project, there is a lot I felt like I learned about team dynamics, and best practices for prototyping. First, as my main programming responsibility this semester was creating mechanic prototypes, I saw the benefits of when we could prototype speedily, and how this is partially enabled by constant iteration. I also observed problems unfold, be they game or team related, and how easily they were solved through direct communication. And, for strategies to push a mechanic forward in all departments, I saw the successes of strike team-like groups, and group feature check-ins.
Usefulness of speed vs modularity/ likelihood of later refactoring, for prototyping
In beginning this project, there were a lot of considerations, as we were both learning the engine, and planning for the game. Routine tasks included those like figuring out what mechanics we should prioritize, but we also needed to figure out our workflow balance with C++ and blueprints, how the unreal animation system worked, and more. So, while I wanted to jump in and get mechanics playable in-game, so we could then test them and iterate quickly, I also felt that I needed to understand how organizing systems in blueprints compared to C++, when to code in animation and actor blueprints, and how to handle the player's state in all this, so that blueprints wouldn't become a mess of logic as we tried to add more features. However, after seeing the power of another teammate's prototype he was able to get in, I realized that my focus on modularity, and understanding the whole picture of how unreal systems worked together was not the most helpful goal at the moment. With his prototype for our main sword attacks, it boosted morale seeing previously worrisome systems working in-engine, and this also enabled teammates like the artists to see their work, such as sword models and swing animations, applied to a realistic context. Furthermore, the methods he used for creating the prototype helped expand my understanding of how some of unreal worked, even if some of the methods would be changed later. I did need to get some help understanding certain systems, but after that, and started in on my own prototype for the player parry, which I got working fairly soon after. There were iterations I needed to make, such as those that became clear after learning better unreal practices, but there were going to be iterations either way, and by having the prototype available for teammates to see and work with, it also enabled people like the character animator to iterate on character animations much sooner. Overall, getting a prototype up quickly jumpstarted the other pieces involved with that mechanic, and I feel like as long as I have a reason for why I am implementing a prototype a certain way, then I don't need to have the full picture of how other systems might work to start making one. And, after making the first prototype, the team can have the benefits of a live prototype they can test their assets on, rather than a prototype that is made later, which may require less tech side refactoring, but would allow for fewer opportunities for iteration on the mechanic, and the associated assets.
Importance of direct and timely communication for solving issues
Both with game features, and in the work situation between teammates themselves, there were a variety of issues the came up over the course of the semester. Sometimes they were conflicts about role responsibilities, and other times they were random yellow lines being drawn on the screen that never went away. However, big or small, and even though it seems simple in hindsight, most of these issues stemmed from a lack of prioritizing direct communication when solving issues. Of course, especially with disagreements, it can be difficult for people to directly confront the person, clarify their idea of the problem, and to talk with the other person about how to solve it. But, almost every time people were able to do this, the ambiguous issues that put a dampener on team morale suddenly we often cleared up by the end of the day. While it sometimes took time to discern what the exact problem is, working directly on a solution with the people involved made it so much easier than waiting till the problem could not be avoided, and it also gave people a chance to share their perspectives, and understand the intentions of both sides of a disagreement. This also eliminated false perceptions of a situation, when, for instance, one person thought the negative parts of an action were intentional, but the other person wasn't aware there was an issue. With this, some larger issues on our team were solved like this, but even fixing bugs was much easier to handle when, for instance, I found an issue with the enemies interacting strangely with my projectile prototype, and I made an effort to go to the AI programmer sooner, and ask for his take on why it may be happening. I usually try to do my due diligence in finding a solution before I bring another person in, but this sometimes takes a while, and it really does just get things done faster when you have multiple minds, and multiple perspectives on an issue. So, while I still intend to give things a look before bringing someone else in, think it's more valuable to get another person in, and have a chance to solve an issue in 5 minutes, than have one person struggle for an hour. And, in issues between people, the issue almost can't be solved without direct communication, so the sooner that can reasonably happen, the better.
Usefulness of strike-team check-ins
While somewhat specific, I found targeted group check-ins for the people involved with my parry mechanic to be quite useful in keeping ideas flowing, and improving the breadth of details of the parry we were iterating on. On my team, while doing regular in-person work, we were split into strike teams based on the features that we were working on, and in my case, I was seated with the character animator, another gameplay programmer, and our technical designer, as I focused on the parry prototype. This orientation helped us quickly resolve issues as they arose, and to check in with each other, but I realized that there were still other pieces of the parry that we hadn't developed much, like the VFX when you get a perfect parry, or the SFX to go with it. So, one day, I decided to gather our sound designer and VFX artist, in addition to the regular group, and have a quick discussion on what we wanted the parry to look like, from each person's perspective. And, with this focused, interdisciplinary check-in, we were able to both create new ideas collaboratively, while also ensuring overlooked areas were being considered. Then, coming away from that meeting, we had a much clearer idea of what we wanted to create, and actionable tasks to get there. I then followed up with another one of these meetings later, and it had similar benefits, while also allowing us to consider new challenges that had come up in testing. While I know team structures vary widely, and there may not be room to have this exact kind of meeting in the future, I think the small nature of the team in these discussions helped ideas to flow more freely, and with multiple disciplines present, coupled with the focus on identifying missing areas of polish/ consideration, the meeting was easily directed towards finding actionable items tasks for improvement. At the very least, I think it's important to check in and see what areas of a feature are being overlooked, and I also plan to test and see where else these kind of check-ins may be useful.
During the production phase, my work has been mainly in refactoring and polishing player game mechanics, alongside teammates working on the player, as well as enemies, environement, and all other aspects of the game. And, after about 4 months in production, we have finished our production phase, and will most likely continue on to polish the game for a few more months next fall, before we release Remanence on steam. Feel free to check out our current trailer at the top of the page! And, if you are interested in playtesting, feel free to reach out over email or linkedin, and I'll be happy to set you up with the game!
During the polish phase, my gameplay work has mainly been making the combat feel as good as possible (particularly the parry mechanic), playtesting the feel, as well as working with artists, sound designers, and other teammates, to help the parry look as awesome as possible, as it's one of the main tools that makes combat dynamic. I also helped flesh out the tutorial, and make it work as well as we could to prepare players, even though the scope of our space isn't as large as other games focused on combat mastery, meaning we had to be a bit creative, and sometimes pretty blunt, to get players prepared to take on the many challenges of our encounters. I also worked with our character animator to put in polish passes of animations, our sound designers to implement reverb zones for audio, and as polish goes, there's also been a good amount of work fixing bugs, profiling for performance, and the like. I also worked with the team to plan and edit the trailer you see up at the top of the page, and with that, we're just about headed to steam!
Now, having wrapped up polish on the game, we're aiming to release semi-soon, and as we gather promotional materials for steam, we'll do more testing for bugs, to be as safe as possible, and maybe make a second pass at the final trailer. And, once we have everything for the steam page ready, we'll be ready to release it to everyone! Stay tuned for updates to this page, if you're interested, and prepared, to dive into Remanence!