Setting the art direction
Ironfall gets its look. The art is generated with AI, then cleaned up pixel by pixel to a single locked palette, so characters, terrain, props, items and effects all sit together.
What's new
- A 32-colour master palette, locked across all art.
- Six characters: the survivor player, three raider types, a scout mech and a heavy mech.
- Terrain with edges, a shoreline and roads.
- About 70 props, structures, items, icons and effects.
- A gallery page that shows every asset, so each can be checked against the style guide.
How it was made
- Each asset starts with a written prompt in docs/ASSET_LIST.md. The prompt fixes the view (top-down 3/4), the lighting (top-left) and the background (flat magenta for characters, so it can be removed).
- Higgsfield's nano_banana_pro generates the raw image. The first attempts went to fal.ai because the default route picked fal. After a direct instruction, every later generation was routed through Higgsfield, with the endpoint named in the call.
- Python then removes the background, samples the image down to the native pixel grid and maps every colour to the palette. This is why the art shares one look.
- Where the automatic downscale lost detail (nut and bolt, rivets, berries), a hand pass was drawn pixel by pixel in code grids. The lockpick and the barricade needed this.
- Aseprite does the final step: it locks the palette, removes stray pixels, adds the outline, and exports the sheet and the JSON.
- Across the whole project so far, the spend log records 165 generations: 25 through Higgsfield and 140 through fal.ai, for about $1.85 in dollars. Most of the fal calls came before the instruction to use Higgsfield first. Higgsfield used credits, not dollars.
Screens
Tools used
| Higgsfield (nano_banana_pro) | AI image generation for the raw art. Used through the Higgsfield MCP connection in Asset Forge, which costs credits, not dollars. |
|---|---|
| Asset Forge | The studio that sends prompts to the generators, keeps the spend ledger and stores the raw images. |
| Aseprite | The clean-up stage: palette lock, outline pass, shading fixes and sprite-sheet export. |
| Python (Pillow, NumPy) | Image steps before Aseprite: background removal, downscaling to the true pixel grid, colour quantising, and the palette checks. |
How to try it
- Open the project in Godot 4.7 and press Play to see the art in the game world.
- The gallery page shows every asset: docs/screenshots/if_a_r7_gallery_0_characters_a.png.
Known issues
- Some icons and props are still being refined.
- Raider and mech sprites read a little speckled at the largest size.
Ironfall dev log · Update 2 of 18 · All updates