Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions art/sprites/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
# Sprite boards

Sprite reference boards: the hero sheet (approved) and the animation, enemy, item and boss boards that follow the [visual direction](../direction/README.md). Each board is drawn from real photos of the pose or object, keyed on magenta and crushed to a transparent 1x image. Frame lists and status are in [07 – Asset manifest](../../docs/07-ASSET-MANIFEST.md); the pipeline is in [09](../../docs/09-ART-PIPELINE.md). The [poncho photo board](source-boards/ponchos.png) is the source for the hero's poncho.
Sprite reference boards: the hero sheet (approved) and the animation, enemy, item and boss boards that follow the [visual direction](../direction/README.md). Each board is drawn from real photos of the pose or object, keyed on magenta and crushed to a transparent 1x image. Frame lists and status are in [07 – Asset manifest](../../docs/07-ASSET-MANIFEST.md); the pipeline is in [09](../../docs/09-ART-PIPELINE.md). The [poncho photo board](source-boards/ponchos.png) is the source for the hero's poncho.

| | |
| --- | --- |
| [![The student · hero design](images/hero-preview.png)](hero.md)<br>**[The student · hero design](hero.md)** | [![The student · walk](images/hero-move-preview.png)](hero-move.md)<br>**[The student · walk](hero-move.md)** |
| [![The student · idle variants](images/hero-idle-preview.png)](hero-idle.md)<br>**[The student · idle variants](hero-idle.md)** | [![The student · run](images/hero-run-preview.png)](hero-run.md)<br>**[The student · run](hero-run.md)** |
| [![The student · hurt and interact](images/hero-hurt-preview.png)](hero-hurt.md)<br>**[The student · hurt and interact](hero-hurt.md)** | [![The student · death](images/hero-death-preview.png)](hero-death.md)<br>**[The student · death](hero-death.md)** |
| [![The student · jump, fall, climb](images/hero-air-preview.png)](hero-air.md)<br>**[The student · jump, fall, climb](hero-air.md)** | [![The student · ladder top and bottom](images/hero-ladder-preview.png)](hero-ladder.md)<br>**[The student · ladder top and bottom](hero-ladder.md)** |
| [![Chair · side sweep](images/chair-side-preview.png)](chair-side.md)<br>**[Chair · side sweep](chair-side.md)** | [![Chair · overhead slam](images/chair-overhead-preview.png)](chair-overhead.md)<br>**[Chair · overhead slam](chair-overhead.md)** |
| [![Chair · block](images/chair-block-preview.png)](chair-block.md)<br>**[Chair · block](chair-block.md)** | [![Enemy · drone](images/enemy-drone-preview.png)](enemy-drone.md)<br>**[Enemy · drone](enemy-drone.md)** |
| [![Enemy · rover](images/enemy-rover-preview.png)](enemy-rover.md)<br>**[Enemy · rover](enemy-rover.md)** | [![Enemy · crab](images/enemy-crab-preview.png)](enemy-crab.md)<br>**[Enemy · crab](enemy-crab.md)** |
| [![FX · black fluid](images/fx-preview.png)](fx.md)<br>**[FX · black fluid](fx.md)** | [![Boss · Jenny, attacks](images/boss-jenny-preview.png)](boss-jenny.md)<br>**[Boss · Jenny, attacks](boss-jenny.md)** |
| [![Boss · Jenny, stunned and debris](images/boss-jenny-2-preview.png)](boss-jenny-2.md)<br>**[Boss · Jenny, stunned and debris](boss-jenny-2.md)** | [![Item · pocket computer](images/pocket-computer-preview.png)](pocket-computer.md)<br>**[Item · pocket computer](pocket-computer.md)** |
| [![Mensa · food pickups](images/mensa-food-preview.png)](mensa-food.md)<br>**[Mensa · food pickups](mensa-food.md)** | [![Prop · coffee machine (save point)](images/coffee-machine-preview.png)](coffee-machine.md)<br>**[Prop · coffee machine (save point)](coffee-machine.md)** |
| [![Dexter · moves](images/dexter-preview.png)](dexter.md)<br>**[Dexter · moves](dexter.md)** | [![Dexter · gestures](images/dexter-acts-preview.png)](dexter-acts.md)<br>**[Dexter · gestures](dexter-acts.md)** |
| [![FX · falling leaves](images/fx-leaves-preview.png)](fx-leaves.md)<br>**[FX · falling leaves](fx-leaves.md)** | [![FX · footstep puffs](images/fx-ground-preview.png)](fx-ground.md)<br>**[FX · footstep puffs](fx-ground.md)** |
| [![FX · pond ripples and lily pad](images/fx-water-preview.png)](fx-water.md)<br>**[FX · pond ripples and lily pad](fx-water.md)** | [![Dexter · prologue additions](images/dexter-prologue-preview.png)](dexter-prologue.md)<br>**[Dexter · prologue additions](dexter-prologue.md)** |
| [![Menu · the Hidden Garden at first light](images/menu-key-preview.png)](menu-key.md)<br>**[Menu · the Hidden Garden at first light](menu-key.md)** | [![Secret · the rubber chicken](images/rubber-chicken-preview.png)](rubber-chicken.md)<br>**[Secret · the rubber chicken](rubber-chicken.md)** |
| [![Prop · Jenny's arena wall](images/arena-wall-preview.png)](arena-wall.md)<br>**[Prop · Jenny's arena wall](arena-wall.md)** | |
| [![The student · hero design](images/hero-preview.png)](hero.md)<br>**[The student · hero design](hero.md)** | [![The student · walk](images/hero-move-preview.png)](hero-move.md)<br>**[The student · walk](hero-move.md)** |
| [![The student · idle variants](images/hero-idle-preview.png)](hero-idle.md)<br>**[The student · idle variants](hero-idle.md)** | [![The student · run](images/hero-run-preview.png)](hero-run.md)<br>**[The student · run](hero-run.md)** |
| [![The student · hurt and interact](images/hero-hurt-preview.png)](hero-hurt.md)<br>**[The student · hurt and interact](hero-hurt.md)** | [![The student · death](images/hero-death-preview.png)](hero-death.md)<br>**[The student · death](hero-death.md)** |
| [![The student · jump, fall, climb](images/hero-air-preview.png)](hero-air.md)<br>**[The student · jump, fall, climb](hero-air.md)** | [![The student · ladder top and bottom](images/hero-ladder-preview.png)](hero-ladder.md)<br>**[The student · ladder top and bottom](hero-ladder.md)** |
| [![Chair · side sweep](images/chair-side-preview.png)](chair-side.md)<br>**[Chair · side sweep](chair-side.md)** | [![Chair · overhead slam](images/chair-overhead-preview.png)](chair-overhead.md)<br>**[Chair · overhead slam](chair-overhead.md)** |
| [![Chair · block](images/chair-block-preview.png)](chair-block.md)<br>**[Chair · block](chair-block.md)** | [![Enemy · drone](images/enemy-drone-preview.png)](enemy-drone.md)<br>**[Enemy · drone](enemy-drone.md)** |
| [![Enemy · rover](images/enemy-rover-preview.png)](enemy-rover.md)<br>**[Enemy · rover](enemy-rover.md)** | [![Enemy · crab](images/enemy-crab-preview.png)](enemy-crab.md)<br>**[Enemy · crab](enemy-crab.md)** |
| [![FX · black fluid](images/fx-preview.png)](fx.md)<br>**[FX · black fluid](fx.md)** | [![Boss · Jenny, attacks](images/boss-jenny-preview.png)](boss-jenny.md)<br>**[Boss · Jenny, attacks](boss-jenny.md)** |
| [![Boss · Jenny, stunned and debris](images/boss-jenny-2-preview.png)](boss-jenny-2.md)<br>**[Boss · Jenny, stunned and debris](boss-jenny-2.md)** | [![Item · pocket computer](images/pocket-computer-preview.png)](pocket-computer.md)<br>**[Item · pocket computer](pocket-computer.md)** |
| [![Mensa · food pickups](images/mensa-food-preview.png)](mensa-food.md)<br>**[Mensa · food pickups](mensa-food.md)** | [![Prop · coffee machine (save point)](images/coffee-machine-preview.png)](coffee-machine.md)<br>**[Prop · coffee machine (save point)](coffee-machine.md)** |
| [![Dexter · moves](images/dexter-preview.png)](dexter.md)<br>**[Dexter · moves](dexter.md)** | [![Dexter · gestures](images/dexter-acts-preview.png)](dexter-acts.md)<br>**[Dexter · gestures](dexter-acts.md)** |
| [![FX · falling leaves](images/fx-leaves-preview.png)](fx-leaves.md)<br>**[FX · falling leaves](fx-leaves.md)** | [![FX · footstep puffs](images/fx-ground-preview.png)](fx-ground.md)<br>**[FX · footstep puffs](fx-ground.md)** |
| [![FX · pond ripples and lily pad](images/fx-water-preview.png)](fx-water.md)<br>**[FX · pond ripples and lily pad](fx-water.md)** | [![Dexter · prologue additions](images/dexter-prologue-preview.png)](dexter-prologue.md)<br>**[Dexter · prologue additions](dexter-prologue.md)** |
| [![Menu · the Hidden Garden at first light](images/menu-key-preview.png)](menu-key.md)<br>**[Menu · the Hidden Garden at first light](menu-key.md)** | [![Secret · the rubber chicken](images/rubber-chicken-preview.png)](rubber-chicken.md)<br>**[Secret · the rubber chicken](rubber-chicken.md)** |
| [![Prop · Jenny's arena wall](images/arena-wall-preview.png)](arena-wall.md)<br>**[Prop · Jenny's arena wall](arena-wall.md)** | [![Prop · Jenny's arena platforms](images/arena-platform-preview.png)](arena-platform.md)<br>**[Prop · Jenny's arena platforms](arena-platform.md)** |
| [![Prop · the platforms' chains](images/arena-chain-preview.png)](arena-chain.md)<br>**[Prop · the platforms' chains](arena-chain.md)** | |
25 changes: 25 additions & 0 deletions art/sprites/arena-chain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Prop · the platforms' chains

<!-- nav:start -->
[← Prop · Jenny's arena platforms](arena-platform.md) · [Sprite boards](README.md) · **31 / 31** · [Sprite boards →](README.md)
<!-- nav:end -->

![Prop · the platforms' chains](images/arena-chain-preview.png)

**Review:** 🟨 Awaiting Alexander's review (25 Oct). The platforms hang from the girder over the arena: scripts/arena_platforms.py tiles this chain's link period from each platform end up to the girder's underside. The second frame came out as a second chain instead of an eye-bolt, so it is unused.

## Brief

On a flat, solid, pure magenta #FF00FF background (no paper colour, no ground shadows), with NO text at all - no titles, no captions, no labels: Image 1 is an approved prop from this game, a rusty steel girder platform: draw in exactly its pixel-art look, pixel grain, palette and rusty orange-on-steel colours. Prop sprite sheet, 1 row, exactly 2 frames, side by side with a wide magenta gap: frame 1, ONE heavy rusted steel CHAIN hanging perfectly straight and vertical, about as long as the platform in image 1 is wide, made of many identical oval links alternating face-on and edge-on, the top and bottom links cut flat; frame 2, ONE heavy steel EYE-BOLT anchor: a small rusted base plate with two rivets and a thick eye ring on top, with a single rusted shackle through the ring - the piece that would sit on top of the platform where the chain is fixed. Both frames at the SAME pixel scale (the chain's links as thick as the shackle). No platform, no people, no scenery.

## Inputs

- [arena-platform-preview.png](images/arena-platform-preview.png)
- [coffee-machine-preview.png](images/coffee-machine-preview.png)
- [style-master-preview.png](../direction/images/style-master-preview.png)

Model `gpt-image-2.5-sunburst` · pixel factor 2 · source image `images/arena-chain.png` · rebuild: `python scripts/make_boards.py draw arena-chain --redo --config art/sprites/boards.json`

<!-- nav:start -->
[← Prop · Jenny's arena platforms](arena-platform.md) · [Sprite boards](README.md) · **31 / 31** · [Sprite boards →](README.md)
<!-- nav:end -->
25 changes: 25 additions & 0 deletions art/sprites/arena-platform.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Prop · Jenny's arena platforms

<!-- nav:start -->
[← Prop · Jenny's arena wall](arena-wall.md) · [Sprite boards](README.md) · **30 / 31** · [Prop · the platforms' chains →](arena-chain.md)
<!-- nav:end -->

![Prop · Jenny's arena platforms](images/arena-platform-preview.png)

**Review:** 🟨 Awaiting Alexander's review (25 Oct). Replaces the strip cut from the maze plate, which read flat and floated with no reason (Alexander). Drawn with volume from the coffee-machine sheet's look and the maze's own girder as the material reference: a riveted box girder with a grated underside, 202 × 25 px in the game. The prompt asked for eye-bolts and chain stubs, and the model drew the platform alone, so it is locked and the chains are their own board.

## Brief

On a flat, solid, pure magenta #FF00FF background (no paper colour, no ground shadows, no dust under the objects), with NO text at all - no titles, no captions, no frame numbers, no labels, no readable words or logos: Image 1 is an approved prop sheet from this game: draw in exactly that pixel-art look - solid three-dimensional objects drawn as detailed 2D pixel art with volume, the same pixel grain, palette and warm rim light. Image 2 shows the rusty steel girders of the level these props hang in: copy their material exactly - pale blue-grey painted steel eaten by orange rust, riveted flanges, a dark grated underside. Prop sprite sheet, 2 rows. Row 1, exactly 1 frame: ONE short girder PLATFORM segment hung like a stage rigging bar, seen from slightly below like image 2: a long flat box beam about FIVE times as long as it is tall, its front face with rivets, a lit top flange, a dark grated underside with depth, solid end caps showing its thickness; on top, near each end, a heavy steel eye-bolt with the lowest three links of a rusted chain rising straight up from it. Row 2, exactly 1 frame: ONE long straight vertical rusted steel CHAIN hanging perfectly straight up and down, many identical links, about as long as the platform in row 1, the same chain as on the platform. Both rows at the SAME pixel scale. Rows separated by a wide empty magenta band. No people, no scenery, no sky.

## Inputs

- [coffee-machine-preview.png](images/coffee-machine-preview.png)
- [girder-reference.png](../stages/rusty-creek/arena/girder-reference.png)
- [style-master-preview.png](../direction/images/style-master-preview.png)

Model `gpt-image-2.5-sunburst` · pixel factor 2 · source image `images/arena-platform.png` · rebuild: `python scripts/make_boards.py draw arena-platform --redo --config art/sprites/boards.json`

<!-- nav:start -->
[← Prop · Jenny's arena wall](arena-wall.md) · [Sprite boards](README.md) · **30 / 31** · [Prop · the platforms' chains →](arena-chain.md)
<!-- nav:end -->
10 changes: 5 additions & 5 deletions art/sprites/arena-wall.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Prop · Jenny's arena wall
# Prop · Jenny's arena wall

<!-- nav:start -->
[← Secret · the rubber chicken](rubber-chicken.md) · [Sprite boards](README.md) · **29 / 29** · [Sprite boards →](README.md)
[← Secret · the rubber chicken](rubber-chicken.md) · [Sprite boards](README.md) · **29 / 31** · [Prop · Jenny's arena platforms →](arena-platform.md)
<!-- nav:end -->

![Prop · Jenny's arena wall](images/arena-wall-preview.png)
![Prop · Jenny's arena wall](images/arena-wall-preview.png)

**Review:** 🟨 Awaiting Alexander's review (25 Oct). Playtest J7: the arena's walls were code-drawn rectangles with hazard stripes. First draw: a barrier column of red-and-white crowd-control panels strapped to a rusted pole, with a caged warning lamp (lit, dark). 300 px tall in the game, as tall as the walls. The lamp's halo specks are dropped by "despeckle".
**Review:** 🟨 Awaiting Alexander's review (25 Oct). Playtest J7: the arena's walls were code-drawn rectangles with hazard stripes. First draw: a barrier column of red-and-white crowd-control panels strapped to a rusted pole, with a caged warning lamp (lit, dark). 300 px tall in the game, as tall as the walls. The lamp's halo specks are dropped by "despeckle".

## Brief

Expand All @@ -21,5 +21,5 @@ On a flat, solid, pure magenta #FF00FF background (no paper colour, no ground sh
Model `gpt-image-2.5-sunburst` · pixel factor 2 · source image `images/arena-wall.png` · rebuild: `python scripts/make_boards.py draw arena-wall --redo --config art/sprites/boards.json`

<!-- nav:start -->
[← Secret · the rubber chicken](rubber-chicken.md) · [Sprite boards](README.md) · **29 / 29** · [Sprite boards →](README.md)
[← Secret · the rubber chicken](rubber-chicken.md) · [Sprite boards](README.md) · **29 / 31** · [Prop · Jenny's arena platforms →](arena-platform.md)
<!-- nav:end -->
Loading
Loading