How to make a fighting game people want to rematch
A fighting game is two characters, a few moves and clear rules for what happens when attacks meet. Those rules are hitboxes, frame data and blocking. Get them right and three moves per fighter can already feel deep.
The four systems under every fighter
- Hitboxes and hurtboxes. A hitbox is where an attack can hit. A hurtbox is where a fighter can be hit. They are separate shapes, and a punch lands only when its hitbox touches the other fighter's hurtbox.
- Frame data. Every move has startup frames (wind-up), active frames (the hitbox is live) and recovery frames (you are open). At 60 frames per second, one frame is about 17 milliseconds.
- Blocking. Block stops attacks but not throws. Throws beat block, attacks beat throws. That triangle stops one move from winning every time.
- Combos. A hit freezes the target in hitstun. If hitstun lasts longer than your next move's startup, the second hit cannot be blocked. That is a combo.
The classic route: pick a tool
- 2D in Godot or Unity. Draw a hitbox and hurtbox for each animation frame and count frames in code. Godot is free and open source, and both have plenty of 2D fighting tutorials.
- Ikemen GO. A free, open-source fighting game engine that runs MUGEN characters and stages. Good if you want to build fighters, not an engine. It runs on a computer.
- Roblox Studio. Battlegrounds games like The Strongest Battlegrounds by Yielding Arts are made here. You script moves in Luau and test hitboxes with parts. Studio runs on Windows and macOS only.
The fast route: a duel on your phone
Roam is a free iPhone app. Describe the fighters, the arena and the moves in a sentence and it comes back playable, with art, sound and rules. Then you tune it by talking: "make the heavy attack slower", "add a block button", "best of three". Send it to a friend and play the rematch.
Tips that keep fights fair
- Start with three moves. A fast light attack, a slow heavy attack with a big reward, and one special. Add more only after people play.
- Punish misses. A missed heavy should leave the attacker open long enough to get hit back. That is what makes players think before they press.
- Show the wind-up. Players should see a move coming. Readable startup animations make blocking a skill, not a guess.
Play it on Roam
Create your fighting game with Roam
Pick two fighters and one arena. Play the first version on your iPhone, then change the moves until the rematch feels fair.
Try: "1v1 sword duel on a rooftop at night, light and heavy attack, block button, best of three, my friend is the other fighter"Questions people ask
How do you make a fighting game in Roblox?
Open Roblox Studio on a computer, build an arena, and script each move in Luau with a hitbox part that checks for other players. Most battlegrounds games start from a few moves and a health bar.
Is it hard to make a 2D fighting game?
One fighter with three moves is a fine first project. The hard part is balance and animation, since every move needs hitbox and frame work.
What is frame data in fighting games?
The number of frames a move spends in startup, active and recovery. It decides which moves are fast, which are safe and which combos work.
Keep exploring
- How to make a 2 player game
- How to make a game on your phone
- How to make a game on iPhone
- How to make a horror game that actually scares people
- How to make a game for free
- How to make a mobile game
More on Roam: All Roam games Games to play, by kind





