# Shipping a Hand-Built Pipeline at Emberline Games

## Small Team, Real Constraints

Emberline Games is a six-person indie studio building *Marrowlight*, a top-down exploration game with dense forests, reactive lighting, and a lot of hand-authored environmental storytelling. With only two programmers, the studio could not afford a heavy custom engine workflow, but relying entirely on manual editor steps was already causing broken nightly builds and mismatched asset settings.

## Asset Import Rules

The first major improvement was moving texture and audio import settings into versioned configuration. Artists still work in the engine editor, but the build system now validates compression formats, mip settings, and memory budgets before a branch can be merged.

```yaml
textures:
  characters:
    max_size: 2048
    compression: bc7
    mipmaps: true
  ui:
    max_size: 1024
    compression: rgba32
    mipmaps: false
```

## Build Automation

Their CI setup is intentionally boring: one Windows runner for release builds, one Linux runner for tests, and a nightly job that packages the current main branch for internal playtesting. The important part is that every packaged build includes the commit hash, content manifest, and save-data schema version, which makes bug reports from playtesters much easier to reproduce.

## Performance Work

Because *Marrowlight* depends heavily on dynamic shadows, Emberline profiles on low-end hardware every Friday instead of waiting for milestone builds. The team found that most frame spikes were not shader-related, but came from spawning pooled props with expensive initialization logic during room transitions.

## Lessons Learned

The studio’s biggest technical win was not a new renderer or a clever tool, but reducing ambiguity. When import rules, build metadata, and performance budgets became visible in the repository, fewer issues depended on memory or tribal knowledge, and the team could spend more time tuning the feel of the game instead of reconstructing how a broken build happened.