designing-mini-games

Installation
SKILL.md

Design or audit compact games for any input scheme. This skill owns rules, controls, scoring, hazards, difficulty intent, and engine-neutral invariants—not rendering, collision code, audio implementation, or numeric tuning.

Keep constants qualitative unless a balance claim requires a threshold. Defer frame counts to implementation from the intended action cycle. When deterministic generation does not exist yet, specify the seed/precheck invariant and mark the first-case check for implementation-time validation.

Core Rules

  • Express the core experience in one sentence. Fix button count and the role of each phase/button before secondary systems; respect a brief's count and record the physical binding for every action so screens cannot invent conflicting keys.
  • Game-over is single, visually obvious, and follows from a hazard or world-state collapse — never from a "did not press" punishment.
  • Make every available monotonous policy strictly worse than skilled play: idle and mashing always; hold-only for one-button; single-button spam and hold-everything for multi-button.
  • Score in-world causes (precision, graze, chain, route, pressure cash-out), never raw input facts. Keep survival score only when survival is the mastery signal and name the skilled pattern that separates it from monotony.
  • Add state only for a new player decision. Each important variable needs a trigger, in-world feedback (never only a HUD number), and a decision purpose; otherwise remove it. Zero-state designs are valid when geometry/physics alone creates decisions—say why.
  • Pair safety/power inputs with a readable cost such as lost score, drain, exposure, hitbox, speed, pressure, or recovery.
  • Name which quantities scale and why. Default smooth motion/spawn pressure to sqrt(difficulty); use steeper scaling only for intentional escalation.
  • For every balance-critical monotony claim, give at least one testable, engine-neutral implementation invariant.

One-button-specific rules:

  • One binary input only: press, hold, release—no second key, chord, or swipe.
  • Explicitly justify unused phases; never add a meaningless action to fill a table.
Installs
43
GitHub Stars
36
First Seen
May 17, 2026