NYC Crashout title screen over a rain-soaked Brooklyn Bridge, two fighters faced off beneath the wordmark.

AI-prompted 2D browser fighting game — case study

Prompt to playable: building a fighting game with AI.

NYC Crashout is a browser-playable 2v2 tag-team fighting game with a 20-character roster, generated and assembled entirely from AI prompts. This is the executive readout: how it was built, how quality was verified, and what shipped.

5-day build 131 commits 71 judged rounds 20 characters, 240 cinematic sprites 60fps @ 1280×720

01 / The starting point

A working prototype, no identity.

The starting build already had working tag-team combat and character selection. What it lacked: a visual identity, professional-grade presentation, and a readable HUD. The bar was set high on purpose, and checked by blind comparison against top-tier genre benchmarks — not internal opinion.

Visual bar

Painterly, high-contrast character presentation and impact effects.

Gameplay bar

Readable HUD, weighted hits, combo feedback, tag-team pacing.

Performance bar

60fps at 1280×720, sustained through full-cast combat.

02 / The process

Build, then get judged.

Work moved in two phases. First, straightforward feature build-out: character art, rebrand, roster. Then a repeatable loop for every major piece: build → capture → blind-judge → fix, until it actually won.

Foundation

Roster integration, rebrand, full-body turnaround art wired into live combat, NYC arena catalog.

Feel pass

Continuity-based movement, three-phase strike animation, command buffering, depth cues.

Cinematic upgrade

Every fighter rebuilt around a 12-pose state vocabulary instead of one static turnaround.

The gauntlet loop

An automated builder + blind 3-judge panel, scored against real reference footage, round after round until each piece won.

03 / The gauntlet loop

The process that moved the needle.

Once the game was playable, "looks good to me" stopped being good enough. Ten concrete pieces — HUD, KO moment, hit feedback, combo feedback, character scale, title screen, stage art, onboarding, character select, super FX — each went through the same loop: one targeted change, a deterministic capture, and a panel of three independently-prompted judges comparing it blind against real reference footage. A piece only counts as won on a majority verdict.

9 / 10pieces beat the reference bar
71total judged rounds across all pieces
17 & 16rounds for the two hardest pieces (KO moment, super FX)

“Always look at the captured frame before judging — two KO fixes came from reading pixels, not verdicts.” — working rule that came out of the loop itself, after a coordinate-only fix once threw a punch away from the opponent while every number on paper looked correct.

04 / Evolution, in turning points

What actually changed the game, in order.

Day 1–2

Roster + rebrand

Eight fighters joined selection, HUD, and combat. NYC Clash became NYC Crashout, with Match Setup added before select.

Day 2

Clean sprite mattes

A region-growing keyer replaced fragile smoothing. Across 54 source sprites, leftover backdrop fell from 34–52% to zero without eroding fighters.

Day 3

12-state combat vocabulary

Every fighter adopted the same readable state set. Nine pose-sheet batches became 108 transparent gameplay sprites.

Day 4–5

Gauntlet, not guesswork

HUD won 3/3. The K.O. won after 17 rounds, reducing clipping from 4.49% to 1.60% and recentering the action.

Day 5

Playtesting finds the real bugs

Live matches exposed mirrored attacks and guard stances that static review missed. The fixes were visually rechecked across the roster in both facings.

04.5 / Visual evolution

The evidence trail, not just the description.

Every claim above has a paper trail of actual frames — captured deterministically by the same harness at every round, so a before/after comparison is real, not reconstructed from memory.

Title cover: shipped first, then the path there

A close bridge composition with Hideki and Axiom facing off around a lightning starburst.
Bridge composite — close framing
A Brooklyn Bridge face-off composition with Hideki and Axiom in fighting poses.
Bridge composite — fighting stance
An earlier wide Brooklyn Bridge cover composition with lightning between the two fighters.
Bridge composite — wide starburst
Early Times Square concept showing the original two-character face-off.
Early visual direction — original concept with final logo

The shipped title screen leads. The supporting frames show how the composition moved from an early Times Square face-off into a focused Brooklyn Bridge cover, then became the playable menu with the finished NYC Crashout mark.

Raw photo sheet to gameplay sprite — all 20 fighters

The chroma-key + region-growing matte pipeline turns one green-screen sheet into clean per-pose gameplay sprites with zero measured leftover backdrop — the same pipeline for every one of the 20 fighters, original roster and underground roster alike.

The wordmark: final master, then production variants

The final NYC Crashout wordmark extracted to a transparent PNG for the shipped title screen.shipped logo — transparent master
The NYC Crashout wordmark rendered over a green key background.green-key render
The NYC Crashout wordmark rendered over a magenta key background, the alternate key color for light-colored mark elements.pink-key render
A flat white monochrome version of the NYC Crashout wordmark for dark-UI overlay use.white overlay variant

The shipped transparent master leads. The green- and magenta-key passes show the extraction options used to protect every mark color, with a flat white variant retained for dark UI overlays.

The KO moment across 3 of its 17 judged rounds

The KO moment screen at gauntlet round 9, round 14, and the winning round 19, showing framing and contrast improve each pass.

Round 9 had no letterbox treatment or callout scale to speak of; round 14 added the full K.O. lockup but with a static pose; round 19 finally won by cutting near-white clipping from 4.49% to 1.60% and recentering the frame on the fallen fighter.

What the blind judges actually compared

Side by side comparison of a genre-benchmark KO reference frame and the NYC Crashout round 19 winning KO frame.

This is the literal comparison a judge saw, blind and unlabeled, when round 19 won 2 of 3 votes.

04.7 / The full cast

All 20 characters, each with a full cinematic pose set.

Ten fighters on the default select screen, ten more on a hidden second page — every one of them carries the full 12-state pose vocabulary (stance, walk, crouch, jump, jab, punch, kick, uppercut, hit, block, knockdown, victory), not just a single portrait. Hover a fighter for their full-body figure and stat line.

04.8 / Where it's set

22 real New York locations, each rendered as a night-lit stage.

Every stage is its own generated environment plate, not a shared backdrop with a palette swap — Times Square's screens, Coney Island's rides, the Met's colonnade and Grand Central's hall are each purpose-built for the fighter's scale and camera framing.

05 / The game today

What it looks like now.

Two fighters, Hideki and Nova, squared off facing each other in Times Square.
Two fighters properly squared off — the payoff of the roster-wide facing audit above.
Character select screen showing a rotating turntable preview of a fighter alongside stat tiles.
Character select — turntable preview, stat tiles, hidden underground roster on a second page.
A live fight in Central Park at night, two fighters facing off with health bars and hyper meter visible in the HUD.
Live combat — Central Park stage, HUD cluster with team-colored health bars.
Neutral combat exchange between Luca and Talia, from the hidden underground roster, correctly facing each other in SoHo.
Neutral combat — Luca vs Talia from the hidden underground roster; camera shear and wet-street reflections read as depth at 60fps.
A combo counter and contact-anchored hit effect during an active combo.
Combo feedback — contact-anchored FX core, replacing an earlier whole-body hit wash.
A heavy hit reaction with impact effects at the correct contact height on the fighter's body.
Hit feedback — impact FX anchored to measured per-attack contact heights.
The match results screen: YOU WIN! over the winning team's two portraits, a W-L record, and a rematch prompt.
Match results — winning team portraits, record tracking, rematch prompt.
The KO moment itself, full-screen with no letterbox bars, dramatic lighting and a K.O. title card.
The KO moment — full-screen, no letterbox crop; 17 judged rounds to land the framing and contrast.

06 / Where it stands

Nine wins, one honestly-open item, and a verification habit that stuck.

Nine of the ten gauntlet pieces now beat their reference bar on majority judge verdict. The tenth — hit-feedback on four specific characters — is a known, disclosed block: it needs regenerated hit-reaction art (their current sprites are upright stances with no recoil), and that generation step is gated on a manual login step outside this codebase. It's tracked, not hidden, with paste-ready prompts staged for whenever that's unblocked.

Every claim gets checked twice

Static captures for deterministic comparison, then a real played match with genuine keyboard input, before anything is called done — because staged poses have bypassed real facing bugs before.

Panels beat single judges

A lone judge's verdict flipped round to round on the same piece; a 3-judge panel with different lenses (craft, readability, physicality) caught a regression and killed a bad directive on its first use.

Read pixels, not verdicts

Text summaries of a judge's finding can omit or misstate what the reference frame actually shows — every fix in this project traces back to someone looking directly at the image.

This project is illustrative of process, not a client deliverable — all art, roster names, and copy shown are original to NYC Crashout. Full build documentation, the complete judge-verdict history, and the working code live in the parent project repository.

Read the full session handoff →

07 / See it in motion

An 11-second action reel.

Hideki lands a punch, kick, and Flash Burst fireball against Fang. Aria’s Runway Rampage follows, before Hideki’s Kill Shot brings down Torta and ends on the NYC Crashout mark.

08 / Build facts

The production record, not a retroactive estimate.

These are the figures preserved in the repository, handoff, and verification artifacts. Time and token telemetry was not instrumented during the original build, so it is disclosed as unavailable rather than reconstructed after the fact.

5 daysRecorded build window
131Recorded commits during the build window
71Judged gauntlet rounds
20 × 12Fighters × cinematic gameplay states
22New York location stages
200Roster-facing / attack-anchor checks on the final sweep

Recorded AI models

  • Seedream 5.0 Lite via Higgsfield — character-art prompts
  • Claude — recorded coding-session author
  • Codex — case study, reel, verification, deployment

Skills & tooling

  • creating-websites-and-apps — site workflow
  • verify-before-done — independent release review
  • Playwright, Node & FFmpeg — capture, encoding, runtime checks

Honest telemetry gap

  • Hours: not instrumented
  • Token usage: not instrumented
  • Plugin usage: not documented
Health
Mobility
Style