How do I design a Metroidvania?
As a game developer, I love games with a sense of exploration.
Think of the game, Ocarina of Time. Specifically, when you first emerge from Kokiri Forest into Hyrule Field, and see a vast expanse of meadows and blue skies.
Or something grittier, like Dark Souls, which lets the player explore an intricate, interconnected space.
An arcade game might increase a speed or difficulty variable to keep a player engaged. But an exploration game teases the unknown. Not only in its world design, as in:
“Ooh, there’s a castle in the distance! Can I go there?”
But also in its mechanics, as in:
“What’s in this vase? Can I whack this vase with my sword?”
So if you wanted to make a game that features exploration at its core, how would it work?
One common formula is the Metroidvania. It's a genre that teases the unknown by restricting parts of the world until you've obtained or mastered certain abilities.
Which is why, in the rest of this post, I dive into the game design of Metrash.Metrash is a Metroidvania made by a developer who goes by Steed, and it's made in PICO-8. But don't let that turn you off from reading!
Because the great thing about well-crafted PICO-8 games, is that:
- They don’t take 70 hours to play. (Metrash is maybe 1 hour of gameplay, tops.)
- They provide source code, if you’re curious enough to study it.
- They can teach us a lot about their genre of game design. Specifically, about Metroidvanias.
So in the rest of this post, I take apart the design of Metrash to explain how it works. And in doing so, I define the principles of a Metroidvania, so that you can apply these principles to a game of your own.
Let’s get started!
0. The MDA framework
To ensure we're starting from the same base, I want to cover the MDA framework.
It stands for Mechanics–Dynamics–Aesthetics, and it's a useful lens for viewing exploration games:
- Mechanics. The rules of the game. Player input, code, world physics, that sorta thing.
- Dynamics. The patterns of play that emerge from the mechanics. That could be racing, as in "I'm hugging the side of the racetrack so that I can beat the other guy to the finish line", or survival, as in "I'm building a fort so that zombies don't attack me in Minecraft".
- Aesthetics. The emotional responses to the dynamics. For racing, that could be the feeling of competition. For survival, that could be the feeling of safety (or lack thereof).
Under this mental framework for thinking about games, you'll notice that exploration is an aesthetic. In other words, the feeling of discovery is an emotional response in the player.
And you can't create that feeling directly. You can only create mechanics, and hope that your aesthetic intent occurs in the player's mind.
But what mechanics lead to a feeling of discovery? Here's how Metrash does it...
1. Teach your mechanics implicitly
Whether intentional or not, Metrash implements the feeling of discovery at multiple levels of its design.
The first thing it does is teaching the game's mechanics non-verbally.
In the game, you play as a mechanical contraption (that looks kinda like 343 Guilty Spark from Halo 😄), and you are let loose to explore a gizmo-infested world.
However, when you are dropped into the game, you aren’t given any explicit instructions about how the game works. Heck, the developer Steed doesn’t even explain how to play on the game’s web page.
Instead, the game ramps up the player non-verbally, and encourages understanding through trial and error:
- In the 1st room, you learn that the Arrow Keys move the player cardinally and diagonally.
- You learn that you can’t pass through Rocks and Pipes.
- You learn that colliding with Red Blobs makes you die. Which suggests that Red indicates Danger.
- You learn that Arrows telegraph Red Blob movement.
- Upon picking up the game's 1st weapon in the 3rd room, you learn that your weapon only fires to the right.
- But you also learn that it destroys Rocks, enabling you to progress where you were previously blocked.
Omitting a tutorial fosters a feeling of discovery at the core, mechanical level of the game. It makes the player say, "Ah, that's how it works! What's next?"
2. Tease the player with gated paths
Immediately after obtaining the Right-Facing Weapon, you see 2 paths:
- You can take the upward path, which proceeds to the rest of the game.
- You can take the left path, and see another room full of baddies. However, you’re immediately prevented from moving further by an enclosure of Pipes.
This gate is important! It teases the player by saying,
“Hey, you can't reach this room yet, but look at all this cool stuff, yo! Maybe you can get in here later.”
It adds a question mark to the player’s mental map of the game’s world:
At this point in the game, the most the player can do is file away the room’s memory. And hope that something comes together later. (Like a gun that shoots left... and destroys Pipes. 😉)
When you tease "what lies beyond", you foster a feeling of discovery at the game's spatial level – adding to discovery of the game's core mechanics.
3. Design for orthogonality in your verbs and objects
Recall from our discussion of the MDA framework that mechanics create dynamics.
So in order to create a broad space of possibilities for play, we should choose mechanics that create distinct dynamics – hence the word "orthogonal".
Metrash does this extremely well, by inviting distinct styles of play for each verb-enemy pair:
- Right Shot. Encourages a "spray and pray" style of fighting.
- Down Shot. Has a limited range that encourages close combat.
- Up (Homing) Shot. Has homing bullets that encourage hiding behind cover.
- Left (OP) Beam. Destroys everything... yeah.
- Path-Bound Blob. Follows a pre-determined, periodic path. Encourages observation.
- Follower Blob. Moves toward the player. Encourages player maneuvering.
- Aiming Blob. Fires targeted bullets at the player. Encourages hiding behind cover.
- Exploding Blob. Shoots out bullets cardinally upon death. Discourages bullet spam.
Individual pairs of weapons and enemies create unique encounters. But combine 2 pairs, and you get something entirely new.
For example, in the latter half of the game, you encounter an Aiming Blob that is walled-in by Exploding Blobs. The Aiming Blob and Exploding Blobs encourage hiding and a "shoot n' pray" approach, respectively. But together, there is no obvious strategy:
Do you spam bullets and keep your eye on opposing bullets nearby? Or do you ignore the blobs and simply dodge your way through the room?
Whether the strategy, orthogonal mechanics create a wealth of material for your levels. They ensure you have enough (possible) content for the player to explore.
So to recap what we've learned from Metrash:
- The MDA framework. Analyze games in terms of their Mechanics, Dynamics, and Aesthetics.
- Create mechanical discovery. Teach your mechanics implicitly.
- Create spatial discovery. Gate parts of your game world to tease the player.
- Create a broad possibility space. Design an orthogonal set of game mechanics.
Note that the feeling of discovery doesn't arise from exploring a huge, open world. (Metrash is only as large as PICO-8's map space.)
Rather, it comes from the player's understanding of the game's verbs. It's a story about the relationship between maneuvering, and deciding when to shoot.
So choose your verbs carefully. Then explore the relationship between them. That's how you make an exploration game.
But... how do I make my own Metroidvania?
Kynan Pearson has a nice, less-theoretical guide at his blog.
And if you're anything like me, you don't want to clone Metroid – you want to make something new.
So here are some ideas that riff on the idea of exploration and discovery:
- Branching. Metrash turns out to be a rather linear experience. How would you create a branching narrative? And how does that play into the feeling of discovery?
- Take away the mechanics. What if you take away the mechanics, and only leave spatial exploration?
- Would that be like exploring a maze? Maybe you’d emphasize competition over discovery, like in laser tag, or Harry Potter: Goblet of Fire.
- Does that make a Walking Sim a degenerate form of Metroidvania? How would you create player engagement?
- Language mechanics. What about linguistic exploration instead of spatial exploration? How would you learn a language through a game?
- You're a scientist. What if you’re Charles Darwin, and you’re uncovering facts about how birds interact in an ecosystem?
- Detective mechanics. What about detective games, where you’re exploring evidence in order to identify a culprit?