Companion Game is a vertical slice action shooter that explores Companion AI & Command design in real-time action genres. The project is explores the design challenge into two genre iterations: Top-down and Third-person over-the-shoulder.
This project was created for my "Final Year Project" where I had to explore a design challenge; I chose to create a gameplay system that allows for companion control during real time action shooters, inspired by games such as Mass Effect 2 or Marvel Rivals. The first iteration was created entirely for my Final Year Project; but after submission I didn't feel satisfied with the final vertical slice, it didn't push companion design enough for me. So after graduating, I set aside 2 personal weeks and produced the second iteration, building from the systems set in the initial iteration.
I wanted to find a design where companions feel like an extension of the player's toolkit and follow orders from the player without overloading the player with options or feeling like they require constant micromanagement. Through both vertical slices I constantly iterated on the game loop companion design, ability design and the Teamup System: a system that allowed companion & player abilities to combine into more impactful abilities that changed the moment-to-moment gameplay.
Role
Technical & Gameplay Designer
Project Length
4 Months
Team Size
Solo
Engine
Unreal Engine 5.6
For the first iteration (Top-down), I designed a control scheme that allowed players to order commands without interrupting the moment-to-moment gameplay or flow of combat. Each companion had three unique abilities mapped to dedicated inputs, holding Space or Shift allowed the player to focus on a companion and order abilities.
Whilst this did maintain the fast-paced nature of the game and dedicated buttons were helpful for players, this did cause a few issues for players.
Intuitive controls -- Players found it difficult to remember the buttons for focusing on companions.
Multiple abilities -- Each character having 3 abilities AND all featuring Teamup abilities led to an extremely steep learning curve with players learning only a couple abilities and sticking to them or just not utilising them at all.
UI communication -- Although most of the controls were visible on the screen, due to the fast paced combat and the fact that focusing on companions did not slow the game down, it led to players not having enough time to learn controls or even look at the UI.
Following the feedback from the first iteration, for the second iteration (Over-the-shoulder), I took inspiration from Square Enix's Guardians of The Galaxy.
To command companions, players pull up a "command menu" whilst the game significantly slows down, giving players the opportunity to read the UI at their own pace. Players then choose which companion they wish to command before choosing a command, with the command wheel changing to that companion's primary colour for affordance. Players can order the companions to do the following:
Focus -- Tell the companion to focus on a specific enemy
Ability -- Perform their only ability
Move -- Tell the companion to move to a specific location
Wander/Hold -- A toggle option that enables or disables companions to walk around on their own or walk towards whoever they are fighting
This iteration was far easier for playtesters to understand and fixed all the issues from the first iteration. Players were now able to actually strategise with their companions. Additionally, companions only featuring one ability made it far easier to perform Teamup abilities as players knew exactly what the ability would do.
Creating both iterations taught me the importance of balancing mechanical depth and iterating design so players will have a far more enjoyable experience with the systems. Additionally, the second iteration explored my design challenge far better as it attempted to create a system for a genre that could be explored further.
For both iterations of Companion Game, a large aspect of my design challenge included the balancing of companions, enemies, primary firing, damage number data tables and many abilities.
Each ability was carefully designed to feel impactful, be viable in quick combat and have enough affordance for quick understanding. Basic companion abilities were made to change the moment-to-moment combat and have enough affordance for Teamup Abilities. Teamup abilities was the main focus of this project, a way for companion abilities to combine into stronger abilities; making companions far more viable and encouraging players to utilise the command system.
The second iteration of Companion Game featured a Weakness system, where the elements (fire, water, wind, earth) of the companions and enemies affected the damage of basic attacks, abilities and Teamup abilities; adding another layer of strategy and balance to the project.
I ensured that each ability and Teamup ability was playtested by multiple people, from friends to others from my course, getting a variety of opinions. I didn't tell them how to activate the ability first, letting them try to figure out how to activate it through affordance and simply trying. Then asked how viable the ability was and if it was too difficult to activate.
A large aspect of the development of Companion Game was AI Implmentation. In preparation for this project, I set a month aside to self-teach myself Unreal Engine's Behaviour Trees and State Trees. Once I understood both systems, I decided that State Trees suited what I required far more.
Developing State Trees for the companions, I ensured that each was optimised, using proper blueprint nodes and not overcomplicating the State Tree. In both iterations, all companions were made to be extremely responsive and extremely impatful during combat.