config/skills/game-dev/art-pipeline/SKILL.md
Manage game art assets from creation to in-engine. Use when organizing sprites, choosing art tools, setting up folder structures, managing source files, or planning asset production. For a solo dev learning art — practical pipeline, not art instruction.
npx skillsauth add gavinmcfall/agentic-config art-pipelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The best art pipeline is the one you actually use. Start simple. Automate later.
Invariant Every asset has one source file and one export target. The source file is the editable original (layers, vectors, animation frames). The export is the game-ready file. Never edit exports directly.
Example
player_idle.ase (source, Aseprite) → export → player_idle.png (game-ready). Need to change the player? Edit the .ase, re-export. Never open the PNG in a pixel editor.
//BOUNDARY: Quick one-off assets (placeholder rectangles, debug markers) can skip the source file. But anything that will ship needs a source.
project/
├── assets/ ← game-ready exports (committed to git)
│ ├── sprites/
│ │ ├── player/
│ │ ├── enemies/
│ │ ├── items/
│ │ └── effects/
│ ├── tilesets/
│ ├── ui/
│ ├── backgrounds/
│ └── audio/ ← see sound-designer skill
│
├── art-source/ ← editable source files
│ ├── sprites/ ← mirrors assets/ structure
│ │ ├── player/
│ │ ├── enemies/
│ │ ├── items/
│ │ └── effects/
│ ├── tilesets/
│ ├── ui/
│ └── backgrounds/
│
└── marketing/ ← Steam capsule, screenshots, trailer
├── capsule/
├── screenshots/
└── trailer/
assets/ mirrors art-source/ in structure. Same subfolders, same naming.art-source/. Exports go in assets/.art-source/ can be gitignored if files are too large — but back them up (MinIO, external drive).marketing/ is separate because marketing assets have different requirements (resolutions, formats, Steam specs).[subject]_[variant]_[state]_[frame].png
| Component | Examples | Notes |
|-----------|----------|-------|
| subject | player, slime, sword, tile_grass | What the asset is |
| variant | red, elite, rusty | Optional — for variations |
| state | idle, run, attack, dead | Animation state |
| frame | 01, 02, 03 | For sprite sheets / animation frames |
Examples:
player_idle_01.pngslime_red_attack_03.pngsword_rusty.png (no state — static item)tile_grass_center.pngRules:
01 not 1)Source vs Export naming: Aseprite stores all animation frames in one .ase file. The source file is named without frame numbers: player_idle.ase. On export (File -> Export Sprite Sheet or batch export), frames become player_idle_01.png, player_idle_02.png, etc. One source file, many export files.
Pick ONE tool per category. Learn it. Switch only if it genuinely blocks you.
Aseprite — The standard for pixel art. Costs ~$20 or compile from source for free.
LibreSprite — Free, open-source fork of older Aseprite. Fewer features but functional.
Krita — Free, open-source. Full painting/illustration tool.
LDtk — Modern tile map editor by the creator of Dead Cells.
Tiled — The long-standing standard. More features, steeper learning curve.
Blender — Free, does everything. Steep learning curve but enormous community and tutorials.
| Property | Recommendation | |----------|---------------| | Format | PNG (lossless, transparency) | | Size | Power of 2 not required for modern engines, but keep consistent within a category | | Resolution | Choose one base resolution and stick with it. Common: 16x16, 32x32, 48x48, 64x64 | | Color depth | 32-bit RGBA |
| Property | Recommendation | |----------|---------------| | Tile size | 16x16 or 32x32 for pixel art; match sprite scale | | Format | Single PNG atlas with consistent grid | | Padding | 1px between tiles to prevent bleeding | | Export | Atlas + JSON metadata (LDtk or Tiled export) |
| Property | Recommendation | |----------|---------------| | Format | PNG with transparency | | Style | Match game's art style but prioritize readability | | 9-slice | Use 9-slice/9-patch for resizable panels and buttons |
Combine animation frames into a single image:
player_idle_sheet.png (4 frames, 32x32 each = 128x32 total)
┌────┬────┬────┬────┐
│ 01 │ 02 │ 03 │ 04 │
└────┴────┴────┴────┘
Export from Aseprite: File → Export Sprite Sheet → choose layout.
Art takes longer than you think. Use these estimates for sprint planning:
| Asset | Size | Estimate (Beginner) | |-------|------|---------------------| | Simple sprite (16x16, few colors) | S | 30-60 min | | Detailed sprite (32x32, animated) | M | 2-4 hours | | Character with full animation set | L | 1-2 days | | Tileset (basic, 20-30 tiles) | L | 1-2 days | | Full tileset (60+ tiles, autotile) | XL | 3-5 days | | UI mockup (one screen) | M | 2-4 hours | | Background/parallax (one layer) | M | 2-4 hours |
These are beginner estimates. They get faster with practice, but NOT as fast as you hope.
assets/ (exported PNGs) — always commit. These are small and essential.art-source/ — commit if files are reasonable size (<50MB total). Otherwise gitignore and back up separately.If source files are large (PSD, Blender files):
art-source/ to .gitignoreart-source/README.md listing what's stored and where the backup livesFor projects with many large source files, consider Git LFS. But for a solo dev starting out, the gitignore + backup approach is simpler.
art-source/ and assets/.When helping with art pipeline:
Player Idle (2).png, gently redirect to player_idle_02.png.When the user is choosing art tools:
scope-guardian skill — Art scope is content scopeprototype-coach skill — Art tests validate style feasibilitygdd-writer skill — Art Direction sectionn8n-workflow-builder skill — Automating asset processingsound-designer skill — Audio assets follow similar pipeline patternsOrganized assets compound. Messy assets multiply. Name it right the first time.
development
Deeply personal mentor and guide. Use when struggling, wanting to quit, feeling overwhelmed, or doubting yourself. Empathy-first. Build this skill around YOUR psychology.
tools
Build automation workflows with n8n for game dev tasks. Use when automating repetitive processes, setting up notifications, scheduling backups, or connecting services. Reduces manual overhead that ADHD brains find hardest to maintain.
testing
Query and diagnose the home Kubernetes cluster. Use when checking cluster health, troubleshooting pods/services/routes, inspecting storage, or understanding what's deployed. Covers Talos node management, Ceph storage, Cilium networking.
devops
Deploy and manage applications in the home-ops Kubernetes cluster via GitOps. Use when deploying new apps, modifying existing ones, adding routing, managing secrets, or working with the home-ops repo structure.