Create Game Assets
Turn a game's visual intent into a consistent, engine-ready asset set. Treat image generation as
one production tool inside a controlled pipeline, never as proof that an asset is shippable.
Core workflow
- Inspect before inventing. Find existing screenshots, concept art, sprites, models, fonts,
import settings, camera framing, target resolution, and naming conventions. Preserve a coherent
existing direction unless the user asks for a redesign.
- Lock the technical frame. Record engine, 2D/3D, camera/view, native display size, asset
dimensions, world scale, transparency, palette, filtering, animation frames, texture budget,
and target platforms. Use
assets/art-direction-brief.md as a copyable brief.
- Name the visual system. Define shape language, silhouette priorities, value structure,
palette roles, materials, lighting, detail density, edge treatment, and motion character. Use
concrete visual properties; do not substitute a living artist's name for an art direction.
- Make an asset manifest. Copy
assets/asset-manifest.json, then list every required asset,
state, variant, size, pivot, collision role, source, license, and approval status. Separate
production assets from disposable greybox placeholders.
- Approve one visual target. Create or select a representative hero asset or small style
board before producing a full set. Judge it at actual game scale and against a gameplay
background. If the user delegated the choice, pick the strongest viable direction and record
the decision instead of blocking.
- Produce related assets as families. Reuse the approved target as an edit/reference input.
Keep palette, view, proportions, lighting, outline, and texture density invariant. Generate
small coherent batches; avoid unrelated one-off prompts that drift.
- Normalize deterministically. Crop, size, anchor, slice, name, compress, and check alpha with
ordinary image/DCC tools. Never trust generated grids, transparency, seams, pivots, topology,
or dimensions without inspection. Use the bundled scripts for raster QA and contact sheets.
- Import with engine-native settings. Set filtering, mipmaps, pixels-per-unit/world scale,
color space, compression, sprite slicing, texture types, materials, and collision deliberately.
Read the relevant engine skill before editing engine files.
- Validate in context. Inspect a contact sheet and the actual game at native resolution.
Check silhouette, scale, animation stability, seams, legibility, palette, collision fit, memory,
and compression artifacts. Iterate on the source asset, not only on runtime compensations.
- Record provenance. Keep the source URL/tool, license or generation note, edit history, and
restrictions beside the manifest. Preserve embedded provenance metadata when the pipeline can.
Choose the production path
| Need |
Default path |
| Existing asset needs a controlled change |
Edit the original/reference; state what must remain unchanged |
| New 2D visual family |
Approve seed → generate/source family → normalize → preview → import |
| True pixel art |
Use generated work as a draft; enforce grid, palette, clusters, and frames with pixel tools |
| Tileable surface or tileset |
Produce a small family; repair seams; test repeated 3×3 before approval |
| UI art or icons |
Keep text and interaction code-native; prefer SVG/vector for simple geometric symbols |
| 3D model or material |
Use concepts as reference; author/clean in a DCC; validate topology, UVs, scale, pivots, and LODs |
| No generation/edit tool is available |
Build the brief and manifest; source licensed assets or keep explicit greybox placeholders |
| Audio asset |
Route sound implementation and mixing to audio-design; still track source/license in the manifest |
Image-generation handoff
When a capable image generation or editing tool is installed, use it for live visual creation. If
the workspace exposes an imagegen skill, read and follow it for the actual generation/edit call;
this skill owns the game-art brief, constraints, normalization, and acceptance gates.
Build prompts from these blocks:
ROLE/PURPOSE: production asset for [gameplay role]
SUBJECT: [specific object/character and action]
VIEW: [orthographic/top-down/side/three-quarter], [camera and facing]
ART DIRECTION: [shape language], [palette roles], [materials], [edge treatment]
GAME-SCALE READ: [silhouette and focal details that must survive at WxH]
TECHNICAL OUTPUT: [dimensions/aspect], [transparent or scene background], [frame/slot count]
LOCKS: preserve [identity, proportions, palette, costume, lighting, line weight]
EXCLUDE: text, labels, mockup frames, scenery, duplicate objects, cropped edges, signatures
For edits, say both what changes and what stays fixed. Ask for transparent output through the
tool's native transparency option when available, then verify the alpha channel—prompt wording
alone does not guarantee transparency.
Raster QA recipes
Inspect constraints and emit a machine-readable report:
python scripts/asset_report.py assets/player-idle.png \
--expect-size 64x64 --require-alpha --max-colors 48 --json
Build a nearest-neighbor contact sheet over a checkerboard:
python scripts/build_preview_sheet.py output/player/*.png \
--out output/player-preview.png --columns 4 --cell-size 192
Run script paths relative to this skill directory, or resolve the installed skill path first.
Both scripts require Python 3.10+ and Pillow. Install the only dependency with
python -m pip install -r scripts/requirements.txt when it is not already available.
Quality gates
- Cohesion: related assets share palette roles, line/edge treatment, view, light direction,
scale, and detail density.
- Gameplay read: silhouettes and state changes remain clear at native resolution, in motion,
and over real backgrounds.
- Technical fit: exact size/frame count, usable alpha, stable anchors/pivots, correct color
space/filtering, no clipped content, no accidental labels or baked mockup chrome.
- Animation: identity, volume, proportions, costume, facing, and baseline do not drift; timing
and anticipation read in an in-engine preview.
- Tiles/backgrounds: required edges tile without seams; repetition is tolerable; parallax
layers have intentional depth and no baked collision cues.
- 3D: transforms, scale, pivot, normals, UVs, materials, topology, rig, collision proxies,
LODs, and runtime format are checked rather than inferred from a render.
- Rights: every shipped file has recorded provenance and terms compatible with the project.
Do not call an asset production-ready from a prompt result alone. Approval requires the relevant
technical checks plus an in-engine or native-scale visual inspection.
References
- For visual-system decisions and maintaining consistency, read
references/art-direction.md.
- For sprites, animation strips, tiles, backgrounds, UI art, and engine import settings, read
references/raster-pipeline.md.
- For concept-to-mesh, textures, glTF/GLB, LOD, collision, and runtime validation, read
references/three-d-pipeline.md.
- For licenses, generated-media records, and provenance, read
references/provenance.md.
Related skills
game-ui-ux for layout, navigation, readability, and accessible interaction.
game-feel, shader-programming, and audio-design for presentation after the source art fits.
- Engine import/rendering skills such as
godot-tilemap, unity-tilemap-2d,
pixijs-rendering, and threejs-gltf-loading.
1---2name: create-game-assets3description: Plan, generate, source, normalize, and validate cohesive visual game assets. Use for art direction, style bibles, sprites, tilesets, backgrounds, UI art, icons, textures, concept art, or 3D asset briefs.4---5
6# Create Game Assets
7
8Turn a game's visual intent into a consistent, engine-ready asset set. Treat image generation as
9one production tool inside a controlled pipeline, never as proof that an asset is shippable.
10
11## Core workflow
12
131. **Inspect before inventing.** Find existing screenshots, concept art, sprites, models, fonts,
14 import settings, camera framing, target resolution, and naming conventions. Preserve a coherent
15 existing direction unless the user asks for a redesign.
162. **Lock the technical frame.** Record engine, 2D/3D, camera/view, native display size, asset
17 dimensions, world scale, transparency, palette, filtering, animation frames, texture budget,
18 and target platforms. Use `assets/art-direction-brief.md` as a copyable brief.
193. **Name the visual system.** Define shape language, silhouette priorities, value structure,
20 palette roles, materials, lighting, detail density, edge treatment, and motion character. Use
21 concrete visual properties; do not substitute a living artist's name for an art direction.
224. **Make an asset manifest.** Copy `assets/asset-manifest.json`, then list every required asset,
23 state, variant, size, pivot, collision role, source, license, and approval status. Separate
24 production assets from disposable greybox placeholders.
255. **Approve one visual target.** Create or select a representative hero asset or small style
26 board before producing a full set. Judge it at actual game scale and against a gameplay
27 background. If the user delegated the choice, pick the strongest viable direction and record
28 the decision instead of blocking.
296. **Produce related assets as families.** Reuse the approved target as an edit/reference input.
30 Keep palette, view, proportions, lighting, outline, and texture density invariant. Generate
31 small coherent batches; avoid unrelated one-off prompts that drift.
327. **Normalize deterministically.** Crop, size, anchor, slice, name, compress, and check alpha with
33 ordinary image/DCC tools. Never trust generated grids, transparency, seams, pivots, topology,
34 or dimensions without inspection. Use the bundled scripts for raster QA and contact sheets.
358. **Import with engine-native settings.** Set filtering, mipmaps, pixels-per-unit/world scale,
36 color space, compression, sprite slicing, texture types, materials, and collision deliberately.
37 Read the relevant engine skill before editing engine files.
389. **Validate in context.** Inspect a contact sheet and the actual game at native resolution.
39 Check silhouette, scale, animation stability, seams, legibility, palette, collision fit, memory,
40 and compression artifacts. Iterate on the source asset, not only on runtime compensations.
4110. **Record provenance.** Keep the source URL/tool, license or generation note, edit history, and
42 restrictions beside the manifest. Preserve embedded provenance metadata when the pipeline can.
43
44## Choose the production path
45
46| Need | Default path |
47|------|--------------|
48| Existing asset needs a controlled change | Edit the original/reference; state what must remain unchanged |
49| New 2D visual family | Approve seed → generate/source family → normalize → preview → import |
50| True pixel art | Use generated work as a draft; enforce grid, palette, clusters, and frames with pixel tools |
51| Tileable surface or tileset | Produce a small family; repair seams; test repeated 3×3 before approval |
52| UI art or icons | Keep text and interaction code-native; prefer SVG/vector for simple geometric symbols |
53| 3D model or material | Use concepts as reference; author/clean in a DCC; validate topology, UVs, scale, pivots, and LODs |
54| No generation/edit tool is available | Build the brief and manifest; source licensed assets or keep explicit greybox placeholders |
55| Audio asset | Route sound implementation and mixing to `audio-design`; still track source/license in the manifest |
56
57## Image-generation handoff
58
59When a capable image generation or editing tool is installed, use it for live visual creation. If
60the workspace exposes an `imagegen` skill, read and follow it for the actual generation/edit call;
61this skill owns the game-art brief, constraints, normalization, and acceptance gates.
62
63Build prompts from these blocks:
64
65```text
66ROLE/PURPOSE: production asset for [gameplay role]
67SUBJECT: [specific object/character and action]
68VIEW: [orthographic/top-down/side/three-quarter], [camera and facing]
69ART DIRECTION: [shape language], [palette roles], [materials], [edge treatment]
70GAME-SCALE READ: [silhouette and focal details that must survive at WxH]
71TECHNICAL OUTPUT: [dimensions/aspect], [transparent or scene background], [frame/slot count]
72LOCKS: preserve [identity, proportions, palette, costume, lighting, line weight]
73EXCLUDE: text, labels, mockup frames, scenery, duplicate objects, cropped edges, signatures
74```
75
76For edits, say both what changes and what stays fixed. Ask for transparent output through the
77tool's native transparency option when available, then verify the alpha channel—prompt wording
78alone does not guarantee transparency.
79
80## Raster QA recipes
81
82Inspect constraints and emit a machine-readable report:
83
84```bash
85python scripts/asset_report.py assets/player-idle.png \
86 --expect-size 64x64 --require-alpha --max-colors 48 --json
87```
88
89Build a nearest-neighbor contact sheet over a checkerboard:
90
91```bash
92python scripts/build_preview_sheet.py output/player/*.png \
93 --out output/player-preview.png --columns 4 --cell-size 192
94```
95
96Run script paths relative to this skill directory, or resolve the installed skill path first.
97Both scripts require Python 3.10+ and Pillow. Install the only dependency with
98`python -m pip install -r scripts/requirements.txt` when it is not already available.
99
100## Quality gates
101
102- **Cohesion:** related assets share palette roles, line/edge treatment, view, light direction,
103 scale, and detail density.
104- **Gameplay read:** silhouettes and state changes remain clear at native resolution, in motion,
105 and over real backgrounds.
106- **Technical fit:** exact size/frame count, usable alpha, stable anchors/pivots, correct color
107 space/filtering, no clipped content, no accidental labels or baked mockup chrome.
108- **Animation:** identity, volume, proportions, costume, facing, and baseline do not drift; timing
109 and anticipation read in an in-engine preview.
110- **Tiles/backgrounds:** required edges tile without seams; repetition is tolerable; parallax
111 layers have intentional depth and no baked collision cues.
112- **3D:** transforms, scale, pivot, normals, UVs, materials, topology, rig, collision proxies,
113 LODs, and runtime format are checked rather than inferred from a render.
114- **Rights:** every shipped file has recorded provenance and terms compatible with the project.
115
116Do not call an asset production-ready from a prompt result alone. Approval requires the relevant
117technical checks plus an in-engine or native-scale visual inspection.
118
119## References
120
121- For visual-system decisions and maintaining consistency, read
122 `references/art-direction.md`.
123- For sprites, animation strips, tiles, backgrounds, UI art, and engine import settings, read
124 `references/raster-pipeline.md`.
125- For concept-to-mesh, textures, glTF/GLB, LOD, collision, and runtime validation, read
126 `references/three-d-pipeline.md`.
127- For licenses, generated-media records, and provenance, read
128 `references/provenance.md`.
129
130## Related skills
131
132- `game-ui-ux` for layout, navigation, readability, and accessible interaction.
133- `game-feel`, `shader-programming`, and `audio-design` for presentation after the source art fits.
134- Engine import/rendering skills such as `godot-tilemap`, `unity-tilemap-2d`,
135 `pixijs-rendering`, and `threejs-gltf-loading`.