← Dev Log
BallOrcs2 min read

Design corner: every level is a question, your orc is the answer

A BallOrc is whatever you bolt onto it.

In plain words

A BallOrc is whatever you bolt onto it. Swap the hat, the feet, the skin, and you've changed both what your orc looks like and what it can do — a wick hat is not a costume, it's a flame dash. So levels aren't built as one correct obstacle course. Each one picks an ability and asks a question about it. The fire level pours out oil slicks: a speed orc skids across them and swears, a fire orc sets them alight and takes the shortcut. Same slick, two answers, both valid. And tucked off the main path are routes that only make sense for the orc you didn't bring — which is the whole point. Come back as someone else, and the level is new.

Concept mock-up of the Fire Fount's territory (not a capture from the build): a fire orc lays a burning trail, the Fount burns mid-frame, and a green vine wall on the right waits for someone who can set it alight.

Under the hood

The level-design rule in docs/GAME_DESIGN.md is deliberately narrow — every level themes on 1–2 abilities, no more — and it does three jobs at once:

  • Environments favour, obstacles require. Terrain is tuned so the themed ability feels good (oil slicks, updraft columns, burnables), while a smaller set of gates hard-require it — a vine wall that must burn, a canyon only flight crosses. Favour-vs-require is the difference between a level that rewards a build and one that locks out everyone else.
  • Off-theme routes are the replayability budget. Secondary paths are designed for the abilities the level isn't about. This is where the replayability pillar actually gets paid for: not in extra levels, but in extra readings of the same level by a differently-built orc.
  • The v1 slice is one ability per level. Speed in L1 (sprint burst, speed pads, momentum jumps), Fire in L2 (flame dash, ignite, melt), and Flight in L3 (glide, updraft columns, wind currents) — three of the ten abilities that exist as data and labels from day one. The other seven, and the future pool (bounce, magnetism, gravity flip, shadow-phase, size-shift, echo-clone), are already named so level themes have somewhere to grow.
  • It falls out of the component system. Abilities aren't picked from a menu; they're granted by parts. Each component carries appearance data plus an optional ability_modifiers list, and the registry is data-driven resources in the shared ballorcs-core module — so a future title can add a component, and with it a level theme, without touching code.
  • Themes and unlocks are the same table. Each level is one Fount's territory, and reigniting it unlocks that element's component family in the barber's chair. The ability a level teaches is the ability it hands you — progression and design rule are one system, not two that have to be kept in sync.
#lore#design