Designing Melee Depth Around One Button
One attack button, two input-buffer modes and designer-placed branch windows create a melee system that's easy to execute but rewards timing with distinct combat tools.
The idea began while I was working on the Outriders sequel. A proposed melee combat system kept shrinking until it became an activated skill, much like the abilities in the original games, rather than a complete melee system.
That left me with a question: could melee keep the depth and expression of a full combat system without needing the usual light and heavy attack buttons?
The question became a practical problem on Starblade, a cancelled Northline Works action-adventure project. Its controls already needed to support jumping, dodging, blocking, traversal, sprinting, crouching, equipment abilities, aiming, shooting and ranged attacks. There was no comfortable place to add several dedicated melee controls without pushing out something the rest of the game needed.
A conventional one-button melee system would fit the controls, but repeating the same three attacks would get boring fast. Making the sequence longer would add more animation without giving the player more control. The system needed to be easy to pick up while still offering tactical choices, player expression and room to grow through progression.
The answer was to make timing part of the input vocabulary.
Two buffers, two intentions
The system starts with a straightforward three-hit combo, but uses two different input-buffer modes to tell the difference between continuing the current sequence and moving into another branch.
CHAIN remembers a follow-up input for the entire duration of the current attack. The player can press early or repeatedly and the next attack in the active combo will still come out. So mashing the button gives a reliable base sequence rather than dropped inputs or weird surprises.
Combo branches use BUFFERED instead. This holds an input for only 0.2 seconds, with branch windows placed at specific points in the attack animations. To change route, the player must time their input to within 0.2 seconds of an active branch window. An early input expires and the player stays on the current combo.
Continuing to attack is forgiving. Changing what the attack does requires intention.
Branches with a purpose
A branch near the end of the first attack leads into a hard-hitting single-target combo. Its finisher knocks back smaller enemies, breaks blocks and stuns larger enemies. It's the only melee route that does those things, giving the player a specific answer to blockers and bigger threats.
Another branch appears during the recovery of the second attack in the base sequence. Taking it starts a new three-hit sweeping combo, stretching the full sequence to five attacks and giving area coverage against groups of lesser enemies.
So the same button can do several different jobs:
- Maintain the normal cadence for a reliable general-purpose combo.
- Time the first branch for single-target pressure, block breaking and stun.
- Time the second branch for sweeping attacks and crowd control.
The branches aren't alternative animations added for variety. Each one has utility that changes when and why the player picks it.
Commitment without lock-in
Adding longer and more specialised combo routes also affects how and when the player can defend.
The system preserves attack commitment while a hitbox is active, but defensive actions can cancel recovery. Choosing Dodge, Block or Jump clears the queued attack and triggers the defence at the earliest legal window after the active hitbox closes.
Dodge > Block > Jump
This stops players cancelling an attack before it has meaning, while making sure they're not stuck in recovery after committing to a combo. Targeting holds through the hit, recovery turns toward a scored target, and missing an attack never leaves the player locked onto empty space.
Growing the tree
Each combo is stored as an ordered set of attacks. An individual attack can continue to the next step in its current set or point to the first attack of another combo through a designer-placed branch window.
Those new combos can contain branch windows of their own. So the tree can grow without needing more buttons, and progression can add new routes to attacks the player already understands. Unlocking a move adds another tactical choice, not another command to memorise.
There's no hard limit on how deep the tree can branch. The real limits are readability, animation cost, progression pacing and how many genuinely different combat jobs the game can support. The goal isn't to build the longest possible combo. Every branch must give the player a reason to choose it.
A new player can press one button and consistently perform a complete melee sequence. A more experienced player can recognise the animations, control their timing and route that same input toward crowd control, block breaking, knockback or stun.
The result is a melee system with its own utility, progression and skill expression, built without competing for more of the controller.