Files
TheriapolisV3/theriapolis-tactical-tile-art-request.md
Christopher Wiebe b451f83174 Initial commit: Theriapolis baseline at port/godot branch point
Captures the pre-Godot-port state of the codebase. This is the rollback
anchor for the Godot port (M0 of theriapolis-rpg-implementation-plan-godot-port.md).
All Phase 0 through Phase 6.5 work is included; Phase 7 is in flight.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 20:40:51 -07:00

208 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Theriapolis — Tactical Tile Art Request
This document lists every tactical-scale sprite the engine needs. Tiles are
streamed in-game from a chunked tactical map; placeholder squares stand in for
each tile until you provide the real art.
> **Roadmap note (post-Phase-4 Wang autotiling).** The current renderer uses
> per-tile sprites with a soft *colour-blend* edge softening between dissimilar
> surfaces ("Option B" — see [TacticalRenderer.cs](Theriapolis.Game/Rendering/TacticalRenderer.cs)).
> When the final art set is ready, we plan to upgrade to *full Wang
> corner-based autotiling* ("Option C") using Pixellab's `create_topdown_tileset`
> tool, which produces a 16-tile transition set per terrain pair. At that
> point each terrain *pair* (grass↔dirt, grass↔water, sand↔shallowwater, etc.)
> will need its own 16-tile transition strip, and the per-tile sprites listed
> below become the *base* references the transition tiles blend out to.
> No action needed from artists for that yet — flagged here so the plan isn't
> lost between phases.
## Specifications
- **Resolution:** 32×32 pixels per tile, exactly. The renderer scales each
sprite to one in-engine "world pixel"; at the camera's tactical zoom
threshold the sprite displays 1:1, and it upscales (with crisp pixel-art
filtering) up to ~3.1× at maximum zoom.
- **Format:** PNG, 32-bit RGBA.
- **Surface tiles:** opaque. They tile horizontally and vertically against
copies of themselves; please design seamlessly so adjacent tiles don't show
visible joins.
- **Decoration tiles:** transparent background. They composite on top of the
underlying surface tile, so anything outside the actual prop should be
transparent (alpha 0).
- **Variants (optional):** if you provide multiple variants for a tile, name
them `<tile>_0.png`, `<tile>_1.png`, … `<tile>_N.png` (zero-indexed). The
engine picks one per cell from a deterministic per-tile RNG, so the same
cell always shows the same variant. If you supply a single `<tile>.png`
with no suffix, every cell uses it.
- **Style:** chunky, painterly pixel-art is the target. Saturated but earthy
colors. No outlines on surface tiles; soft outlines OK on decorations.
- **Lighting:** assume a top-down view with diffuse overhead light (no strong
directional shadow). Decorations may cast a small drop shadow that fades
into transparency.
## Directory layout
Drop the finished files into the project at:
```
Content/Gfx/tactical/
surface/
grass.png
grass_0.png grass_1.png ... (optional variants)
dirt.png
...
deco/
tree.png
tree_0.png tree_1.png ... (optional variants)
bush.png
...
```
Filenames are lowercase and exactly match the names below.
---
## Surface tiles
Each surface fills an entire 32×32 tile. Decorations and props are NOT part of
the surface tile — those are separate, listed under **Decorations** further
down.
### Grasslands & light vegetation
| Filename | Description |
|---|---|
| `grass.png` | Short, healthy meadow grass — the default ground for temperate plains. Mixed greens with subtle blade detail; should feel like trampled, well-grown turf. |
| `tallgrass.png` | Knee-high grasses and wild herbs, denser and slightly taller than `grass`. Still walkable but visibly thicker; muted yellow-green tones suit late-summer scrub. |
| `dirt.png` | Bare earth, packed and a little dry. Used for trails, worn ground around settlements, and exposed soil at biome edges. |
### Forest floor
| Filename | Description |
|---|---|
| (forest floors reuse `grass.png` and `dirt.png`) | Forest interiors are a mix of these two surfaces with `tree`/`bush` decorations on top — no separate forest-floor surface needed. |
### Mountains, hills, rocky terrain
| Filename | Description |
|---|---|
| `rock.png` | Exposed bedrock, weathered grey with cracks and faint moss in the seams. The default surface for alpine and cliff biomes. |
| `gravel.png` | Loose, small stones mixed with grit. Used for footpaths, dry creek beds, and rocky scree slopes. |
### Wetlands & water-edge
| Filename | Description |
|---|---|
| `marsh.png` | Sodden, half-submerged ground threaded with reedy growth. Dark, mossy greens and standing-water highlights; the default for wetland biomes. |
| `mud.png` | Wet, slick mud — the surface of mangrove flats, riverbanks after rain, and tidal pools when the tide is out. |
| `shallowwater.png` | Wadeable water perhaps an inch or two deep. The bed should be visible through the water, with small ripple highlights on the surface. |
| `deepwater.png` | Open water that the player cannot wade through. Solid blue with subtle wave patterns and no visible bed. Used for river centers, lakes, and the ocean. |
### Desert & dry biomes
| Filename | Description |
|---|---|
| `sand.png` | Fine, wind-rippled sand in pale tan — used for beaches, desert flats, and tidal flats below the high-tide line. The ripple pattern should tile cleanly. |
### Cold biomes
| Filename | Description |
|---|---|
| `snow.png` | Fresh, undisturbed snowpack with a faint blue cast in the shadows. The default for tundra and high-altitude alpine surfaces. |
### Built environment (settlements, roads, interiors)
| Filename | Description |
|---|---|
| `cobble.png` | Rounded paving stones set in mortar — the standard street and plaza surface for towns and cities. Worn smooth in the centers of stones. |
| `floor.png` | Interior wood-plank floor for buildings. Simple straight planks with subtle grain; reads as "indoor" at a glance. |
| `wall.png` | Building exterior wall, top-down view — looks like the top of a thick stone-and-mortar wall, not the side. Used as the perimeter outline of placeholder building footprints. |
---
## Decorations
Decorations sit on top of a surface tile and have a transparent background.
The engine renders them as a single 32×32 sprite centered in their cell.
### Vegetation
| Filename | Description |
|---|---|
| `tree.png` | Single mature tree seen from above — a roughly circular canopy of leaves with a hint of trunk visible through gaps. Color depends on biome but a generic temperate-deciduous green is fine for the base sprite. |
| `bush.png` | A low, broad shrub — smaller and lower-canopy than a tree, walkable-but-slow. Reads as a clump of foliage when seen from above. |
| `flower.png` | A small cluster of wildflowers — a few bright dots of color (pink/yellow/white) on green stems. Decorative only, no gameplay effect. |
| `crop.png` | A patch of cultivated grain or vegetables, neat and orderly compared to wild grass. Used in farmland near settlements. |
| `reed.png` | A tuft of tall water-edge reeds, vertical strokes of green and tan. Sits on `marsh` or `shallowwater` to suggest a riverbank or pond fringe. |
| `snag.png` | A dead, broken tree stump or fallen log — weathered grey wood with no foliage. Adds character to forest edges and old burn scars. |
### Rocks
| Filename | Description |
|---|---|
| `rock.png` (deco) | A small loose stone or two scattered together — clearly walkable around or over. Distinct from the `rock` surface tile (which is bedrock filling the whole cell). Save this in `deco/rock.png` to disambiguate. |
| `boulder.png` | A single large rounded boulder taking up most of the cell. Impassable; the player must walk around it. Add a soft drop shadow on the bottom-right. |
---
## Variant guidance
You don't need to provide variants for everything, but they make the world
look hand-crafted instead of stamped. Highest-impact places to add variants:
- **`grass_0``grass_3`** — even slight color shifts dramatically reduce
the "wallpaper" effect in open meadows.
- **`tallgrass_0``tallgrass_2`** — different blade angles and clumping.
- **`dirt_0``dirt_2`** — patches of pebbles, faint cart-rut grooves, etc.
- **`tree_0``tree_3`** — different canopy shapes/sizes; mix of broadleaf
and conifer if you want.
- **`flower_0``flower_2`** — different flower colors.
Anything else can be a single sprite for now.
---
## Biome reference (which tiles show up where)
This is for context only — you don't need to author per-biome variants. The
engine composites surfaces and decorations dynamically based on the biome of
each underlying world tile.
| Biome | Primary surface | Common decorations |
|---|---|---|
| Temperate Grassland | `grass`, `tallgrass` | `bush`, `flower` |
| Temperate Deciduous Forest | `grass`, `dirt` | `tree`, `bush`, occasional `snag` |
| Boreal Forest | `dirt`, `grass` | `tree` (read as conifer in art) |
| Subtropical Forest | `grass`, `tallgrass` | `tree`, `bush` |
| Forest Edge | `grass` | `bush`, sparse `tree` |
| Mountain Forested | `rock`, `dirt` | `tree`, `rock` (deco) |
| Mountain Alpine | `rock`, `snow` | `boulder`, `rock` |
| Foothills | `grass`, `rock` | `bush`, `rock` |
| Cliff | `rock` | `boulder` |
| Tundra | `snow`, `dirt` | `rock` (deco) |
| Cold Desert | `sand`, `dirt` | `rock` |
| Scrubland | `dirt`, `grass` | `bush`, `rock` |
| Wetland | `marsh` | `reed` |
| Marsh Edge | `mud`, `grass` | `reed` |
| Mangrove | `mud`, `shallowwater` | `tree`, `reed` |
| Tidal Flat | `mud` | (none) |
| Beach | `sand` | (none) |
| Coastal | `grass`, `sand` | `bush` |
| River Valley | `grass` | `bush`, `reed` |
| Settlements (any biome) | `cobble`, `dirt` | (none — buildings come later) |
| Inside buildings | `floor` | (none) |
| Settlement perimeter | `wall` | (none) |
---
## Summary checklist
**Surfaces (14):** `grass`, `tallgrass`, `dirt`, `rock`, `gravel`, `marsh`,
`mud`, `shallowwater`, `deepwater`, `sand`, `snow`, `cobble`, `floor`, `wall`
**Decorations (8):** `tree`, `bush`, `flower`, `crop`, `reed`, `snag`,
`rock` (deco — note the duplicate name; this one goes in `deco/`), `boulder`
**Total minimum tiles:** 22 (one PNG per row above). Variants are bonuses on
top of that.