Skip to main content
art-direction is a skill from the Summer skill library: a guide your AI agent reads when the task matches, so it builds the good version on the first try. Define the game’s visual style (palette, mood, lighting, post) as an art bible in .summer/art-bible.md.

When your agent uses it

  • Defining the visual style of the game — references, palette, mood, lighting plan, post-processing
  • Make it look like PS1, retro, low-poly, pixel art, cel-shaded, or a horror aesthetic
  • Define the visual style before making any assets

Install

summer setup installs every skill for your agent. To add only this one:
Swap claude-code for your agent, such as codex or cursor. See Skills for every option.

The skill

Overview

A consistent art direction makes a low-budget game look finished. Solo developers most often lose it by mixing styles — a toon-shaded character on a photoreal terrain, a pixel UI over a smooth 3D world. This skill builds an art bible the rest of the project obeys: references, palette, mood, lighting plan, post-processing, and a do/don’t list. It writes to .summer/art-bible.md — the file every rendering / shader / lighting / VFX skill reads later. Core principle: Constraint produces style. A game with 15 colors total looks more intentional than a game with infinite-color textures. Pick the constraint, then defend it.

Steps

1. Open with references

Ask exactly this:
Two or three references — games, films, art books, anything visual. What’s the vibe?
Don’t suggest. Listen. References are the single most reliable signal of what they actually want. If they say one game, ask for one more — single-reference art bibles converge into a clone of that game. If they freeze, offer 4 axes (not games):
Pick the one that feels right: a) painterly + warm + handcrafted (Sable, Tunic), b) crisp + saturated + toon (Hi-Fi Rush, Splatoon), c) dark + moody + grounded (Dishonored, Inside), d) lo-fi + nostalgic + crunchy (Dusk, Faith).

2. Read the brief if it exists

Brief might say “horror” — that constrains palette and lighting. Brief might say “cozy” — that forbids harsh contrast. Quote it back:
Brief is “cozy farming sim”. That rules out harsh shadows and saturated reds. Confirming.

3. Pin the rendering technique

This is the technique question, not the mood question. Force a choice: Ask:
One technique. Which is it?
If they pick more than one (“PBR characters in a toon world”), name the conflict and force a hierarchy:
Mixed techniques rarely cohere. If you mean “stylized PBR with toon outlines” — that’s one technique (PBR + post-process outline). If you mean “toon characters in a PBR world” — that’s two, and they’ll fight. Pick one as primary.

4. Build the palette

A palette is 6-15 colors total. Not a vibe, not “warm tones” — actual hex codes. Force it. Walk:
State candidates as hex. For a “cozy farming” game:
Pure white (#ffffff) and pure black (#000000) are almost always wrong — they break the palette. Flag it if the user pitches them. Ask:
Palette above. Adjust any, or lock it?

5. Define the mood adjectives

Three to five adjectives. Concrete, not vague. Bad: “cool, atmospheric, immersive.” Good: “soft, hand-warmed, slightly melancholic, golden-hour.” Ask:
Three to five adjectives that aren’t ‘cool’ or ‘atmospheric’. Pick from concrete sensory words.

6. Write the lighting plan

State the plan in one block. For the current Summer Engine rendering stack:
For 2D:

7. Define post-processing rules

Summer Engine post stack: Glow, SDFGI, SSAO, SSR, Adjustments, Color Correction (LUT). State opinions, not options.
Make these calls. Don’t enumerate options.

8. Build the do / don’t list

This is the contract. Five do’s, five don’ts. Specific, enforceable.

9. Apply Summer project-level settings

Some art-direction calls translate to project.godot settings. Apply them. Preferred (Summer MCP):
If a WorldEnvironment node is in the main scene, set its environment defaults to match the lighting plan:
Ask before each:
May I update project.godot’s default clear color to the palette primary, and enable MSAA 2x?
Fallback (no MCP): print the project.godot snippet for the user to paste.

10. Save the art bible

Always write the bible. Path: .summer/art-bible.md.
Ask:
May I create .summer/art-bible.md with this bible?

11. Route to the next step

End with:
Bible saved. Next:
  • /audio-direction to define the sonic identity that pairs with this look.
  • /game-feel to design particle / hit-feedback styles within the palette.
  • Open the project’s WorldEnvironment node and dial in the lighting plan.
  • Or generate first-pass concept assets via assets.generate_image using the palette + mood as the prompt prefix.

Common mistakes

Collaborative protocol

This skill writes one design doc (.summer/art-bible.md) and may modify project.godot settings + the main scene’s WorldEnvironment. Always ask.

Want a working starter?

No template — this is a workflow that produces the bible the rest of the project obeys. After the bible exists, every Summer rendering / lighting / shader / VFX skill reads it.

See also

  • brainstorm-game — produces the brief that anchors the bible
  • audio-direction — the sonic counterpart
  • 3d-lighting — implements the lighting plan and the environment’s glow, tonemap and SSAO settings

From a shell

No Summer MCP tools in this session? Run each one as a command; when summer --version is missing or below 4.0, use npx -y summer-engine@latest in place of summer. Fields are flags in kebab-case (--scene-path res://main.tscn) or one --input '<json>', and summer ops describe <op> prints the exact input. The summer-cli skill has the rest.
  • audio-direction: Define the game’s sound (music style, SFX vocabulary, dynamic music) as .summer/audio-bible.md.
  • 3d-lighting: Light a 3D scene: sun, omni and spot lights, WorldEnvironment, sky, shadows and ambient.
  • brainstorm-game: Turn a vague game idea into a 1-page brief (genre, scope, core loop, mechanics) in .summer/GameSoul.md.

Source: library/skills/art-direction/SKILL.md, rendered from summer-engine@4.3.0 on npm.