AI game art that
survives the runtime.
Marketing images need to look good. Game assets need to load: alpha edges that key cleanly, anchors that line up frame to frame, and manifests the engine can trust. Here is the pipeline we run for every sprite, map, and sound in our games.
The one rule: pick the pipeline by the runtime job, not by the model. A walk cycle, an icon, a parallax background, and a boss cinematic each need a different generation-and-cleanup path — and every path ends in deterministic post-processing, not vibes.
Pipeline by runtime job
| Job | Pipeline |
|---|---|
| Props, items, FX icons | Image model + style refs + background removal |
| Combat animation | Keyframe-first: pose → row strip → frame extraction → atlas |
| Walk / run / body motion | Video motion reference → frame extraction (skeleton rigs only when cleanup is acceptable) |
| Ambient loops | Video generation → looping frame sequence |
| Cinematic moments | Full-screen video → frames → code-driven timing in the engine |
| Level backgrounds | Master-first painting → outpainting chains → parallax layers |
The sprite atlas pipeline, step by step
- Base identity first. Before any animation, lock one canonical image of the character or object. Every later frame must match it — that single constraint kills 80% of "why does frame 3 look like a different creature".
- Per-state row strips. Generate each animation state as one horizontal strip on a solid chroma background — not individual frames, which drift. A strip keeps pose, scale, and style consistent by construction.
- Deterministic cleanup. Chroma-key the background, then connected-component extraction finds each frame's actual bounds. This is what fixes the classic AI-art problem: frames that bleed into each other or carry halos.
- Atlas + manifest. Frames are packed into one texture, and the engine gets a
frame_layoutmanifest: cell coordinates, anchors, durations. The game reads the manifest — it never guesses where a frame lives. - QA before shipping. The pipeline renders a contact sheet and asserts: frame count matches the request, no frame touches the atlas edge, alpha survives at game scale. A mismatch fails the build.

Maps and backgrounds
Level art inverts the sprite problem: it needs less precision per element and more compositional control. Our approach is master-first: generate one full painting at high resolution as the ground truth, then derive parallax layers by outpainting and slicing. Tilemaps are generated against a strict palette and grid — the engine owns collision and walkability, art never does. This split is why our maps ship without "invisible wall" bugs: gameplay geometry is data, not pixels.
Audio and cinematics
Audio follows the same philosophy: generated, then measured. Loudness normalized to game targets, loop points verified sample-accurate, and format-converted per platform (compressed for size, uncompressed for low-latency SFX). Cinematic ultimates are the most demanding job in the whole pipeline: a generated video is sliced into a frame sequence with code-driven timing — hit pause, shake, and flash are engine code, not baked into the video, so they feel instant and stay tunable.
What still needs a human
- Acceptance, not generation. Technical checks pass far more often than aesthetic ones. "Does this slime belong in this village?" is a human verdict, every time.
- Style locks. Once a style reference set exists, agents can generate a hundred consistent assets. Choosing the reference — that's taste.
- Cuts. Half the pipeline's value is making bad directions cheap to discover. Killing an asset at step 2 costs cents; at step 5 it costs days.
Start small
If you want to try this on your own game: pick one vertical slice — a single character, one animation state, one map corner — and take it all the way to runtime with a manifest. The pipeline reveals its own problems at that scale, for a few dollars, before you commit to a full art pass.
Which image models work for this?
The pipeline is provider-neutral: any image or video model that can hold a style reference works. What matters is the deterministic post-processing — chroma-keying, connected-component extraction, atlas packing — which runs locally and doesn't care where the pixels came from.
Why not just generate single frames?
Single frames drift: scale, lighting, and style change between generations. Row strips keep a whole animation consistent in one generation, and frame extraction guarantees each cell is exactly one frame.
How long does a character take?
With the pipeline in place: under an hour for a full animation set, including QA. Without it, days of manual cleanup — the difference is the deterministic middle, not the model.