Local inventory: how Tycho and the user’s five games make pixel art, animation and worlds

Scope: read-only reading of /Users/david/projects/tycho (the engine), and the games neo, lodestar, merryfolk, under-the-white-dragon (UWD) and elsewhere. Sources are local file paths. The lodestar-* sibling folders (lodestar-balance, -beam, -deeds, -feed, -forge, -gear, -intro, -kindler, -lean, -loader, -onboard, -outpost, -painted, -preview, -qa, -qa2, -rig, -simplify, -sound, -spellfx, -structures, -stylestudy) exist in /Users/david/projects and look like worktrees or branches; they were not read. The four games other than Elsewhere were read through code-search passes that sampled files rather than reading every line; details from those passes are marked “(search pass)” where they could be less exact.

Tycho’s current API surface for pixels, sprites, painting, noise, seeds, color, effects, light, post, grids and paths

Takeaway

Tycho already has a full seeded-randomness core (hashes, value noise, fractal noise, a seeded Rng), color ramps, a letter-row sprite maker, outlines, flips, tints, pixel-art upscalers (Scale2x/3x), a shape-based sprite painter (Shapes), a chunked lazy world painter (paint), simple particles, a WebGL2 batcher that stands in for the 2D canvas, one light model and one bloom/reflection finish. Every one of these came in from a game “bit for bit”. There is nothing for generating maps or levels yet: gen, liquid, tilelight, figure, life and sky are named as planned but not built.

Cited Findings

Rules for adding features (Tycho CLAUDE.md)

Tycho.seed (src/core/seed.ts)

Tycho.color (src/core/color.ts)

Tycho.sprite (src/pixels/sprite.ts, shapes.ts)

Tycho.paint (src/pixels/paint.ts, UWD’s chunked lazy painter)

Tycho.fx (src/pixels/fx.ts)

Tycho.gpu, light, post: the “GPU stand-in”

Tycho.grid / collide / move / path (world layer)

Inferences

Gaps

Each game: genre, perspective, resolution, palette, how art and worlds are made, animation, effects, determinism

Takeaway

The five games share three habits:

Each game’s perspective and resolution:

Game Perspective Resolution
Neo top-down 3/4 192 wide
Lodestar top-down steep 3/4 about 176 world px short side at 1.5 art px per world px
Merryfolk top-down 3/4 with side-cut interiors 16 px tiles, zoomable
White Dragon side-on with parallax 200 px short side
Elsewhere isometric 2:1 320×180

Real procedural world generation exists in three places:

The other two generate little:

Character generators exist in two games: White Dragon’s parametric person(o) on Shapes, and Merryfolk’s gene-driven folkBody. Lodestar’s Kindler is a rigged pseudo-3D figure rendered to strokes.

Cited Findings

Elsewhere (/Users/david/projects/elsewhere)

Neo (/Users/david/projects/neo) (search pass)

Lodestar (/Users/david/projects/lodestar) (search pass)

Source caveat

Genre, setting, perspective, resolution

Palette and pixel-art rules

How art is made

World generation (code recipes)

Animation

Effects

Determinism

Tycho use

Merryfolk (/Users/david/projects/merryfolk) (search pass)

Genre, perspective, resolution

Palette

How art is made

World generation (the most procedural world code in any of the games)

Animation

Effects

Determinism

Tycho use

Under the White Dragon (/Users/david/projects/under-the-white-dragon) (search pass)

Inferences

Gaps

Patterns that repeat across games and could move into Tycho

Takeaway

The most repeated local code is:

  1. Ramp building with hue shift, lift and one-color-to-ramp: in 4 games, beyond rampOf.
  2. Shape rasterizers into a buffer (ellipse, polygon, line, disc, outlined versions): in 5 games, only partly covered by Shapes.
  3. Ordered (Bayer) dithering: 3 games.
  4. Hash value noise and clustered noise: Lodestar and Merryfolk re-implement it beside Tycho.seed.noise.
  5. Lazy chunked ground painting outside Tycho.paint: Lodestar and Merryfolk.
  6. Stepped or radial light grids computed on the CPU: 3 games; only the GPU draw step is shared.
  7. Particle systems kept local: 4 games.
  8. Wind sway and shear: 2 games.
  9. Seasonal or time-of-day palette swaps: 3 games.
  10. BFS distance and flood-fill helpers in generation: Neo, Lodestar, Merryfolk.

Cited Findings

Inferences

Gaps

Clear gaps: procedural capabilities entirely missing

Takeaway

Nothing exists, in Tycho or in any game, for:

Things that exist only inside single games, and not in Tycho:

Cited Findings

Inferences

Gaps

Settings and themes (what each game would want to generate)

Takeaway

The five settings are far apart:

Generators would need to be style-agnostic and driven by recipes and palettes.

Cited Findings

Inferences

Gaps