Player Movement System || Unreal 4.10.2
I created a gameplay prototype that recreates the 3D Movement Gear from Attack on Titan with math.
One day I was bored, so I decided to explore the challenges of replicating an existing concept from non-game media in a video game engine. The project I chose was creating a player movement system inspired heavily by the 3D Movement Gear from the Anime/Manga Attack on Titan in Unreal Engine 4. In the Anime, the gear is a dual set of gas-powered grappling hooks, which allow the user to move quickly through any environment by anchoring on and pulling towards surrounding structures, gaining velocity on all axis. After prototyping and exploring the actual feel of this system, I think the resulting gameplay could be an awesome fusion of Spider-Man 2 and Shadow of the Colossus. Hopefully one day someone makes that game.
The two biggest challenges I ran into building this movement system were:
How to properly map inputs to give players as much control as possible over how they moved
How to determine the best anchor points for the player to use next
Luckily, the solution to the second problem led me to the solution to the first. Originally I had the left and right cables controlled by the left and right mouse buttons/gamepad triggers respectively. While I was experimenting with how to use raycasts to find anchor points, I realized that in order to prioritize forward movement through openings and gaps wherever the player is looking, the best method was to trace outward in a fan from the center of the camera view in discrete angle intervals until both sides find a valid grab point.
This solution worked great but made me realize 2 things: that having to constantly press both cable buttons was really annoying, and that the system had no good way to move to a specific location with any level of accuracy. To fix both of these problems, I changed to the current control scheme, which uses left click to shoot both cables to their current best anchor points, and right click to shoot one anchor to the center of the camera view. This meant you could now easily use both cables for moving fast and one cable for moving precisely to a single location. I also eventually made it so that if you have one cable anchored with right click, you can press left click to fire the second cable, which really lets players move the way they want to.
I also used this project as an excuse to get some practice with rigging and animation, as well as trying out new mechanical ideas to mix with the gear's movement. I added two new movement mechanics:
A triple velocity-changing jump mechanic that charges when you grind on any surface and requires proper timing to execute.
A basic thruster that allows the player to glide through the air and over surfaces.
These new mechanics mixed really well with the system and added a new layer of complexity for mastering the gear. The final system shown above is still very rough but shows that the traversal is inherently fun and would be a great basis for a more robust game. I would also love to see how these mechanics mix with combat, but that's for another day.
Translate a complex concept from a different medium into a gameplay system using only references from the original media
Build the Titan Gear Movement System using three core pillars:
Fast, focused, and fluid movement
Easy to use, difficult to master
All traversal actions have satisfying weight/momentum