Docs Decisions

Contents

ADR-0011: Assets are recipes first; generated files are frozen

  • Status: Proposed
  • Date: 2026-09-30

Context

research/asset-generation.md:

  • Between August and December 2026, two Google image model families, four OpenAI image ids, Sora's API, Tripo API v2 and more shut down or are scheduled to.
  • Some licences exclude what Gamewright makes:
    • ElevenLabs Music's self-serve terms exclude "Studio Games" (monetized, on more than one platform).
    • Suno has no API and a new lawsuit.
    • Several open models are research-only or region-restricted.
  • 3D generation is good for props, not heroes.
  • 2D generation is good for single images and weak for consistent sets.

unspent-ortho proves a lit 3D game can ship with no imported art, but its 45k lines of model code and 10k lines of audio code are bespoke.

Decision

  1. Tier 1: recipes and builders. The Director writes recipes: a builder, parameters, palette slots, a seed and a budget. Versioned, pure, seeded builders in the engine turn them into meshes, sprites, textures, tiles, icons, UI themes, sounds and music. It works offline with no key. The Director composes archetype builders rather than raw primitives, and sees a contact sheet of each build.
  2. Build order: style and palette core → mesh kit and archetype builders → sprite baker → SFX synth and mix sheet → music sequencer → procedural tiles and UI → figures.
  3. Tier 2: adapters by capability. image.generate, image.tileset, mesh.from_image, audio.sfx, audio.music and audio.voice. Model ids live in configuration with a checked date, and the core picks an adapter by capability and budget.
  4. One pipeline for Tier 2: generate → freeze raw bytes → normalize through Tier 1 machinery (palette snap, material replacement, sprite bake, mix sheet) → QA on numbers → proposal → frozen asset with a provenance record. Nothing ships that skipped normalization.
  5. Licence is data. A validator refuses a commercial game with a non-commercial, research-only or territory-restricted asset. Provenance records produce the store AI disclosures.

Alternatives considered

  • Generated files as the default look. Churn, cost, licences and style drift; and unspent shows it's unnecessary for stylized games.
  • Letting the Director write asset code (unspent's approach, done by an AI). Unreviewable at game scale, not validatable, and it breaks determinism the first time it reads a clock.

Consequences

  • Early games are stylized by construction. Photoreal and painterly looks wait for Tier 2.
  • Builders are an engine investment with golden-hash tests. A builder change that alters output is a new major.

From docs/adr/0011-asset-tiers.md in the Gamewright repository.