12 · Architecture · Shared runtime

The abstraction is real when a second game uses it.

Chaos System grew out of Purrfect Chaos, then had to become useful to Dungeon Dice without dragging cat-world or RPG meaning into the shared layer.

The boundary

Extraction is a design test.

A custom engine can look generic while it serves only one consumer. The extraction into Chaos System made the question concrete: what is genuinely reusable technology, and what was merely a Purrfect Chaos assumption wearing an engine-shaped coat? Dungeon Dice supplied a second, materially different workload and made the answer harder to fake.

Engine owns runtime capability

Chaos Engine is the runtime half: entities, components, transforms, scenes, frame progression, rendering, GPU resources, cameras, culling, LODs, physics, input, audio, animation, UI, windowing, platform backends, and diagnostics. Its types can describe a mesh, collider, light, transform, or audio source without knowing whether the thing belongs to a tavern, an island, a crypt, or a die table.

The native boundary stays honest. Vulkan and Direct3D 12 infrastructure, null devices, headless execution, and automated tests are different levels of evidence. A null test can prove a lifecycle invariant; it cannot prove a native window, GPU presentation, audio device, or rendered pixel.

Generator owns production mechanism

Chaos Generator is a build-time toolchain rather than a runtime dependency. It accepts explicit consumer-owned catalogues and specifications, validates them, generates deterministic runtime-ready assets, and records manifests and metadata. The reusable mechanism can know how to produce a regular polyhedron, a stylised character, a modular environment, an animation clip, or procedural audio. It does not decide whether that object is a gameplay d20, Barry, a tavern, or a cat.

This keeps generated output on the consumer side of the boundary. Games own the catalogue, semantic identifiers, composition, output location, and how generated data affects play. Chaos owns the algorithms and the runtime contracts that consume the resulting files.

Consumers own meaning

Purrfect Chaos remains the birthplace and an active consumer: it owns the cat sandbox, island composition, ecology, quests, progression, and game-specific presentation. Dungeon Dice is the second consumer: it owns physical-dice rules, face numbering, tavern life, characters, adventure state, and campaign history. Neither game's domain vocabulary belongs in Chaos.

QuestionOwner
How do we render, collide, animate, play, or generate it?Chaos System
What does this generated object mean?Consuming game
Which assets and parameters should exist?Consumer catalogue/specification
What becomes part of campaign or world state?Consuming game

What remains unproven

Two real consumers establish an architectural boundary, not commercial-engine maturity. Broader hardware coverage, backend parity, editor and tooling depth, asset interoperability, animation and physics breadth, and API stability still need evidence on their own terms. The system is useful precisely because those limits are visible instead of hidden behind a generic “supported” label.

Working rule: Chaos owns capability. Games own meaning. If a feature cannot serve an unrelated game without inheriting another consumer's assumptions, it probably does not belong in the shared layer.