Sink or Swim: 3 Design Lessons We Learned Making Our Underwater Metroidvania
Let’s get the first question you have out of the way right now:
Why would you EVER choose to make a game set underwater?
Yeah, we get it. Everyone’s least favorite level, no matter the game, is always the water level. They’re filled with sluggish movement, irritating mechanics like oxygen bars, strange controls, and plenty of other hurdles.
And despite all of that (or maybe because of it), 3 years ago our dev team decided, screw it, we’re doing our entire game underwater!
Short-summary: Depths of Sanity is a horror-tinged, underwater Metroidvania. It takes place in 1997, and uses a bit of actual history to get the ball rolling. When a massive vibration is detected at the bottom of the Atlantic, The Baroness submarine is assigned to investigate it. When comms go dark, Abe Douglas, the commander who assembled its crew, makes it his responsibility to find out what happened.
From the moment the game starts to the moment the game ends, you are piloting Abe’s submersible through the ocean. We knew it would be a challenge to design, but the enormity of it was greater than we ever expected. When your Metroidvania is entirely underwater, there are some very basic tenets of the genre that go out the window, and it forced us to think creatively to solve all sorts of new challenges.
So in that spirit, we wanted to share three of the challenges we faced when designing the game. Hopefully we’ll see a few more games try and finally make underwater fun.
Let’s start with the most fundamental problem of all:
CHALLENGE 1: TRAINING THE PLAYER ON 360 DEGREE MOVEMENT
The biggest issue for any underwater game–or hell, any game with a water level–is the controls. And a big focus of our design was to create the feeling of actually piloting your ship.
To do this, we created a movement system that revolves around buoyancy and momentum. For example, when you take your finger off the thrust button, you will continue to glide forward for a few seconds in the water before you before you stop. This intentional floatiness creates a different kind of movement than most players are used to. Accelerating takes time. Turning the ship takes time. And there are no easy ways to cancel your momentum except with a backdash.
It is a bit difficult to master in the first thirty seconds, but after a few minutes, testers begin to pick it up and enjoy it thoroughly. It creates a complete sense of being underwater, gives weight and presence to the ship, and allows us to turn the tension up in interesting ways (particularly as the more horror-oriented aspects emerge).
The catch, though, is that the player does not ever truly have precise control, which created a big challenge for the rest of the design. Most Metroidvanias create their obstacles around precise movement — it’s why platforming and precision jumping are cornerstones of many in the genre.
To counter this, we had to create obstacles that were more logic-oriented, rather than reliant on twitch skill.This slowed the pace of the game down, forcing the player to more carefully explore and engage with enemies. And while it took a bit of retooling to make sure everything was working right, we were happy with the mood it created in the end. Having a slower pace in the beginning gave the player more time to take in the sights and get involved in the story, and the lack of precise control provided the opportunity to feel vulnerable and unsafe in this hostile deep ocean.
It also helped us when it came to teaching the player how to interact with the game. We had to train people on movement to a much larger degree than other games in the genre, and because of that, many of the game’s early challenges are designed to force you to get more comfortable with navigation, and with always staying on the move.
One of the ways we do this? Enemies.
CHALLENGE 2: DESIGNING ENEMY BEHAVIOR THAT PROMOTES OPTIMUM GAMEPLAY
The enemies of Depths of Sanity had two main issues: 1. They needed to force the player to avoid coming to a stop to shoot them and 2.They needed to work from any “vector of approach”.
We’ll talk about the vectors first. In a traditional 2D game, the player is easy to track. Most of the time they are on the ground or they are jumping a certain height above it. They can only approach the enemy from one direction or the other, so you can design abilities that easily counteract that.
The problem with an underwater game is that there are an unlimited number of ways to approach an enemy. We call these “approach vectors.” This means that every single enemy must be interesting to engage with no matter the approach vector.
If the player comes from below, it must be as engaging as if they came from above. And most importantly, it has to feel fair. The player will be traversing over some of the same areas with new abilities as the game goes on, and no matter which way they’re coming from, it can’t seem like they were blindsided by an enemy that, had they come from another direction, would’ve been easy to spot.
The other issue was how players engaged with the enemies. Because of the momentum-based movement, first-time players would do the same thing when they saw an enemy: Come to a dead stop in the water, then turn and fire at an enemy until it was dead before moving their ship.
In fact, it reminded us a lot of what happens when you give a gamer their first FPS — they won’t aim and move at the same time unless they’re forced.
This was a huge challenge for us, and figuring out how to probably educate the player on movement, get them comfortable, and then start ramping up the challenge was a big focus. To help, we designed early enemies to move in a specific pattern, and not attack unless you bump into them.
You can see a little bit how this works in an early test build of the first level.
Many players would just start navigating around these enemies, but slowly, we start eliminating that safety net. Enemies will track you, crash into you or bounce around, and force you to move. Eventually there are enemies with projectiles that teach you how to circle strafe, and then things get more complex from there.
Our goal was to get the player to a point where they rarely “stop and shoot”, and that they’re able to zip around efficiently, using their momentum and the tools at their disposal to really get into a flow.
In order to achieve this, we also had to be flexible with our design. For example, we had a section later in the game involving sea mines that we cut chunks from and placed earlier because we realized it was a great segment for improving the player’s navigation. We wound up placing more enemies near the wall when we realized players were hugging them too closely. And so on…
The third biggest design obstacle? The ACTUAL obstacles.
CHALLENGE 3: UPGRADE, TOOLS, AND GENRE TRAPPINGS
Nearly all upgrades and unlocks in a Metroidvania game revolve around movement. The list is enormous: jumps, double jumps, wall jumps, dashes, dash jumps, ball form, bash etc.
Since Depths of Sanity has 360 degree movement, all of these tropes were off the table. In some ways, this was incredibly freeing for us, because we didn’t have typical mechanics to fall back on. We had to design a whole new set of abilities and obstacles that simultaneously felt unique, yet fit a familiar rhythm. When the player is normally free to move in any way, how do you create obstacles that feel natural?
Luckily, the ocean itself — and a few classic Metroids — provided plenty of inspiration.
For example, our game uses a tow line that is inspired by the classic grappling hook mechanic. Since there is no gravity in our game, the harpoon latches to any surface and pulls you to it.
On a basic level, you’ll realize quickly that it’s ideal for pulling yourself through currents you couldn’t push through before. But as you play with it over time, you’ll realize it opens up your movement and combat options significantly. And on our end, it allows us to design pretty unique scenarios for the player, like latching onto a whale and having it drag you across the level.
Another early ability we created was the diver suit, which was inspired by games like Blaster Master and Axiom Verge. At any point the player can exit their ship, attached in an oxygen tank, to explore spaces that they can’t access normally, and they can obtain upgrades for it over time. Players get the experience of a new traversal mechanic, but one that is grounded in the lore and world of our game.
Depths of Sanity’s underwater mechanics had more issues than just these three, but we figured we’d just share a bit of insight on these challenges for now, and we’ll cover some others in a later post. The deep sea is an amazing setting for a game, and we hope to see more games take the plunge.
If you’d like to try our latest demo and give feedback (seriously, we love hearing from people to help us fine tune our mechanics), you can do it here.