Shootas, Blood & Teef
Shootas, Blood & Teef is a 2D sidescroller shooter developed by Rogueside in collaboration with Games Workshop. The game takes place in the Warhammer: 40,000 universe, following the Ork “Gargaz Teefgrabba” on his quest to retrieve his hairpiece.
For this project, I joined later during development and took on the role of Level Designer as well as helping out with rigorous testing and balancing.
Premise
Shootas, Blood & Teef (SBT) combines 2D side-scrolling platforming with fast-paced gun battles, reminiscent of classic arcade games in the same genre like Metal Slug.
It also involves both local and online co-op, allowing up to 4 players to play together.
When it came to Level Design, I was handed a set of levels that had the broad strokes finished, but needed more in-depth polish for the final release. The game was entirely developed in Unity Engine.
Gameplay of Shootas, Blood & Teef. Using twinstick controls, players are able to move and aim simultaneously, allowing quick reactions to the constant threat of incoming enemies.
Playmaker introduces a custom visual scripting toolkit that can be used by designers to implement complex behaviours without having to write code themselves. Additionally, programmers can add custom nodes to help expand functionality if needed.
Custom Tools
The vast majority of the tools used inside Unity Engine were either custom written, or imported as an external plugin. Examples include:
Playmaker (Hutong Games)
Spine Animations (Esoteric Software)
Physics (Custom In-House)
Enemy AI and Pathfinding (Custom In-House)
Part of coming into the team later during development was quickly adapting to these tools and communicating with the rest of the team to get up to speed on how to use them. Once I had a solid understanding of how to use them, I had to request new features to ensure the quality of the levels I was working on.
The Voidport Hangar
Upon joining the team, I was handed this level first as it was mostly bare-bones and a good environment to learn the tools as well as how a level should flow.
Hanging Shuttles
The first challenge the Lead Designer told me about were the planes hanging throughout the level. His vision involved the ability to use these as platforms which also had mild physics attached to them. But the moment they took enough damage, these platforms should explode, cease to have collision with the player while still having physics with the environment.
A set of different colliders, physics layers and custom scripting in Playmaker ensured the correct colliders activated at the right time. A more challenging aspect came in the form of the custom pathfinding tool.
Since the platforms were “removable”, their pathfinding would have to be updated upon being destroyed.
The Elevator
The level featured a large elevator that the player had to manually activate, slowly ascending while occasionally stopping at certain “floors” so enemies could spawn.
The first major challenge involves setting up the pathfinding tool. This custom piece of software would scan the level and create nodes for the Enemy AI to detect and use to mount platforms. The vast majority of levels involved stationary platforms, but the Voidport Hangar’s elevator as well as some platforms in The Sewer involved a dynamic, moving platform. Enemies that spawned had to be able to detect the nodes in motion and be able to use them.
This was quite complicated as the tool had functionality to support this, but because the feature was quite rare throughout the game, it wasn’t exactly refined. Still, I managed to make it work in the end, and ascending the elevator became the most notorious part of the level as it offered very little movement opportunities while enemies flooded in. A combination of adding extra platforms on each floor to give the player more breathing room, as well as spreading out grenade pick-ups and healing spawns would help flatten the difficulty curve.
The goal was to increase the difficulty at every floor, with the last encounter being against the dreaded Space Marines, which are considered the poster-boys for the Warhammer: 40,000 universe.
A player finding a chest of “Teef”, which can be spent in the shop to buy upgrades and new weapons. Above is a destroyed shuttle that was attached to he chains, but took enough damage to be destroyed and fall down, dynamically updating the platforms so enemy AI no longer tries to jump on it.
The Player fighting a Space Marine on the elevator platform. The extra platform and boxes were added upon my request so the players had more wiggle room in terms of avoiding enemy projectiles.
The Sewers
The Sewers is a massive level that was later cut into two during development in order to maintain stable performance.
While mostly finished, part of my tasks involved balancing, ensuring the encounters were fair on all difficulties, ensuring players can make it to the next checkpoint with reasonable means.
My playtesting didn’t just involve balancing, as I discovered major level bugs that could be game-breaking.
Door Dashing
For example, doors that were set up to close as soon as all players had stepped through them, were implemented in a way that mirrored real life. The blocking collider was attached to the door that slowly moved down with an animation. This meant players could trigger the closing animation, then quickly dash back through the door, causing a soft-lock!
Upon discovering this, I notified the rest of the team to update the doors in their levels to ensure that the moment all players stepped through a door that had to be locked behind them, it would spawn the blocking collider in-place immediately, separate and disconnected from the door’s visual. While this meant players were unable to dash through a visually open door due to an invisible wall, it was preferable to a soft-lock.
Stretched Liquid Planes
The sewers was one of the few levels that involved liquids, which used an external plugin to simulate waves, splashes, etc.
As we were debugging for performance issues, it was noted that the levels featuring liquids had significant performance issues. Since SBT is a 2D game, most of the developers used Unity’s 2D view. Having experience with 3D games, I decided to have a look in 3D mode. I learned that the water planes were stretched in the Z-axis for over 500 units and all consisting of ! A quick correction in both levels featuring liquid helped, but wasn’t enough on its own to maintain acceptable performance.
Other tasks included splitting the level and functionality into two separate levels, as well as updating the lighting to swap for weaker platforms such as the Nintendo Switch.
A section of the Sewers level that went through many iterations in terms of balancing. Players often struggles with the fight due to the large amount of enemies that spawned during the “Kill Them All!” section where players must kill enemies to fill a bar before they can progress. The solution was to also spawn healing pick-ups before and during the fight.
The Mutant Alligator was tricky to get right. The fights often occurred in small areas, and the hitbox and behaviour had to be carefully tweaked in Playmaker to ensure the fights were fair, challenging and didn’t end with the Alligator getting stuck!
The pools of acid were notorious for impacting performance until their length in the z-axis was reduced.
The Sewers level ended with the “Genestealer” boss fight. Using the many pipes in the level, it would try to repeatedly run into the player, then escape through the sewers in a hit-and-run strategy.
The fight was initially way too easy as the Genestealer lacked direct attacks. Adding adds to the fight on higher difficulties and more health allowed me to amp up the difficulty without requiring new animations and attacks for the boss.
The fight with Lord Horrik Canorum involves destroying his blue shield first, before the player can damage the actual boss. After some time, the shield regenerates.
During the entire fight, Horrik will move from the right side of the screen to the left, pushing the player back and serving as a soft DPS-check.
Four players in co-op fighting the Baneblade, otherwise known as the “Bastion of Valour”. The tanks fires projectiles directly, rams players camping in the bottom, or causes debris to fall from above.
Since the AI reacts to player positioning, many new players struggled despite this being the first major boss.
Additionally, a second phase is triggered where the fight is equally punishing, requiring precise timing on jumps while handling additional enemies spawning in.
A major fix for the difficulty was to spawn a full heal between the two phases of the fight.
Boss Balancing
The most tough encounters in Shootas, Blood & Teef are the boss fights, which involve a constant barrage of attacks the player must dodge while simultaneously trying to pump out as much damage as possible in response.
Part of tasks was to ensure the fights felt fair and balanced for both solo players as well as in groups. Identifying key issues and using Playmaker or custom code requests to resolve them.
Designers are awful Playtesters
Something I remembered during my internship at Triumph Studios was the massive gap between everyone working on “Age of Wonders: Planetfall” when it came to skill in the game.
As a designer tasked with balancing, I had a very deep understanding of the many mechanics that made up the core gameplay of the project. The result? Encounters that I breezed through and deemed easy were very difficult to grasp for less experienced players.
I recognized the same situation occuring during the balancing of Shootas, Blood & Teef. All the designers were breezing through the levels on all difficulties, given we had hours of experience from playtesting. Meanwhile, the artists often struggled as the art was basically entirely separated from any gameplay and just had to look good in the editor.
The solution involved giving these people a save file right before the boss fight and watch them play, trying to fight the boss. Based on that, we could identify pain-points and make adjustments.
The Bastion of Valour
This battle was considered a huge spike in difficulty, mainly because the boss dealt a lot of damage and had a very unpredictable attack pattern.
Major balancing tweaks involved improved markers for certain attacks so the player can react better, as well as spawning heals throughout the fight to allow players to recover a bit during calmer moments.
Lord Horrik Canorum
Lord Horrik Canorum was a massive boss that slowly approached the player and fired projectiles, requiring them to occasionally take cover while also staying in motion to move away.
This fight used a shield mechanic, where the shield had to be broken in order to actually damage the boss.
As this fight was pretty balanced overall, we did notice some players clearing the fight in a fraction of the time compared to others, despite being on the same difficulty.
It turned out one of the flame spray shotguns had a unique trait where the particles that dealt damage had some interactions involving lingering hitboxes hitting multiple times in a single frame. This allowed players with this weapon to quickly shred through the fight, and a fix was issued to limit the amount of times a particle hitbox could inflict damage on a single entity.