1.5 KiB
Spritesheets
Full art brief — every sheet with dimensions, frame maps, and drawing notes — lives in
sprites.mdat the project root.
Art is optional: any sheet that is missing (or too small for a requested
frame) gets a procedurally generated placeholder baked in its entry's color
from the config JSON, so the game always runs.
Layout
Every sheet is a horizontal strip of square frames, left to right. The
frame field in the config JSON is the 0-based index into the strip. Frames
are 192×192 (walls can override via textureSize in walls.json; baked
output is always 192×192).
Expected files (paths are what src/config/*.json references — change them
there if you prefer a different arrangement):
| File | Used by | Notes |
|---|---|---|
assets/textures/walls.png |
walls.json |
Opaque. Frame per wall id (frame 0 = Gray Brick, …) |
assets/textures/overlays.png |
overlays.json |
Transparent PNG — composited over wall textures |
assets/sprites/items.png |
items.json |
Transparent PNG — billboard props (plant, lamp, …) |
assets/sprites/enemies.png |
enemies.json |
Transparent PNG — one frame per enemy type for now |
A 5-frame walls sheet is therefore 960×192; a 3-frame enemies sheet 576×192.
You can also point different entries at different files — each unique
texture path is loaded once and shared.