November 30th 2022
Here are a few Gifs and an overview of a movement system for an open-world game I’ve had in my head for a few years now.
Engine | Unreal Engine 5 Duration | Two Weeks Team | Solo Roles | Locomotion Designer, Programmer
Design Goals
Flow mastery is the name of the game. With my love for Skill Expressive movement systems, I wanted to make my own where players can travel vast distances by combining one move after another.
Encourage refinement yet have diversity. When a move has a specific use case that means each one is important to the overall kit to help achieve specific goals. But if different players take different paths by using different moves they should be allowed to do so.
Limited buttons, expansive move-set. Wanting to have a movement AND combat system with serious depth, I want to limit the number of buttons each system uses by having them perform many context-sensitive actions.
Personal Goals
Gain a deeper understanding of Unreal Engine 5’s Blueprint system. I’ve worked in UE before but I want to develop prototypes more efficiently and in turn faster.
Use a proper design document. I not only found this a great template but researched what best practices to have when creating a design doc to have all of my thoughts and ideas be more digestible.
Link to my Design Doc | Link to Rosa’s template (Can be duplicated for self use)
Keep a Dev-Log. I wanted to keep a Dev-Log to write down experiences I had while developing. From bugs, to my thoughts on the design & implementation of mechanics throughout development, to reflecting on workflow and if I was or wasn’t satisfied with what I accomplished that day.
Challenges & Solutions
Limited button mapping. Because this project was only one system of a greater game I purposefully limited myself to use as few buttons as possible. To achieve that I had to program a whole flow chart of context sensitive actions using enumerations. In the end I managed to make everything you see on this page with just two face buttons, the right trigger and the left joystick button.
Learning and switching programming styles. Since this was my first major project in Unreal I wanted to learn as much as I could about the blueprint system. So I started off using branches and booleans to create the movement state system to determine what moves were possible in each state. But after learning about enumerations, I restarted almost entirely from scratch. In the end my blueprints were much more comprehensible and organized, and I now know of multiple ways to achieve the same result.