A Postmortem Of My Experimental Air-Based Beat 'Em Up Combat System
- Joshua Liew
- Dec 13, 2024
- 5 min read
Updated: Dec 16, 2024
Note*: All art (except certain edited combat animation / environment sprites) are all pre-made and ripped assets, not owned by me.

Goals:
More freedom to manipulate enemy position.
Air-based combat mixed with the simplicity of a platformer.
Fun in-combat movement, that also has platforming uses.
Combat mechanics:
Jumping:
Player launches upwards then falls back down.
This does not kill enemies.
Player is open to be hurt by enemies.
Dive kicking/body pressing:
Player launches themselves down at an angle towards the ground.
Any enemy/obstacle hit with this dive launches the player into the air, like a bounce upwards.
Enemies hit by the dive die.
Player will not be hurt by touching enemies during this action.
Side dash:
Player moves left or right in a short time frame.
When the player collides with an enemy/obstacle the player reacts the same way as being hit by the dive kick.
Enemies hit also get launched further matching the direction of the dash (eg. right dash launches the enemy to the right).
While launched, Enemies die upon hitting walls or other enemies. Enemies touched by the launched enemy die as well.
Player cannot be hurt by touching enemies during this action.
Juggling enemies:
When the player juggles an enemy/obstacle, it is activated only in the air with contact with the enemy. The player activates a hit box in front of themself. If an enemy makes contact with the hit box, the player jumps in mid-air and brings the enemy along with them to the player’s height.
This does not kill enemies.
Juggling mostly completes challenges and allows navigation through height obstacles.
Changes and their reasons:
Jumping used to allow players to bounce on enemies without being harmed. Bouncing had to be removed as players could safely hop to the end of most parts of the game without killing anything and doing nothing but holding the forward button.

The tutorial was unclear. I wanted the player to enter the stage by dashing enemies into a door, moving the player into the first level. A major problem was an unobvious request to an action with a perceived different purpose. Specifically, a “side dash” requires the player to be in the air (most often by jumping) to even activate and this would shift your expectation to only expect dealing with targets in the air, but I'm requesting the player to target an enemy on the ground. For a new player this is also complex, once the player is in the air, they are trying to hit a target on the ground, meaning the player has to wait a moment in their fall for their height to be high enough off the ground to not dash into the ground and interrupting the action, but also, the player needs to be within the range of short enemies to have a target to hit. I solved the problem by adding more text in the tutorial, explaining that the ”side dash” causes explosions of enemies as clue on its use, and the answer to the puzzle to be solved. Perhaps I could place an air enemy to make the answer to the puzzle feel more natural an action to understand. And even allows the player to accidently solve, in practising the moveset listed in the tutorial’s text.
Controls:
Version 1

Version 2
Version 1 was lacking some context on when these abilities would be used.
Version 1 used the spacebar as part of activating every ability, requiring direction keys to activate abilities would limit player movement when needing to activate a specific ability, in fear of a mis-input . Compared to Version 2, where the player is now freed up to handle player movement in the air at any moment. ”Juggling” benefits a lot from this freedom of moment to be able to reach targets that using a dash would overshoot.

Supporting enemies:
Slow Enemy: A basic enemy player can simply dive on to kill. Forces players to move around to avoid damage.
Floating Enemy: An enemy that allows the player to navigate the air by attacking these enemies.
Doors: Blocks movement, main purpose is to block progress until the preceding challenge is complete.
All enemies listed deal damage to the health of the player when collided into.
Enemies can hangout in groups together.
Puzzle opportunities:
I wanted every combat mechanic tested by at least one challenge. This allows the player to develop their understanding of their character’s abilities and lets every ability feel useful.
In order of appearance:
Testing the players proficiency in using the “dive kick”. Bouncing on a chain of simple enemies in an escalating staircase. Easy difficulty.
Testing the players proficiency in use of vertical height gaining abilities. “Juggle” an enemy multiple times, or” juggle” then “dive kick” in a combination at an enemy to reach an extremely high platform. Medium difficulty.
Testing the players proficiency in use of the launch effect of the “side dash”. An enemy wall that demands the use of the enemy launching a grounded enemy into a vertical wall of floating enemy, creating space for the player to navigate past. Medium difficulty.
Testing the proficiency in use of the “dive kick”. by bouncing on a chain of aerial enemies over a large drop. Hard difficulty.
Testing the players proficiency in use of vertical height gaining abilities. Using an enemy as a ladder to climb to high places. High difficulty. An optional and hidden challenge with optional rewards( actual reward is currently just a representative placeholder text).
Learnings from the prototype:
Positives:
The combat feels fresh enough to playtesters.
According to playtesters, combat and movement felt fluid and had satisfying weight to it, so I at least have a starting point of how to make something like this work.
I see enough potential to expand on the concept.
My level design philosophy taught playtesters the combat abilities well, through particular focus on individual mechanics in early puzzles. So I have a good format going forward as the gameplay mechanics are expanded upon.
Negatives:
The “side dash”’s enemy launching properties can be slightly inconvenient to use smoothly without some experience with it. Floating enemies should be the first target the player could test the “side dash” on. Ground enemies as targets are fine later after the initial understanding. Case and point, playtesters would get stuck in the tutorial room frequently, even with my tutorial description changes on “side dash” I previously mentioned above.
With so much control over enemies, for more challenge, I need enemy types that are harder to reach and get control over / more threatening to the player.
I would consider this experiment a success in my eyes. And with a viable enough design space to explore, it seems like a fun project to take on. Hopefully, I'll have more news on a project related to this in the near future.
Comments