Help! My game keeps getting bigger!

Animation of a person being eaten by an infinitely long Dog. After the Dog has left the screen a text appears that says 'And the World shall belong to everyone.

To a degree, any kind of game can lead you into a situation where you keep adding new things to it, while never really making any progress towards its completion. However, after a good 18 Months on Virtue’s Heaven (plus all the time I tried to make this game over the past six years) I’m very confident in saying that no other kind of genre is more adapt at luring its creators into a trap of perpetual development hell, than the Metroidvania. Isn’t it curious how, over the past 10+ years, most of the well-known examples of “Indiegames that never seem to be coming out” are Metroidvanias? And yet, I still thought it would be a good idea to make one myself!

overview of one GB Rober's stages.

A regular stage for GB Rober. It's long, but very simple.

When I made the decision to go back to Virtue’s Heaven, I had just released GB Rober, which took me about one year to do. Sure, Virtue’s Heaven would be a bit larger, but considering how quickly GB Rober came together, I was certain it wouldn’t take me more than 18-24 Months. I’m now well past the 18 Month mark and I’m very certain that I’ll smash through that 24 Month mark as well, and the game is still very far away from being done. It turns out I severely underestimated the amount of extra work it would take me to make this game, compared to GB Rober.

Here’s the amount of work I had to do, to make one stage in GB Rober:

Furthermore, GB Rober’s levels were around 50 “screens” big and took between 3-5 minutes to run through.

Now, suppose we turn a GB Rober stage into a Metroidvania stage, what do we need?

Well, we need to do something to encourage our players to explore the areas they are traversing. The most obvious way would be to force them to find something that enables them to further advance on the game’s critical path.

For the sake of simplicity, let’s assume that we do the regular Metroidvania thing and gate player progress via extra abilities. Each map you build, requires you to make at least one additional ability. Each additional ability requires you to somehow build your levels in such a way to accommodate them, which further removes them from the simple “just run from point A to point B” concept we started out with.

Of course having your maps built around a very simple “find the thing that helps you progress in the map” concept gets stale pretty quickly, and your stages will still be fairly linear. So in order to encourage even more exploration, you add optional things to your maps. Stuff like Health, or damage upgrades, or extra weapons. Anything is fair game, as long as it gives you a reason to put something nice at the end of an optional path. However this means you have to create additional gameplay systems and also have to think about the balance of your game’s difficulty much more carefully.

Of course in that process we have increased the size of our map by at least 50%. If you include any instance of backtracking (since we cannot make every path loop back to somewhere where we’ve already been), the size increase is probably even closer to 100%, maybe even more.

The larger map size now requires us to make more enemies, because otherwise you might end up with lots of instances with similar feeling enemy encounters. Who knows, maybe you also need more complex enemies, because with all the extra abilities, those simple enemy concepts you had before just don’t work that well anymore.

You might also want to consider adding additional boss fights to your game, just to have something that breaks up the action at certain intervals. All of this of course means more sprites, more frames of animation, more coding, more places where things might break.

You also may realise that your map is now so large, that the visual assets you made for it aren’t enough to make each section look and feel unique. So you have to add more optional tiles, or maybe you even have to create a whole new tileset.

The larger map also requires your game to actually have a map, because otherwise your players will get lost. You also need a robust save system, because nobody wants to replay an entire stage, when said stage takes more than 10 minutes, just to walk through it. Unfortunately the save system has to keep track of a lot of stuff, because the game you now stumbled into making, has several additional systems and mechanics, making it more likely to break in ways you never thought possible.

Overview graphic of one of Virtue's Heaven's stages

One of the last 'big' stages I made for Virtue's Heaven. It looks more compact, but it is a sprawling mess.

This already sounds like a nightmare, and we haven’t even touched the narrative framing of any of this, or thought about how to make sure that what we have here is actually interesting for other people to play.

If you’ve followed Virtue’s Heaven’s development and were wondering why I haven’t really talked all that much about it over the past six Months: Here’s the reason.

It’s not that I wasn’t careful when I planned this game. Things just spiralled out of control, because that’s what a Metroidvania requires you to do. Exploration needs space to explore, so you make the map bigger, but more space isn’t enough, you also need reasons for exploration. So you make your game more complex, which then means that your previous approach to level- and enemy design just doesn’t work as well anymore. All the while, Spring turns into Summer, Summer into Fall, Fall into Winter and every now and then you look up from your desk and wonder why so much time passes and the game still feels like a rough prototype.

You wonder if you forgot how to make games, or if you were ever any good at making them, when the actual problem is that you kind of played yourself into a game developer's version of Sisyphus. With the difference being that your rock keeps getting bigger every day.

A game like this is probably easier to manage, if there’s more than one person working on it. However being everything from Programmer to marketing department on something that by its very nature requires you to make everything larger than it really needs to be, is just hell.

The fun part is that “don’t make a Metroidvania, if you’re a solo developer” isn’t even new advice. I just thought I figured out how to make a “small” Metroidvania, which turns out is still too big for one person.

This all sounds a bit like a “I’m cancelling Virtue’s Heaven” and honestly, it might still come to it. But right now I’m focused on cutting away all of the optional stuff that caused so much of the game’s bloat and I hope it’s enough to get it back on track.

Don’t make Metroidvanias on your own friends, it’s a miserable experience.