← Dev Log
BallOrcs1 min read

The game on paper: BallOrcs, the Hollow King, and a ten-week plan

BallOrcs got its story.

In plain words

BallOrcs got its story. The Realm is full of one-of-a-kind bouncy creatures — until the Hollow King arrives: a vast, perfectly smooth grey sphere that drains orcs of their colour and flattens them into silent discs. Your orc is brand new, built in the village barber's chair minutes before the wave hits, so it's the only one the King can't catalogue and flatten. The quest: reignite the Elemental Founts and bring the colour back. You build your orc from parts — every eye, hat, and accessory changes both how you look and what you can do — and the plan is three levels (speed, fire, flight) in ten weekly playable builds.

The placeholder cast — every part changes your powers.

Under the hood

Three docs landed (docs/GAME_DESIGN.md, NARRATIVE.md, ROADMAP.md), plus the machinery to make the plan executable:

  • Component system: every part carries appearance data plus optional ability_modifiers, registry is data-driven, and the character editor lives in a shared ballorcs-core module vendored as a pinned submodule at project/addons/ballorcs_core. Trick worth stealing: the submodule URL is relative (../ballorcs-core.git) so it resolves against whatever remote the superproject came from — the local server on a dev machine, the internal CI hostname inside CI containers. Same save format across future titles; the cross-game character portability is even diegetic (your orc survives because it stays ahead of the King's catalogue).
  • Level design rule: each level themes on 1–2 abilities; environments favour them, obstacles require them, secondary routes reward off-theme builds for replay value.
  • The plan is data: infra/pm/backlog.json seeds GitLab with 10 label-based epics and 57 weighted issues (CE has no native Epics), the L1/L2/L3/V1 milestones, and weekly due dates — idempotent, so the plan evolves by editing JSON and re-running. V1 target: Monday 2026-09-21, riding the existing Monday 06:00 UTC release train, every issue weighted ≤ 2 days so nothing spans a release boundary half-merged.
#design#narrative#roadmap