--- name: find-sprites description: Source visual assets (sprites, icons, tilesets, portraits) for a game or UI-heavy build in a way that yields a coherent, intentional look instead of a debug-console aesthetic. Use this skill when you need art for rooms, entities, UI controls, HP bars, spell icons, status effects, or any other visual element; when the build is failing its UI-quality gate because it looks unintentional; or when you're about to fall back to raw ASCII/text UI. The goal is "looks like someone designed it" — not photorealism, not 1:1 with AAA games, but internally consistent and readable. lane: dev type: system-requirements --- # find-sprites Agents left to their own devices tend to ship raw text UI, emoji salad, or inconsistent asset mixtures. This skill exists because the `ui-quality` gate consistently fails when asset sourcing is treated as an afterthought. Source assets deliberately, in preference order, and commit to one visual direction. ## Preference order Work down this list. Only drop to the next tier if the current tier cannot cover your need. ### Tier 1 — Installable icon and sprite packages Lightweight, well-typed, import cleanly. Best for UI iconography, status effects, resource icons, and action buttons. | Package | Use for | |---|---| | `lucide-react` / `lucide` | UI icons, buttons, controls, status (~1500 icons) | | `@iconify/react` / `@iconify-json/*` | Broadest set — game-icons pack, emojione, twemoji, etc. | | `@tabler/icons` | Clean outline style, good for minimalist UI | | `heroicons` | Simple outline + solid, Tailwind-friendly | For game iconography specifically, **`@iconify-json/game-icons`** (Delapouite/Lorc) is the single highest-leverage install: ```sh npm install @iconify/react @iconify-json/game-icons ``` ```tsx import { Icon } from "@iconify/react"; ``` ~4000 game-themed icons covering weapons, spells, monsters, resources, status effects. Use this before anything else for room icons, spell icons, enemy representations, and resource bars. ### Tier 2 — Web-searched free/open-license art When you need actual sprites (not icons) — tilesets, character portraits, monster sprites, environment art. **Preferred sources** (all free, all permissively licensed — always confirm the specific asset's license before shipping): - **OpenGameArt.org** — CC0 / CC-BY tilesets, sprites, UI packs. Search "dungeon tileset CC0", "roguelike monsters CC0". - **Kenney.nl** — huge, consistent, CC0 asset packs. "1-Bit Pack", "Roguelike/RPG Pack", "UI Pack". Single-author → visual coherence is free. - **itch.io free assets** — filter by "free" and check each asset's license. Often CC0 or CC-BY. - **Game-icons.net** — the web source behind the Iconify pack above. SVG download if you need edits. **Process:** 1. Pick ONE source pack for your core visual direction. Do not mix Kenney's 1-bit with Kenney's top-down pixel — pick one. 2. Download the pack (or the specific sprites you need) into `game/public/assets/sprites/`. 3. Record the source and license in `game/public/assets/LICENSES.md`: ``` - dungeon-tileset/ — Kenney.nl "Roguelike/RPG Pack" — CC0 - monsters/ — OpenGameArt "Pixel Monster Pack" by — CC-BY ``` 4. Reference assets via static paths: ``. ### Tier 3 — Generated placeholder art When you cannot find a matching asset and time is short. Quality ranking: - **SVG drawn by hand** (inline or file) — scales, sharp, themeable via CSS. - **Canvas-drawn shapes** — works for simple top-down tiles, procedural dungeon cells. - **CSS-styled divs with gradients + borders** — good enough for room-type differentiation. - **Emoji fallback** — acceptable for status indicators and small UI accents only. Do NOT build your entire UI out of emoji — it reads as lazy even when consistent. ### Tier 4 — Geometric primitives Solid-colored rectangles, circles, borders. **Counts against your UI-quality score even if used intentionally.** Only acceptable for background panels or temporary placeholders you will replace before shipping. ### Tier 5 — Raw ASCII / text-only This is a gate failure. Do not ship text-only UI. If you are tempted to, go back to Tier 1 and install the game-icons pack — it takes 30 seconds. ## Coherence over polish One consistent visual direction beats a mix of high-quality assets from different styles. A game built entirely from Kenney's 1-bit pack looks intentional. A game mixing hand-drawn portraits, pixel monsters, and flat-vector UI icons looks broken — even if each individual asset is beautiful. Before sourcing anything, decide: 1. **Perspective** — top-down, side-view, or UI-only? 2. **Fidelity** — pixel, vector, or illustrated? 3. **Palette** — dark fantasy, bright cartoon, monochrome? Then source only assets matching those three answers. If a must-have asset doesn't match, either adapt it (recolor, resize) or redraw the rest of your direction to match it. ## Licensing Always check the license. CC0 is the simplest — no attribution required, no restrictions. CC-BY requires attribution (include the author in `LICENSES.md`). Avoid CC-BY-NC (non-commercial) and CC-BY-SA (share-alike viral) unless you've confirmed your project's distribution model is compatible. Never ship assets of unknown provenance. ## Failure modes - **Mixing styles.** Pixel + vector + illustrated = incoherent. Pick one. - **Installing an icon pack and never using it.** The install is the easy part. Actually replace placeholder text with `` in every UI surface. - **Downloading a tileset without a license check.** Ship-blocker if the license forbids the use. - **Deferring art to "after mechanics work."** The UI-quality gate is scored on what actually ships. An unpolished build with working mechanics still fails the gate. - **Using emoji as the entire UI.** Reads as a debugger, not a game.