Games › Dev log

SOUTHPAW: ten boxers, and why mashing loses

· 5 min read

SOUTHPAW joined PLAYPILE on 7 October. It is arcade boxing in pixel art: ten opponents between you and the belt, a gym to spend your winnings in, a locker room, and two special modes for wrestling and sumo. This post is about the two things that decide whether a boxing game is any good. Every opponent has to be a puzzle, and the obvious cheap tactic has to fail.

A weakness has to be a number

A line like "this fighter has a glass jaw" only matters if the game agrees, so every weakness in SOUTHPAW maps to a real value in the roster file: how much extra damage a fighter takes to the head or body or from a particular punch, how he defends, and any quirks in how he behaves. A few examples from the ten:

  • Tommy Ruiz, the first opponent, takes body shots at 1.45 times normal damage and never guards low.
  • Big Lou Baker has a big swing called the Mail Truck with a 0.62-second wind-up you can see coming. He tires after throwing it and drops his guard. Head shots do less to him, at 0.85, and uppercuts do more, at 1.25.
  • Mickey Chen has a glass jaw, taking 1.3 times damage to the head, and walks into uppercuts.
  • Ivan Petrov hates fighting up close. Uppercuts do 1.6 times damage to him.
  • Lucky Leo Santos taunts when he is ahead, and punches that land during a taunt do 1.25 times damage.
  • Kenji Mori reads repeated punches, and learns faster than anyone else on the roster.
  • Brutus Okafor barely feels a head shot, at 0.75, but takes 1.5 times damage to the body and has slow feet.
  • King Carter, the champion, has no damage weakness at all. His opening is behaviour: after his big punch, the Crown, he stands still to breathe, and he gets wild when he is hurt.

That last one matters most. By the end of the roster the game stops handing you a target and asks you to notice a pattern instead.

The ring is three-quarters on

The ring is drawn at an angle, so you step across it as well as along it, with A and D for left and right and W and S for in and out. A punch only lands if you are lined up with the other fighter. The four arrow keys throw a jab, a cross, a lead hook and an uppercut. Holding Space sends every punch to the body, which costs stamina but goes under a high guard. A punch that connects can cancel into the next one, so tapping a rhythm throws combinations.

The mashing problem

Partway through building it we hit a familiar problem. Once an opponent was trapped in a corner, you could hold down one button and win. The stun from each hit lasted long enough for the next to land, and the fight became a stun-lock. That makes all ten opponents the same.

The fix had to work on both sides of the exchange.

The defender recovers

  • Hits less than 0.7 seconds apart count as one string.
  • After three hits in a string, the defender can get his guard up through the stun.
  • From the third hit on, each punch in a string does 12 per cent less damage, down to a floor of 45 per cent.
  • Punches that are blocked cost the attacker stamina.

The opponent learns

The computer boxer has a reaction time, about a quarter of a second by default, and a memory of what you throw. If you hit the same spot two to four times in a row, the exact number depending on how fast that fighter learns, he covers it. He tries to guess when you will switch targets. If you throw three or more punches less than 0.32 seconds apart, he shells up. He only counters when there is a gap in your rhythm. And if you hide behind a high guard, he waits a moment and then goes to the body.

Proving it with a script

A feeling that mashing is weaker is not proof, so the game ships with a test that plays two kinds of player against the real fight code. The masher walks the opponent down and throws the same straight to the head every 0.08 seconds, as fast as the game accepts it. The mixer throws straights and hooks, alternating head and body, at a slower, varied rhythm. Each plays three 30-second rounds against four opponents: Ruiz, Chen, Hale and Carter. The rule is simple: mashing must lose.

Here is what the current version prints, as damage dealt per 30 seconds and the share of punches that landed:

  • Ruiz: mashing lands 11 per cent for 107 damage. Mixing lands 44 per cent for 196.
  • Chen: mashing lands 14 per cent for 96. Mixing lands 49 per cent for 141.
  • Hale: mashing lands 19 per cent for 75. Mixing lands 36 per cent for 94.
  • Carter: mashing lands 14 per cent for 39. Mixing lands 22 per cent for 53.

Against Ruiz the masher had 237 punches blocked over three rounds, against 41 for the mixer. The test also records the longest unbroken string of hits, because a stun-lock shows up there as a huge number. It now tops out at seven.

The gap is widest against Ruiz and narrower against the later fighters. Against the champion nothing is easy, but variety still wins.

Wrestling and sumo

The two special modes change the rules. In the wrestling bowl you bounce off the ropes for lariats and dropkicks, and a lock-up is a timing meter rather than a button race, for the same reason as above. A pin is a three-count. In the sumo ring you charge on the call, and your balance is your health bar, over the best of three bouts.

The gym

Wins pay points to spend in the gym on eleven stats, each from 0 to 10. A level costs its own number in points, so level one costs one and level ten costs ten. You start with three points and a campaign win pays at least four. Spreading points thinly is cheap and pushing one stat to the top is expensive, so the gym nudges you towards a rounded fighter.

One honest note: the original game also has online play, but it relies on a small server that a static website does not have, so the version on PLAYPILE is single-player. The guide under the game says so.

More from the dev log