Metroidvania Gameplay Mechanics: Player Control

The Challenges of Developing a Metroidvania – Shmup Indie Game.

Control over the character is arguably the most important feature of most platforming, shooting or reflex-based games. This is why I decided it couldn’t be a bad idea to spend a relatively long stage in development concentrating on just that.

Here are some of the basic mechanics at work and how you’ll be using them in the game:


Jumping must feel tight and responsive.
Jumping must feel tight and responsive.

Jumping is at the heart of most metroidvania-esque titles and so I felt it deserved some time alone. The two main things normally responsible for a character feeling ‘rigid’ or unresponsive are:

  1. Not allowing a character to jump unless the are ‘strictly’ touching the ground. A little leeway is needed for we slow humans (robots wouldn’t need any leeway).
  2. Having the character feel ‘floaty’ or having no response in jump-cutoff at all. For responsiveness, when the player lets go of jump, the character should stop accelerating upwards, usually with a higher-than-normal gravity setting for the game world.

Obviously, these two points aren’t going to help every game out there (they might even make some worse), however for the kind of responsiveness I want in A.S.S., these were essential.


Robots don't need wings to fly.
Robots don’t need wings to fly.

Some way into your adventure, you will acquire the ability to fly. This simple acquisition will change the game into more of a ‘bullet-hell shmup’, should you wish to play it that way. Ground based combat will (almost) always be a viable option, however. Movement shall be fast and your hitbox small so have fun dodging bullets.

In most metroidvania titles, flying would be either reserved until right at the end of the game so as to block off access to important areas or removed altogether. I want to give the player a liberating sense of movement throughout the game, so this powerup will be coming a lot sooner in A.S.S. than players may be used to.

Weapon Switching:

Maybe the most important feature.
Maybe the most important feature.

At the heart of A.S.S. is the design choice to give the player the maximum number of options available at any given time to deal with any given situation or killer robot (not to say that I won’t be tailoring some to be suited better to certain situations or killer robots).

In order to give the player this freedom, you are given access to two equipment sets that you can switch between at the touch of a button. Want a long range & short range setup, a flying & ground-based setup, a fast and nimble & hulking tank setup? It is entirely up to you, the player.

Independent Arm Controls:

Two guns are better than one...
Two guns are better than one…

In order to use all your fancy weapons you’ve chosen to equip, you’ll of course need control over more than one arm. The right arm (left on the screen) is tied to the left analogue stick along with movement, just like most 2D platforming/shooting games, however the left arm (right on the screen) is mapped straight to the right analogue stick on top of this so that it can be aimed by itself.

This opens up new tactics such as attacking two directions at once, concentrating 2X firepower in one place, placing a shield in the right arm that is tied to movement or in the left arm that isn’t…to name a few. In the gif above, you’ll see that certain items, such as the shield, hold you in place while used; preventing you from escaping but also enabling you to fine tune your right hand aim without moving.

I’ll add more very soon to show off some of the other basic features of the game such as how health and death are managed, as well as touching on the world and enemies you’ll be facing.

I’m currently implementing the tile map system to create levels so I’ll talk through that and all of the other exciting development stuff after going through more of the basic mechanics for A.S.S. next time.

Thanks for reading,

Robots Will Destroy You.

Leave a Reply

Your email address will not be published. Required fields are marked *