Four-agent workshop (Araminta, Ozzie, Miri, Gore) establishing visual
identity for The Settled Reach. 9 mood board images, 16 art direction
principles, 10 candidate decisions (D-042 through D-051), v0.1.1 sprite
plan. Post-workshop technical session resolved 3D render pipeline,
resolution chain (1024/256/64), and camera angle lock ("the angle").
Pipeline test samples included: Era 1 institutional wall + bar green
wall rendered through the full Nano Banana -> 3D model -> sprite chain.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 KiB
Round 3 Workshop Response: Araminta (Art Direction & Mood Board)
Agent: Araminta (Visual Designer / Q-003 Lead) Date: 2026-02-12 Workshop: Art Direction & Mood Board Status: Round 3 — Quick Round
1. Lead Decisions — Acknowledged
Vision shape: CONE, not circle
Confirmed and correct. The Rust occlusion tracers with fall-off give us a directional field of view where turning around is meaningful — the player CHOOSES what to look at, which means choosing what NOT to look at. Visually, this means the vision cone is an asymmetric shape: full clarity forward, degraded at the peripheral edges, blind behind. The cone shape is drawn by the shadowcasting system and rendered by the fog shader. Art implication: entities and objects behind the player character are fogged/hidden even if they're one tile away. The camera shows the space; the cone reveals the information.
Planet name: Velen
Confirmed. Temperate-maritime, regular rain, morning/evening fog. This grounds the weather system: Sova Transit District on Velen has reliable rain cycles and fog banks. The fog isn't exotic — it's Tuesday. That normality is important: weather as routine, not spectacle (until the storyteller decides otherwise).
Character temperature: overlay, not world — but WHERE they live matters
This is an elegant resolution. I was trying to push the world's rendering toward the character's mood. Gore and Miri pushed back correctly: the world is neutral. The lead's decision threads the needle: the world IS neutral, but the characters' daily paths naturally take them through different-temperature zones. The smuggler's routine goes bar → social areas → residential → bar. Warm, warm, warm. The detective's routine goes security office → logistics hub → observation posts. Cool, cool, cool. Same station, same lighting, different lived experience through spatial habit. No rendering tricks needed. The level design does the work.
Art implication: zone temperature differences are REAL and matter more than I initially thought. The bar MUST be meaningfully warmer than the logistics hub. The corridor MUST be meaningfully dimmer than both. These aren't subtle — they're the mechanism that makes the two playthroughs feel different.
Environmental neutrality: confirmed
The world doesn't shift. The world already HAS character through its zones. Noted and locked.
2. Z-Levels and Sprite Stacking — Art Perspective
Proposed z-level stack (bottom to top)
I'm thinking in terms of what the PLAYER sees, not Godot implementation (that's Tyre/Stig's problem). But I'll use Godot terminology where it helps.
Layer 0 — Floor tiles The ground. Tile grid. Zone palette colors. Construction-era variation. This is the canvas everything sits on. Always visible unless fogged. No z-sorting issues — it's flat.
Layer 1 — Floor objects (flat) Things ON the floor that entities walk OVER: floor markings, cable runs, drain grates, floor vents, spill stains, track marks. These are cosmetic detail tiles that add texture without blocking anything. Rendered above floor, below everything else. Think Rimworld's "floor filth" layer.
Layer 2 — Furniture / placed objects (entity-height) Desks, chairs, tables, crates, consoles, bar counters, shelves. These are the objects entities interact WITH. Entity sprites render at the SAME z-level but sort by y-position (Godot's y-sort): an entity south of a table renders in front of it; an entity north of a table renders behind it. This is where most of the visual complexity lives.
Layer 3 — Entity sprites NPCs and player character. Y-sorted with Layer 2 objects. D-033 color applied. This isn't a separate CanvasLayer — it's the same layer as furniture, using y-sort to handle occlusion naturally.
Layer 4 — Overhead / wall tops This is the key art question. Things ABOVE entity head height: wall tops, pipe runs, overhead shelving, signage, light fixtures. These render ABOVE entities but with TRANSPARENCY so entities walking beneath are still partially visible. A pipe crossing a corridor: the entity walks under it, the pipe renders on top with maybe 50% opacity or a dithered mask so the entity silhouette is still readable beneath.
Layer 5 — Fog of perception The vision cone shader. Darkens/desaturates everything outside the player's LOS. This affects Layers 0-4 uniformly. Applied as a CanvasItem shader or a separate CanvasLayer with a multiply blend.
Layer 6 — Insert overlay The neural insert. Entity markers, POI indicators, grid lines, data readouts. Rendered with the soft bloom pass from OQ-01. This layer is NOT affected by the fog shader — insert data is computational, not perceptual. You can see insert markers in fogged areas (if your lattice has that data), even though you can't see the entities visually.
Layer 7 — Monologue / UI text Internal monologue text, perception mode labels, any non-diegetic UI elements. Top of the stack. Always visible. Clean rendering, no bloom.
Wall rendering in top-down
This is the biggest art question in the z-stack. Three options:
Option A: Walls as boundaries (simplest) Walls are rendered as thick lines or filled rectangles between tiles. No "top" surface, no "face." Just barriers. This is Heat Signature / Rimworld style. Walls are INFORMATION (you can't see through here) not OBJECTS (look at this wall).
Option B: Walls with visible top surface The wall occupies its tile(s) and shows a top-down view of the wall top — a narrow strip of wall material. Gives a slight 3D hint. Entities can't walk on wall tiles. This is how most top-down games handle it — you see the "roof" of the wall as a thin strip.
Option C: Walls with face + top (sprite stacking) Wall tiles show the south-facing face of the wall AND the top. This gives pseudo-3D depth. More visually interesting but more complex to produce and raises questions about north-facing walls (do we see the interior face? just the top?).
My recommendation: Option B for walls, Option A for thin partitions.
Structural walls (exterior hull, main compartment boundaries): Option B. The visible top surface communicates "this is a REAL wall, thick, structural." The top surface can carry construction-era color variation.
Interior partitions (office dividers, bar booth separators): Option A. Thin lines. These are lighter barriers — removable, recent additions. The visual thinness communicates "someone put this here" versus "this was built into the station."
This distinction also helps with the base building mechanic: the player can see which walls are structural (can't remove) and which are partitions (can relocate).
Sprite stacking for pseudo-3D: OUT of scope
Sprite stacking (rendering multiple slices to create voxel-like 3D objects) is a cool technique but wrong for us. It's expensive per object, hard to maintain with AI-generated assets, and fights with our y-sort occlusion model. We're flat 2D with y-sorting. The "depth" comes from the z-layer stack above, not from individual objects being 3D. Keep it clean.
Multi-tile objects and partial occlusion
A 2x1 desk: occupies two tiles. An entity standing at the south side of the desk is rendered in front of it (y-sort). An entity at the north side is rendered behind it. If the entity is ON the desk tile (seated at the desk), the entity renders above the desk sprite via y-sort tiebreaking (entity y-position is at the entity's feet, which is at the bottom of their sprite).
Rule: entities always win visual ties. If an entity and an object overlap, the entity's silhouette is preserved. This maintains D-033 color readability. The player must ALWAYS be able to see entity color, even when entities are partially behind furniture. Worst case: a colored outline bleeds through the occluding object, like Rimworld's entity-behind-wall x-ray hint.
3. v0.1.1 Minimum Sprite Set
This is the smallest set that proves the art direction works in-engine. Every sprite below replaces a colored rectangle from v0.1.
Floor tiles (4 sprites)
| Tile | Purpose | Visual |
|---|---|---|
floor_institutional |
Logistics hub / work areas | Cool grey-blue, #2e2e48 base, subtle grid line at tile edges |
floor_bar |
The Last Shift | Warm tan/beige, #3a3028 base, slight wood-panel texture hint |
floor_corridor |
Maintenance / corridors | Neutral grey, #252535 base, minimal detail |
floor_transition |
Where two zones meet | Split tone — one half matches adjacent zone A, other half matches zone B. Visible seam. |
Wall tiles (3 sprites)
| Tile | Purpose | Visual |
|---|---|---|
wall_structural |
Exterior hull / main compartments | Dark grey-blue, Option B (visible top surface), thick, heavy |
wall_partition |
Interior dividers / office walls | Lighter grey, Option A (boundary line), thin |
wall_door |
Door frame + gap | Wall tile with a gap. Door state (open/closed) handled by a separate door sprite in the gap |
Object tiles (8 sprites)
| Object | Size | Visual |
|---|---|---|
desk_terminal |
2x1 | Desk surface with integrated terminal glow. Institutional grey-blue. |
chair_office |
1x1 | Simple swivel chair from above. Dark grey. |
chair_bar |
1x1 | Stool or mismatched chair. Warmer tone. |
table_round |
1x1 | Small round table. Bar zone item. Warm wood tone. |
crate_cargo |
1x1 | Standard cargo container. Olive/military green. Bold silhouette. |
bar_counter |
3x1 | The Last Shift's bar counter. Warm wood, distinct from tables. |
light_ceiling |
1x1 | Overhead light fixture. Doubles as Light2D source position. Cool or warm variant. |
door_sliding |
1x1 | Sliding door sprite for wall gaps. Open/closed states (2 frames). |
Entity sprites (3 sprites)
| Entity | Purpose | Visual |
|---|---|---|
entity_player |
Player character | 24x32, civilian work clothes, neutral silhouette. Tinted by D-033 self-color. |
entity_npc_a |
Named NPC (stocky, vest) | 24x32, distinctly different silhouette from player. Kael template. |
entity_npc_b |
Named NPC (medium, apron) | 24x32, distinctly different from both above. Lera template. |
Three entities is enough to prove silhouette differentiation works. Each needs: idle frame, walk cycle (4 frames, 4 directions), and one interaction frame (seated). That's 3 entities x (1 + 16 + 1) = 54 frames total. For v0.1.1, we could cut to 2 directions (south-facing + east-facing, mirror for west) = 3 x (1 + 8 + 1) = 30 frames.
The v0.1.1 test scene
One room (The Last Shift bar) + one corridor + one doorway between them. This scene proves:
- Zone temperature difference. Warm bar tiles + cool corridor tiles = visible mood shift at the boundary.
- Object placement as storytelling. Bar counter, tables, chairs, a crate. The room has character through placed objects.
- Entity silhouette differentiation. Three entities with different silhouettes, all tinted by D-033 color. Can you tell them apart at a glance?
- Y-sort occlusion. Entity walks behind the bar counter — counter renders in front. Entity walks in front of a table — entity renders in front.
- Light2D atmosphere. One warm Light2D in the bar (attached to
light_ceiling), one cool Light2D in the corridor. Dynamic shadows from walls/furniture. The lighting-driven atmosphere thesis proven in-engine. - Fog of perception. Vision cone shader applied. Bar is visible inside the cone; corridor beyond the doorway fades to fog. The Darkwood emotional gradient working.
- Wall type distinction. Structural walls (thick, Option B) around the room. A partition (thin, Option A) subdividing a corner of the bar.
If this scene looks right — warm bar with personality, cool corridor with honesty, three distinguishable entities, dynamic lighting carrying the mood — then the art direction is validated in-engine and we scale from there.
Nano Banana generation workflow
For v0.1.1, the workflow would be:
- Write a Settled Reach style guide prompt prefix (replaces the Lords of Ash one in the existing asset-gen skill). Core constraints: "top-down view, clean 2D illustration, bold silhouette, muted palette, 1-2px outline, flat lighting (no baked shadows), [zone palette] color range."
- Generate floor/wall tiles first — these are simplest and establish the palette baseline. Generate 3-4 variants per tile type, pick the most consistent.
- Generate objects second — using the floor tiles as visual context in the prompt. "A [object] placed on a [floor type] tile, top-down view, matching the established palette."
- Generate entity sprites last — these need the most iteration. Start with idle frames. Get the silhouette right. Then generate directional walk frames with the idle as reference.
- Post-processing pass: Normalize all sprites to exact 64x64 (or 24x32 for entities). Ensure outline weight is consistent. Remove any baked shadows the AI added (we don't want them — Light2D handles lighting). Verify readability at 1x zoom.
Expect 3-5 generation attempts per final sprite. Budget accordingly.
4. Image Reactions
Image #8 (tile composition) — Already reviewed in detail
Strongest proof-of-concept in the set. Proves the tile-assembled world can have warmth and personality. The zone transition (cool institutional → warm break area) is exactly right. Object readability is strong. Adjustments needed: flatten to true top-down, correct entity scale to 24x32 on 64x64, strengthen outlines, add light fixtures as visible objects. Direction confirmed.
Image #9 (bar antagonists) — New review
This is the emotional complement to #8. Where #8 proves the TILE SYSTEM works, #9 proves the MOOD works.
What lands:
-
The warm/cool zone contrast is the standout. The bar is deep amber, the corridor below is cold grey. The boundary is a wall. This IS the game's spatial temperature system — warm social spaces, cool institutional corridors, architectural boundaries between them. The contrast is strong enough that the two zones feel like different buildings. Good — that's the point.
-
The accidental fog-of-perception gradient. The two antagonists at the center table are fully rendered. Patrons at adjacent tables are less distinct. Patrons at the edges are pure silhouettes. This accidentally demonstrates vision cone rendering: entities in the player's focus = detailed; entities at the periphery = silhouettes fading into darkness. Whether the AI intended this or not, it's EXACTLY how the graduated fog should work. Close = full detail. Mid-range = reduced. Edge = just shape.
-
Lera is identifiable. Behind the bar counter, wearing an apron. The silhouette-as-identity principle proven: apron + position behind counter = you know who this is without a label. I-01 validated.
-
Object density tells the story. Bar shelves full of bottles. Multiple table types. Wall sconces. A notice board by the door. This is The Last Shift — a place that's accumulated personality through years of Lera's choices about what goes where. Contrast with the bare corridor below: no objects, just walls and floor and a single overhead light. The object DENSITY is the character difference between zones.
-
The corridor observer. A figure in the dark corridor, looking toward the warm bar. This is Hopper's Nighthawks: warm interior visible from cold exterior, the watcher outside the warmth. Whether this is the detective observing or just a passerby, the COMPOSITION creates investigative tension. Someone is in the cold, watching people in the warm.
What needs adjustment:
-
Not top-down. This is 3/4 view — we can see the front face of the bar counter, the sides of tables, the wall's face. Our game is strictly overhead. But as a MOOD reference, the emotional composition is perfect. This image tells us what The Last Shift FEELS like; #8 tells us how it's BUILT.
-
Chibi proportions. The main figures have large heads, short bodies. Our spec is 24x32 — slightly elongated, adult proportions. This matters at game scale: chibi reads as "cute" which fights the register.
-
The silhouetted NPCs are too DARK. In the actual game, all entities in the vision cone have D-033 color. They're not black silhouettes — they're teal (unknown), green (friendly), etc. The peripheral darkening is fog-of-perception, which only applies at the vision cone's edge. NPCs at adjacent tables inside the cone should still be color-coded.
-
The two antagonists shouldn't be more detailed than other NPCs. In our game, the rendering doesn't know who's important. The player's CHARACTER might think those two are interesting (monologue fires, insert flags them), but the SPRITES are the same fidelity as everyone else. The information hierarchy comes from the overlay, not the base rendering.
Overall: Image #9 is the best emotional reference for The Last Shift. The warm/cool contrast, the social density, the observation tension — this is what the bar should FEEL like. Combined with #8's tile grid proof and #7's strict top-down perspective, we have three reference points that triangulate the final art direction.
Summary
| Item | Status |
|---|---|
| Lead decisions (cone, Velen, overlay-not-world, zone paths) | Acknowledged, no concerns |
| Z-levels | 8-layer stack proposed, wall rendering recommendation (Option B structural / Option A partition), sprite stacking OUT of scope |
| v0.1.1 sprite set | 4 floor + 3 wall + 8 object + 3 entity sprites = 18 unique sprites, ~30 frames for entity animation |
| v0.1.1 test scene | Bar + corridor + doorway. Proves zone temperature, object storytelling, silhouette differentiation, y-sort occlusion, Light2D atmosphere, fog of perception, wall type distinction |
| Image #8 | Previously reviewed. Tile composition proven. |
| Image #9 | Emotional register of The Last Shift nailed. Warm/cool contrast is the standout. Accidental fog gradient is a bonus insight. |
ADDENDUM: Camera Angle Shift — Rimworld's Shallow Tilt
The lead has indicated a shift from true top-down (D-019) to Rimworld's camera angle: a very shallow tilt, almost orthographic overhead but with just enough forward perspective to see object front faces and give depth cues. This is NOT classic 2:1 isometric. It's NOT 3/4 view. It's ~15-20 degrees off vertical — the flattest end of the tilt spectrum.
This is a significant decision. Let me walk through every area it touches.
What this changes
Wall rendering — RESOLVED. My Option A / Option B distinction from the z-levels section above becomes moot. At Rimworld's angle, walls naturally show their south-facing face. You SEE the wall surface — doorways, signage, damage, construction era — without any special rendering trick. This is strictly better than pure top-down for walls. Walls become more informative and more visually interesting with zero extra production cost. The wall question answers itself.
Entity sprites — BETTER. At true top-down, you see the top of a person's head and shoulders. At Rimworld's shallow tilt, you see a slight front/side view — face direction, clothing, body shape, accessories. This is dramatically better for silhouette-as-identity (I-01). You can now see Kael's vest, Lera's apron, Sera's Commission uniform as FRONT-FACING details, not just overhead shape outlines. Sprite readability improves significantly. The Sims' entity readability happens at this angle, not at pure overhead.
Object sprites — BETTER. A desk shows its front face. A bar counter shows the bartender's side. A console shows its screen. A crate shows its label. Objects become more self-describing because you can see what makes them DIFFERENT from each other, not just their top surface footprint. This is why Rimworld's objects are so readable — you see enough of the front to identify them instantly.
Tile grid — UNCHANGED. Rimworld uses a rectangular tile grid, not a diamond isometric grid. Tiles are still square. 64x64 still works. The grid math doesn't change. No diamond-tile headaches.
Vision cone math — ESSENTIALLY UNCHANGED. The vision cone is computed on the flat tile grid. The slight camera tilt is cosmetic — it affects how the cone is RENDERED (the cone shape is slightly projected) but not how it's CALCULATED. The Rust occlusion tracers still work on a 2D grid. Sightlines are still 2D. The tilt just means the rendered cone has a slight perspective projection, which Godot handles natively.
Lighting — UNCHANGED. Godot's Light2D system works in 2D sprite space. It doesn't know or care about the "camera angle" — it projects light and shadows based on sprite positions and occluder shapes. The shadows will look slightly different (projecting "down" toward the viewer at the tilt angle) but the system is the same. Light2D + LightOccluder2D still handles everything.
Fog of perception — UNCHANGED. The fog shader operates on the 2D rendered output. It darkens/desaturates pixels outside the LOS area. The tilt doesn't affect the shader — it affects what the shader is applied TO, but the same shader works.
Nano Banana prompts — EASIER. "Rimworld-style shallow overhead angle" is a more common art perspective than strict top-down. AI image generation produces this angle more naturally — it's closer to how concept art and illustration typically frames overhead scenes. I suspect prompt consistency will IMPROVE with this change. My prompt for image #8 said "top-down view" and the AI produced something closer to Rimworld's angle anyway — that's the AI telling us this is the natural angle for this kind of scene.
What this means for my image reviews
I flagged images #8 and #9 for being "not top-down enough" and "slightly isometric." With the Rimworld angle confirmed:
- Image #8 is now CLOSER to correct than I thought. Its slight tilt that shows table thickness and chair backs — that's approximately right. Maybe still a touch too angled, but in the ballpark.
- Image #9 is probably TOO tilted — it's closer to 3/4 view or classic isometric than Rimworld's shallow tilt. But the emotional register is still the reference target.
- Image #7 (the convergence attempt with true top-down) is now slightly TOO flat. We need a touch more tilt than #7 had.
The sweet spot is between #7 and #8.
What does NOT change
- The entire art direction (clean 2D, bold silhouettes, lighting-driven atmosphere)
- D-033 entity color system
- The z-level stack (all 8 layers still apply, just rendered at the shallow tilt)
- The v0.1.1 sprite set (same sprites, slightly different angle for generation prompts)
- The fog of perception rendering
- The insert overlay (this is a screen-space layer, camera angle doesn't affect it)
- Y-sort occlusion (Rimworld uses y-sort — entities further north render first)
My position
I support this change. Rimworld's angle is strictly better than pure top-down for our game because:
- Walls become informative. You see faces, doors, signage without special rendering.
- Entities become more readable. Front-facing silhouettes carry more identity information than overhead silhouettes.
- Objects become self-describing. You see what makes a desk different from a table.
- No mechanical cost. Vision cone, lighting, fog, tile grid — all work the same.
- Production cost is minimal. Sprite generation prompts change from "strict overhead" to "shallow overhead angle." The style guide adjusts. The pipeline is the same.
- It's what the AI generates naturally. Every mood board image gravitated toward this angle. Stop fighting the current.
The only thing we lose is the purity of "true top-down as stated in D-019." We should update D-019 to reflect "shallow tilt / Rimworld perspective" rather than "strict top-down." The decision's intent (2D, overhead, not isometric diamond grid) is preserved.
Recommend: Update D-019 to "Rimworld-angle shallow tilt, rectangular grid, y-sort depth ordering." All other decisions remain valid.
Written by Araminta. That palette communicates the right mood.