Making a fighting game, honestly the hardest genre to fake

By Eduardo Orellana · Updated

Flockbay is free on your own Claude or ChatGPT plan. Claude Pro or Max, or ChatGPT Plus or higher, builds a real Godot project in the Godot editor. Claude Free and ChatGPT Free do not run here. More models are optional, a credit reload at API prices. Windows today. The engine is the official Godot release. A fighting game is the genre where players can feel a single frame. That makes it unusually unforgiving, and it also makes it a genre where being able to change a number and play again immediately is worth more than anything else.

What a fighting game really is

Two characters, a small stage, and a set of moves with precise timing attached to each one. Startup frames before a hit lands. Active frames when it can connect. Recovery frames where you are vulnerable. A hitbox that says where the attack reaches and a hurtbox that says where you can be hit.

That is the whole genre, and it is why it is hard. Everything is numbers, the numbers are tiny, and the difference between a move that feels great and a move that feels awful is often two frames in one direction. No tool decides those numbers for you. Playing decides them.

What a tool can do is make the distance between "change the number" and "feel the result" as short as possible. That is the real requirement here.

The loop that matters

You tell Flockbay what a move should do: this attack has a slow start, hits high, and leaves you open if it whiffs. It writes the GDScript into your Godot project — the state machine, the frame timings, the hitbox activation, the cancel rules if you want them.

Then you play it. Against a dummy first, then against a friend on the same machine. You will know within a minute whether the move feels sluggish, and you will not be able to say why in engineering terms, and that is fine. "It comes out too slow" is a complete instruction here.

Repeat. A fighting game is not designed once, it is tuned dozens of times, and the person doing the tuning is the person holding the controller. Not writing the code is no obstacle to that at all.

The 2D fighter is the harder design, not the harder build

A new project asks which kind of game you are making — 2D or 3D, shown as two pictures — and will not create anything until you pick. Both answers get you a fighting game. They are not the same fighting game.

A 2D fighter is the classic form and it is the more punishing one to design. Everything is spacing along one axis, so players read distance perfectly and every mistake in your timing is visible. That is a fact about the genre rather than about any tool. The stage is a flat project's ordinary work: you drag to say where the ground is and the tiles, the edges and the collision follow from that, and the wall behind, the crates at the edge and the crowd are sprites placed at an exact position, turn and size by hand. The character is a 2D body with the camera on it, and walk speed, air control, gravity and jump apex are numbers you can move.

A 3D arena fighter is more forgiving to design, because movement in two directions blurs exact spacing. You build the arena by hand in the builder — the floor, the walls, the lighting, whether there are edges to be knocked off — and that stage geometry is a real part of the design rather than a backdrop.

Flockbay writes the move states, the frame timings and the hitbox activation either way, into the same kind of Godot project. The dimension is not the constraint; your patience for tuning is.

More on this: Make an endless runner where the tuning is the game

The parts to be realistic about

Online play with rollback netcode is a specialist problem and it is not a thing to attempt on your first fighter. Local play against a friend or against a dummy is where the genre is actually learnable.

Animation is the other cost, and in 2D it is the one to be plain about. A fighter reads through its animation more than any other genre, and the poses have to communicate what the frame data says. There is no animation editor here and nothing that generates a multi-frame sprite — Flockbay can make a single flat image, not a six-frame sweep. Those frames come from you, from an artist, or from the Catalogue, which holds 55,073 sprites. However you get them, that work is real and it is yours.

Flockbay is a desktop app for Windows, so your game runs locally on the bundled Godot at full framerate, which is not negotiable for a genre measured in frames. Building needs an internet connection; playing what you built does not.

Where to start

One character, three moves, one stage, and a training dummy. Get to the point where you can hit the dummy and feel something. Then add the second character by making the first one fight itself.

A roster is a late problem. A move that feels good is the first one, and if you never solve it the roster does not matter.

Getting a second opinion

You will stop being able to judge your own fighter after a few days. Your hands learn the timings, the moves start feeling correct because they are familiar, and you lose access to how they feel to anyone else.

The fix is another person on the same machine with a second controller. Watch what they try to do, not what they say. If they keep attempting a move that does not exist, that move should exist. If they never use the one you are proudest of, it is too slow or too situational.

This is why local play matters early and online play does not. The most valuable playtest in this genre is somebody sitting next to you looking confused.

A starting project for this is the action and fighting game templates. The design note that goes with it is what makes a good combat system.

Questions

Can I make a fighting game without coding?
Yes. Flockbay writes the GDScript for the move states, timings and hitboxes. You describe what a move should do and then tune it by playing.
Can I make a 2D fighter, or does it have to be 3D?
A 2D fighter is a first-class pick. You choose 2D or 3D when you create the project, before anything exists, and the builder carries that choice from then on. The stage is painted tile ground and placed sprites, the fighter is a 2D character body, and Flockbay writes the move states and frame data the same way either way. What a flat project will not give you is drawn animation frames — those you supply.
Can I set exact frame data?
Yes, because the output is real code with real numbers in it. Ask for a specific startup and recovery and you get exactly that.
Does it support online multiplayer?
Godot has networking, but competitive rollback netcode is a hard specialist problem and not something to expect to solve early. Local play is the sensible first target.
Do controllers work?
Yes. The game runs locally on your machine, so any gamepad it recognises is available.
What does it cost?
Free to download, and building the world by hand costs nothing. Flockbay is free on your own AI: your Claude or ChatGPT plan, your own agent, or an API key.