Inspiration

MMA Tactics started as a fork of my earlier game, Turn Based Boxing: Tactics. Boxing players kept asking for kicks, takedowns and a ground game, so on August 13, 2026 I forked the repo and began turning a boxing sim into a full MMA game. It had three names along the way (Turn Based Boxing, then Tapout, then MMA Tactics) because the trademark check came later than it should have.

What it does

MMA Tactics is an offline gym manager and turn based tactics game.

  • Fight on a hex grid. Every turn you choose a move: strikes, kicks, takedowns, submissions, defense or tactics. Each strike does one specific job; none of them are just damage.
  • Ground game. Positions are top or bottom and nothing else, on purpose. The depth comes from 7 submissions. There is no tap button: every count drains HP and can injure something.
  • Build a gym. Recruit fighters, train them and level them up Battle Brothers style. Stats are earned, not bought, and there are no rerolls. Fighters can get injured, retire, or die.
  • Scout the world. Fly to 14 destinations to find recruits who fight like the place they come from.
  • Climb the rankings and challenge the Legends.

It is free to play with a single one time purchase, Legends. Legends unlocks every perk and strategy plus unlimited lockers (fighter slots). There are no ads and no subscription.

How I built it

React, TypeScript and Vite, wrapped with Capacitor for Android and iOS and with Electron for Steam. RevenueCat handles the Legends purchase on both mobile stores through one entitlement, so restores and cross-store checks come from the same code. Playwright runs end-to-end tests that play full auto fights, and it also records the trailer, dev log footage and store screenshots in 11 languages.

Challenges I ran into

  • A bug made my fighters immortal. One missing lookup produced a NaN in the damage pipeline, and nobody could die.
  • The opponent was hiding in the corner. The computer opponent was punching at 0% hit chance and filling its own ranking with traps. Fixing it meant rebuilding how it scores moves.
  • Controller support. The focus ring disappeared after a single mouse click. It turned out to be a :focus-visible problem, not a broken controller.
  • Localization. The cage was still called "the ropes" in 11 languages, because the check only looked for the word "boxing".

Accomplishments that I'm proud of

Going from a boxing game to a shipped MMA game with its own ground game and submission system in about six weeks and 400 commits. It is live on Google Play, the iOS version is in review, and Steam launches October 28.

What I learned

Cutting scope is a design tool. I cut the clinch, control time and extra ground positions, and put that depth into submissions instead. The game got clearer because of it.

What's next for MMA Tactics

The iOS release, the Steam launch on October 28 with a Next Fest demo before it, a new Legends roster, and Discord tournaments like the ones Turn Based Boxing runs.

Built With

Share this project:

Updates

Submission history