system

Use when

The game asks the player to turn raw inputs into refined outputs into results, and you need the chain to breathe rather than stall or trivialize.

Resource Loops — Gather → Convert → Spend

What it is. The cycle at the heart of production games: gather a raw resource, convert it into something more useful, spend the result on progress — which unlocks better gathering, and the loop turns again, wider. The design work is deciding where the loop narrows — the bottleneck the player must solve.

Player fantasy / why it’s fun. “I built the pipeline that makes the thing that makes me stronger.” Each loop closed is a small system mastered. The pull is the next bottleneck — the one resource you don’t have enough of yet.

When to use / when NOT

Use it whenSkip it when
Progress runs through making, not just buyingThe game has no crafting/production layer
You want pacing to emerge from bottlenecks, not timersA flat currency (system-economy) already carries it
Chains of resources create planning/optimization depthExtra steps would be busywork with no decision

A resource loop is system-economy with structure: instead of one bucket, a directed chain where each node’s output feeds the next. Use it when the shape of the chain — what feeds what — is itself a puzzle.

Variants

VariantShapeDepth fromExample
Linear chainA → B → C → goalClear ramp; one bottleneck at a timeStardew crops → artisan goods → cash
Branching treeOne input, many outputsPrioritisationFactorio iron → plates/gears/etc
Converging webMany inputs, one outputLogistics puzzleFactorio science packs
Cyclic (renewable)Output feeds back to inputSustainable scalingSeeds from crops; power → mining → power
Sink loopConvert → spend → gonePacing pressureFuel: gather → burn → gather (survival)

Tuning levers

LeverWhat it controlsHealthy range / rule
Bottleneck placementWhere the player feels scarcityOne clear binding constraint at a time — that’s the current puzzle
Conversion ratioInputs per outputLegible (2:1, 5:1), not 7.3:1 mystery math
Chain lengthSteps from raw to resultLong enough to plan, short enough to hold in head; add steps as content, not on day one
Throughput vs storageFlow rate vs stockpileFlow-limited = active play; storage-limited = idle waiting
RenewabilityWhether a resource runs outRenewable = sustainable; finite = a clock (system-economy inflation)
Parallel loopsHow many run at onceMore loops = more to juggle; ramp the count

The bottleneck is the pacing. A loop with no binding constraint is a firehose — nothing to optimise. A loop with a permanent bottleneck is a wall. Good design moves the bottleneck: solve iron, now you’re copper-limited, now power-limited. Each move is a fresh puzzle — the same “no deserts, no walls” discipline as an economy’s pacing window ([[FUN.md §14]]).

How it wires to Hayao

Fails when…

Verify

Composes with

See also

This module rendersthe repo's markdowndirectly — edit it there, it changes here.