Icefox ✦ Lab

FIELD NOTES / GAME ASSET WORKFLOW

Can AI-generated pixel art go straight into a game?

Six acceptance checks before you call it game-ready.

A good-looking preview is a starting point, not an acceptance test. Check the actual exported files, the intended animation, and the result inside your game—not just the best frame.

Tool-neutral guideAbout 6 minutes
A schematic of a reserved margin and allowed edit region on a pixel gridNative gridReserved marginAllowed edit region
Original schematic: a pixel grid, a reserved margin, and a small edit region. Not generated art or a measured test result.

Define the job first.

Use art you have permission to edit and ship. Record the native canvas, camera direction, frame order and durations, palette, alpha rules, anchor, and allowed changes. A static icon, a turn-around, a walk loop, and an action montage need different acceptance criteria. The example thresholds below are choices for a test, not universal pixel-art standards.

CHECK 01 / 06

Native grid, not preview size

A 512 × 512 file is not necessarily a 512-pixel drawing. It could be a smaller raster enlarged by exact repeated blocks. Keep the original file and distinguish its stored dimensions from its working grid.

Inspect

View at native size and at an integer nearest-neighbor enlargement. If you claim a smaller underlying grid, verify that every block repeats exactly; visual resemblance is not enough.

Example brief

“Deliver 64 × 64 native frames; do not upscale.” A 512 × 512 export with exact 8 × 8 blocks can encode the same 64 × 64 grid.

Do not infer A smaller color count or visible square edges does not prove good pixel placement, readable clusters, or a consistent style.

CHECK 02 / 06

A loop is not a montage

Classify the sequence before judging it. Several attacks cut together, eight directions, and one walk cycle are different deliverables. A montage does not have to join its last pose to its first.

Inspect

For a requested loop, play at least two repetitions at the intended timing and movement speed. Check the seam, foot contact, unintended flicker, and design details across every frame.

Example brief

“One side-view walk, eight ordered frames, stated frame durations and travel speed.” Review both native-size playback and an enlarged view.

Do not infer The first and last frames need not be identical. A still contact sheet cannot prove smooth motion or absence of foot sliding.

Technical reference: Godot · 2D sprite animation

CHECK 03 / 06

Margins, cropping, and anchors

Check extremities on every frame: weapons, hair, capes, and effects can exceed the space occupied by an idle pose. Keep the agreed anchor stable unless the motion explicitly requires it to move.

Inspect

With a declared alpha threshold, find the visible bounding box and its distance to all four edges. For a fully opaque export, alpha covers the whole canvas; use an agreed foreground mask before measuring character margins. Review the frames with the smallest margins. Check export trimming, offsets, and sprite-sheet padding separately.

Example brief

“Keep at least one native pixel around the whole character, excluding an explicitly allowed ground-contact edge.” Document intentional edge contact.

Do not infer Touching a canvas edge is a review flag—not proof that pixels were cropped. Do not use corner-color subtraction as a reliable mask for a complex opaque background.

Technical reference: Aseprite · Sprite sheets

CHECK 04 / 06

Change only what was approved

A useful local edit must improve the target without silently redesigning the rest. Keep the actual before/after files and an allowed-edit mask for each frame, aligned on the same native grid.

Inspect

Compare decoded RGBA values outside the mask. If exact preservation was required, count every pixel whose R, G, B, or alpha changed; the accepted count is zero. Compare frame order and timing separately.

Example brief

“Adjust the upper arm; preserve the face, outfit, lower body, palette, canvas, timing, and anchor.” The mask must include the old and intended new silhouettes, including transparent space.

Do not infer Zero outside-mask difference proves only preservation there. It does not show that the edit is better. Hidden RGB under alpha 0 can change an exact diff; agree on normalization before testing, not after failure.

CHECK 05 / 06

Palette and alpha are separate checks

“Few colors” is not the same as “uses the approved palette.” Count visible RGB colors separately from alpha values, and state whether translucent pixels are allowed. Indexed storage and palette compliance are different: decode palette indices to colors for comparison, and verify the file mode separately if indexed output is required.

Inspect

For every pixel with alpha greater than zero, test RGB membership in the agreed palette. Check alpha against the agreed set; for binary transparency that is 0 or 255. View exports over light and dark backgrounds.

Example brief

“Use this supplied palette and binary alpha, with no opaque background.” Record any stray colors, semi-transparent edge pixels, and visible halos.

Do not infer An opaque promotional preview does not tell you whether a tool can export transparency. A passing palette test does not establish lighting or color harmony.

Technical reference: Aseprite · Color mode

CHECK 06 / 06

In-engine result and total cleanup

Import the candidate into an isolated test scene using the target engine and your real display scale. Verify the frame rectangles, order, timing, anchor, filtering, layering, and appearance in motion.

Inspect

Record all attempts, rejected outputs, active human work, waiting time, and actual cost separately. Count preparation, prompting, review, repair, and import—not only generation. Compare with an accepted manual workflow.

Example brief

“Can this replace the existing animation without reworking its positioning or adjacent assets?” Keep the reviewer’s answer and rejection reasons, plus the total work needed to reach acceptance.

Do not infer A successful import is not artistic approval or proof of saved time. In Godot 4, 2D texture filtering is configured on CanvasItem or its project default, not the old image-import filter setting.

Technical reference: Godot · Importing images

REVIEW / 06

Your six-point evidence check

Tick an item only after reviewing the relevant evidence. This does not analyze a file or certify an asset.

Evidence you have recorded
0 / 6 evidence items recorded; unchecked items are not passes.

The checklist does not upload artwork. Its state stays in this page and resets on reload. This page uses the site’s existing Microsoft Clarity project to understand page usage.

Passing the checks is not the same as making good art

Technical checks can catch broken constraints. They cannot certify appealing style, anatomy, readable action, design consistency, or fit with the rest of a game. Give those decisions a separate human review at the intended scale. Confirm usage rights separately as well.

This is a review method, not a generator benchmark. The numerical examples are illustrative; no generator was run and no game asset was accepted as part of this guide.

Primary references

These official docs explain file, color, and engine behavior. The six-check acceptance workflow and example thresholds above are editorial guidance, not vendor guarantees.