263 lines
11 KiB
Markdown
263 lines
11 KiB
Markdown
|
|
---
|
|||
|
|
id: CB-RES-0010
|
|||
|
|
capability: design.space.aspects
|
|||
|
|
status: adopted — terminology and structure for ground-game catalog schema 2
|
|||
|
|
tier: M
|
|||
|
|
date: 2026-08-08
|
|||
|
|
upstream: ground-game editions/ASPECTS.md, editions/CATALOG.md
|
|||
|
|
related: CB-RES-0009 (extensive form), CB-RES-0007 (design instrument), ADR-0012
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# CB-RES-0010 — Game aspects, design space, and composable rules modules
|
|||
|
|
|
|||
|
|
Research digest for **clay-borg** as the simulator and design environment.
|
|||
|
|
ground-game owns edition content and the normative catalog; this note
|
|||
|
|
records the **concepts and sources** so selection APIs, panels, and
|
|||
|
|
recordings evolve around a shared model of **design dimensionality**.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Problem this solves
|
|||
|
|
|
|||
|
|
GROUND rules experiments began as **monolithic packages** (H1, H2): each
|
|||
|
|
bundled several independent design decisions. That blocked:
|
|||
|
|
|
|||
|
|
- measuring one change at a time;
|
|||
|
|
- combining two good ideas without rewriting a third package;
|
|||
|
|
- naming *what point in design space* a trial actually played.
|
|||
|
|
|
|||
|
|
ground-game schema 2 replaces mega-experiments with:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
configuration = baseline content
|
|||
|
|
× aspect₁ (one module)
|
|||
|
|
× aspect₂ (one module)
|
|||
|
|
× …
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
clay-borg must select, apply, record, and report configurations in those
|
|||
|
|
terms.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Core vocabulary (normative for this fleet)
|
|||
|
|
|
|||
|
|
| Term | Meaning | Clay-borg duty |
|
|||
|
|
|------|---------|----------------|
|
|||
|
|
| **Aspect** | Orthogonal **design dimension** of the game (e.g. end condition, problem→stress routing) | List known aspects; enforce ≤1 module each |
|
|||
|
|
| **Module** | One concrete design on one aspect (`problem_stress.scoped`) | Load `rules_delta` + overlays; implement kernel deltas |
|
|||
|
|
| **Default module** | Printed / r0 answer when no experiment is selected | Implicit when aspect omitted from selection |
|
|||
|
|
| **Profile** | Named list of modules (`h2`, `scoped_plus_attack_soothe`) | Expand to modules; do not treat as separate rules source |
|
|||
|
|
| **Baseline** | Content package (`ground-darvo-r0`) | Vendor CSVs; pin digests (ADR-0011) |
|
|||
|
|
| **Configuration** | Baseline + **resolved** module list | **Persist on every game / replay / panel cell** |
|
|||
|
|
|
|||
|
|
**Independence rule:** a module owns only its aspect. Cross-aspect
|
|||
|
|
behaviour is an explicit profile (or a new aspect), never a hidden
|
|||
|
|
dependency.
|
|||
|
|
|
|||
|
|
**Synonym:** early ground-game drafts said *axis* for aspect. Prefer
|
|||
|
|
**aspect** in UI, docs, and state fields; accept `axis` only as a deprecated
|
|||
|
|
alias when reading old configs.
|
|||
|
|
|
|||
|
|
Authoritative inventory for GROUND:
|
|||
|
|
`../ground-game/editions/ASPECTS.md` (sibling checkout) or the vendored
|
|||
|
|
copy when present under `editions/`.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Is there an established concept? (sources)
|
|||
|
|
|
|||
|
|
There is **no single standard named “aspects of a game”** with a fixed ISO
|
|||
|
|
list. Several traditions describe the same idea: **games as a point in a
|
|||
|
|
multi-dimensional design space**.
|
|||
|
|
|
|||
|
|
### 3.1 Game design (primary fit)
|
|||
|
|
|
|||
|
|
| Source | Idea | Use for us |
|
|||
|
|
|--------|------|------------|
|
|||
|
|
| **Tracy Fullerton**, *Game Design Workshop* — formal elements | Players, objectives, procedures, rules, resources, conflict, boundaries, outcome | Coarse checklist; maps to Structure / Economy groups in ASPECTS.md |
|
|||
|
|
| **Hunicke, LeBlanc, Zubek** — **MDA** (Mechanics–Dynamics–Aesthetics) | Mechanics generate dynamics; dynamics produce aesthetics | Module = mechanic change; panel = dynamics; design intent = aesthetics. Findings (ADR-0012) sit on dynamics. |
|
|||
|
|
| **Elias, Garfield, Gutschera** — *Characteristics of Games* | Games differ along **independent dimensions** (player count, outcome type, information, length, skill/chance, diplomacy, …) | Closest published match to “dimensionality of a game” as separable choices |
|
|||
|
|
| **Design space / possibility space** (common practice; e.g. Salen & Zimmerman *Rules of Play* discourse; modern “explore the design space”) | Varying parameters yields a space of games | Configuration = coordinates; modules = values on coordinates |
|
|||
|
|
| **BoardGameGeek mechanics taxonomy** | Named mechanisms (worker placement, …) | Vocabulary only — overlapping, not an orthogonal basis |
|
|||
|
|
|
|||
|
|
### 3.2 Game theory (analysis substrate, not the aspect list)
|
|||
|
|
|
|||
|
|
| Source | Idea | Use for us |
|
|||
|
|
|--------|------|------------|
|
|||
|
|
| **Extensive-form games** (von Neumann–Morgenstern lineage; modern texts e.g. Osborne, *An Introduction to Game Theory*) | Histories, information sets, chance, terminal payoffs | Formal object for *analysis* (see CB-RES-0009). Simultaneous moves = sequenced + hidden. |
|
|||
|
|
| **Normal / strategic form** | Players, action sets, payoff matrices | Too coarse for multi-round DARVO sequences and hidden Problems |
|
|||
|
|
| **Mechanism design** | Choosing rules to induce outcomes | Useful metaphor for “we design modules to shift incentives”; not a list of aspects |
|
|||
|
|
|
|||
|
|
**Do not** derive the aspect list from game theory alone. Derive aspects
|
|||
|
|
from **what designers vary**; use game theory to **measure incentives**
|
|||
|
|
inside a fixed configuration (e.g. “does ATTACK pay?”).
|
|||
|
|
|
|||
|
|
### 3.3 AI / general game playing (implementation relatives)
|
|||
|
|
|
|||
|
|
| Source | Idea | Use for us |
|
|||
|
|
|--------|------|------------|
|
|||
|
|
| **Ludii GDL** / general game systems | Declarative game description; universality results for extensive form | Confirms EFG as lingua franca (CB-RES-0009); not a substitute for aspect modularity |
|
|||
|
|
| **OpenSpiel**, **RBG**, etc. | Multi-game research APIs | Comparable “game + parameters” thinking; our parameters are *design modules*, not only RNG seeds |
|
|||
|
|
|
|||
|
|
### 3.4 What we claim (and do not)
|
|||
|
|
|
|||
|
|
**Claim:** Treating GROUND rules variation as **modules on aspects** is
|
|||
|
|
consistent with design-space practice and *Characteristics of Games*
|
|||
|
|
dimensional thinking, operationalized for edition + simulator work.
|
|||
|
|
|
|||
|
|
**Do not claim:** That “aspect” is a reserved term in game theory, or that
|
|||
|
|
our aspect list is complete for all games forever.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. GROUND aspect groups (summary)
|
|||
|
|
|
|||
|
|
Full tables live in ground-game `editions/ASPECTS.md`. Groups:
|
|||
|
|
|
|||
|
|
| Group | Examples | Modular today? |
|
|||
|
|
|-------|----------|----------------|
|
|||
|
|
| **A. Structure** | end condition, turn structure, setup, information | `end_condition` modular; others mostly fixed r0 |
|
|||
|
|
| **B. Content economy** | problem deal, solution economy, action set | `problem_deal` modular (proposed pressure deck) |
|
|||
|
|
| **C. Pressure & regulation** | problem_stress, attack_relief, DARVO, GROUND | `problem_stress`, `attack_relief` modular |
|
|||
|
|
| **D. Relationships** | bonds, rivalry, network scoring | fixed r0; bond-scope via problem_stress.scoped |
|
|||
|
|
| **E. Product / frame** | scenario fiction, safety, difficulty, medium | mostly content / process |
|
|||
|
|
|
|||
|
|
Registered modular aspects (must be in selection validation):
|
|||
|
|
|
|||
|
|
1. `problem_stress` — default `none`; also `flat_any_open`, `scoped`
|
|||
|
|
2. `attack_relief` — default `none`; also `self_soothe_ge4`
|
|||
|
|
3. `end_condition` — default `fixed_rounds_5`; also `hybrid_clear_collapse` (proposed)
|
|||
|
|
4. `problem_deal` — default `fixed_setup`; also `pressure_deck` (proposed)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Implications for clay-borg (design environment)
|
|||
|
|
|
|||
|
|
### 5.1 Selection API
|
|||
|
|
|
|||
|
|
Prefer:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
baseline: ground-darvo-r0
|
|||
|
|
modules: [problem_stress.scoped]
|
|||
|
|
# or
|
|||
|
|
profile: h2
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Legacy experiment ids (`h1-problem-stress`, `h2-scoped-problem-stress`)
|
|||
|
|
remain aliases → expand to profiles. Prefer module/profile ids in new code.
|
|||
|
|
|
|||
|
|
### 5.2 Application order
|
|||
|
|
|
|||
|
|
Apply module `rules_delta` in the order of `aspects:` in
|
|||
|
|
`ground-game/editions/catalog.yaml`. Refuse two modules on the same aspect.
|
|||
|
|
|
|||
|
|
### 5.3 Recording and panels
|
|||
|
|
|
|||
|
|
Every trial cell, replay, and `cb-play` session should store:
|
|||
|
|
|
|||
|
|
- `baseline_id`
|
|||
|
|
- `modules: [ ... ]` fully resolved (defaults filled or explicit)
|
|||
|
|
- optional `profile_id` if one was requested
|
|||
|
|
|
|||
|
|
Panel reports should **facet by aspect** when comparing (e.g. all configs
|
|||
|
|
with `problem_stress.scoped` vs `none`), not only by legacy experiment
|
|||
|
|
name.
|
|||
|
|
|
|||
|
|
### 5.4 Measurement hygiene (ties to design instrument)
|
|||
|
|
|
|||
|
|
- Prefer **one non-default module** when isolating a mechanism (alone).
|
|||
|
|
- Use **profiles** when the hypothesis is interaction (scoped × hybrid end).
|
|||
|
|
- Criterion tables in evidence should name **module ids**, not only “H2”.
|
|||
|
|
- Policies that cannot see an aspect (e.g. bots that ignore bond scope)
|
|||
|
|
cannot test aspect-specific *motivation* claims — report untested, not
|
|||
|
|
failed (CB-EV-0032 criterion 4 pattern).
|
|||
|
|
|
|||
|
|
### 5.5 Kernel / UI evolution
|
|||
|
|
|
|||
|
|
| Surface | Direction |
|
|||
|
|
|---------|-----------|
|
|||
|
|
| `cb-play` / trials | `--profile` / `--module` flags; show active modules on the table |
|
|||
|
|
| State hash / recordings | include configuration identity |
|
|||
|
|
| HTML table | label which modules are live (CB-WP-0044 family) |
|
|||
|
|
| Finding register | findings may be scoped to an aspect or module |
|
|||
|
|
| Future | aspect-aware policy panel; “compose and sweep” harness |
|
|||
|
|
|
|||
|
|
### 5.6 Proposed modules (draft only)
|
|||
|
|
|
|||
|
|
Until `status` leaves `proposed` and a kernel path exists:
|
|||
|
|
|
|||
|
|
- `end_condition.hybrid_clear_collapse`
|
|||
|
|
- `problem_deal.pressure_deck`
|
|||
|
|
|
|||
|
|
Do not report measurements for unimplemented modules. `allow_proposed`
|
|||
|
|
should refuse or no-op loudly.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Legacy map
|
|||
|
|
|
|||
|
|
| Legacy experiment | Profile | Modules |
|
|||
|
|
|-------------------|---------|---------|
|
|||
|
|
| `h1-problem-stress` | `h1` | `problem_stress.flat_any_open` + `attack_relief.self_soothe_ge4` |
|
|||
|
|
| `h2-scoped-problem-stress` | `h2` | `problem_stress.scoped` |
|
|||
|
|
|
|||
|
|
H1 mixed two aspects; H2 was already one aspect. Schema 2 makes that
|
|||
|
|
decomposition explicit so the next change is not H3-the-blob.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Relation to other clay-borg research
|
|||
|
|
|
|||
|
|
| Doc | Relationship |
|
|||
|
|
|------|----------------|
|
|||
|
|
| **CB-RES-0007** design instrument | Findings attach to configurations; aspects name *which* rules class moved |
|
|||
|
|
| **CB-RES-0008** could-we-have-won | Winnability is one dynamic; hold aspect coords when comparing |
|
|||
|
|
| **CB-RES-0009** extensive form | Formal analysis language *under* a fixed configuration |
|
|||
|
|
| **ADR-0011** vendor edition | Baseline content; modules add deltas on top |
|
|||
|
|
| **ADR-0012** design instrument | Admissible findings still need failing reproductions |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Bibliography (digest-level)
|
|||
|
|
|
|||
|
|
Primary design:
|
|||
|
|
|
|||
|
|
1. Fullerton, T. *Game Design Workshop* — formal elements of games.
|
|||
|
|
2. Hunicke, R., LeBlanc, M., Zubek, R. “MDA: A Formal Approach to Game Design and Game Research.”
|
|||
|
|
3. Elias, G. S., Garfield, R., Gutschera, K. R. *Characteristics of Games*. MIT Press.
|
|||
|
|
4. Salen, K., Zimmerman, E. *Rules of Play* — rules, play, culture; design space discourse.
|
|||
|
|
|
|||
|
|
Game theory / GGP (analysis, not aspect inventory):
|
|||
|
|
|
|||
|
|
5. Osborne, M. J. *An Introduction to Game Theory*.
|
|||
|
|
6. Piette et al. / Ludii literature on GDL universality and extensive form (see CB-RES-0009).
|
|||
|
|
7. OpenSpiel documentation — multi-game research environments.
|
|||
|
|
|
|||
|
|
Fleet documents:
|
|||
|
|
|
|||
|
|
8. ground-game `editions/ASPECTS.md`, `editions/CATALOG.md`, `editions/catalog.yaml` (schema_version: 2).
|
|||
|
|
9. ground-game `history/260808-modular-variants.md`.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Adoption checklist (clay-borg)
|
|||
|
|
|
|||
|
|
- [ ] Parse ground-game catalog schema 2 (`aspects`, `modules`, `profiles`).
|
|||
|
|
- [ ] Selection: `profile` or `modules[]` + baseline; fill defaults.
|
|||
|
|
- [ ] Validate one module per aspect.
|
|||
|
|
- [ ] Apply deltas in aspect order; `with_variant`-style setup for modules that assign owners.
|
|||
|
|
- [ ] Persist resolved module list on state / replay / panel output.
|
|||
|
|
- [ ] UI: show active modules.
|
|||
|
|
- [ ] Deprecate bare experiment-only APIs only after alias coverage.
|
|||
|
|
- [ ] Optional: panel sweep “hold all aspects fixed, vary one.”
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. One-sentence summary
|
|||
|
|
|
|||
|
|
**A GROUND rules configuration is a point in a multi-aspect design space;
|
|||
|
|
clay-borg’s job is to select, run, record, and compare those points
|
|||
|
|
without collapsing independent aspects into opaque experiment blobs.**
|