Stray: The Wayward Path is a third-person action-adventure game where you play as Aapo, a boy with a powerful mechanical arm that you can use in combat and grapple around the environment.
Role: Design Lead/Systems Designer
Team Size: 14
Built with Unreal Engine 4
My Responsibilities as a systems designer and Lead Designer were:
- Researching, designing, and prototyping our combat system
- Implementing a simple scripted event system
- Scripting gameplay events with Unreal 4 Blueprints
- Prototyping behavior tree AI
- Testing and iterating game feel/player feedback
- Facilitating team meetings and directing conversations forward
- Creating and maintaining design documents
- Giving and receiving critique regarding current and planned game systems
- Participating in agile development and encouraging team discussion to help resolve problems quickly
The intent was to build a game that empowers the player while offering easy to use exploration mechanics such as a grappling hook and a glider. The combat’s goal is to provide a moderate challenge to the player while remaining interesting through enemy combat mechanics, synergy with movement mechanics, and narrative purpose.
Below is a short journey through multiple iterations of combat:
Iteration 1 – First try at ‘Gauntlet’ based combat
Something we knew about our game from the get-go is that our player will have a mechanical arm to use for exploration and combat. The first iteration of a combat ability attempted to lean hard into the idea that the mechanical arm is an extension of the player character. However, we found very quickly that there were many problems.
Players couldn’t aim their combat ability and move at the same time, which does not align with the intent of the experience. Another issue was that the system was not scalable; the player blueprint was already starting to get filled with different functionality, and if this pace kept up we’d have an unreadable mess pretty soon.
Iteration 2 – A more modular approach
To address the earlier feedback, I change the kind of attack to something that didn’t require precise aiming. I also split up the player and the combat itself, spawning a separate actor instead of having a persistent one attached to the player. This gives designers the ability to iterate the combat values as well as the player values in parallel, allowing for faster iteration.
Iteration 3 – First try at 2 separate combos
My first attempt at actually making the combos went ok, but there were still some problems. Overall, combat was still too slow, enemy knockback was way too wild, and the attacks themselves didn’t feel unique; the VFX, SFX, and knockback on the enemies were practically identical between the two combos.
Iteration 4 – Working on making the combos feel unique
Things were starting to look better now. I designed and implemented enemies for the player to hit, did a few VFX color changes to try and better differentiate the abilities, and spent a lot of time working on game feel. The enemies were a baneling-type enemy that begins to explode if it gets close to you, and a manta ray that fires projectiles from a range.
All Together Now
Now, we are able to combine movement and combat mechanics to make some more interesting variations. The player knocks up an enemy and then grapples to them in order to deliver the finishing blow. This version was the best received thus far, but there are definitely more improvements to make as development proceeds.
This project is currently in production, you can find more info at https://justiceporkgames.com/