clay-borg/simulators/README.md
tegwick 55a475b1a9
Some checks failed
ci / check (push) Failing after 4s
CB-RES-0009: extensive form is the lingua franca
Two questions from the maintainer — is there a game-theory mapping to
Ludii's language, and is that language formal enough to derive one from.
Yes, no, and the no does not matter.

The mapping is proven, not to be invented: "The Ludii Game Description
Language is Universal" shows the language can represent an equivalent game
for any finite, non-deterministic, imperfect-information game, extending
earlier work limited to finite deterministic fully-observable
extensive-form games. EFG is also OpenSpiel's object, so the same
formalism connects description to analysis: Ludii -> EFG <- OpenSpiel.

Ludii's syntax is formal and unusually so — a class grammar derived
automatically from its source. Its semantics are its Java: a ludeme means
what its class does, and Ludii effectively makes Java the game description
language. So there is no independent calculus to extract. The formality
lives in the universality RESULT, not in a definition of meaning. GDL has
the semantics and pays for it in speed — six times on Gomoku, twenty on
Amazons and Hex, over two hundred on Chess.

Conclusion: do not derive a language from Ludii; target the EFG directly.

And we are closer than the tracks assumed. The journal is the history,
Outcome is the payoff, legal_commands gives the actions — and
project(Viewer::Player(seat)) IS the information partition, built so a
player is not shown another's hand and unremarked as exactly the machinery
imperfect information needs.

Three gaps: chance is folded into a seed so a game is one realisation
rather than a game with chance nodes; perfect recall is unasserted, which
CFR and exploitability both assume; and commit/reveal is the standard EFG
encoding of simultaneity but is never stated as such. Perfect recall is
checkable from the journal today and is now Track B's first task — if it
fails, every equilibrium concept we might quote is unsound here.

Also re-vendored the catalog twice: ground-game added H2 — scoped problem
stress, applying End Stress by personal/bond/global scope instead of flat
to everyone, which is a direct response to our reading that H1's tax
scales with the Problems while its intended effect does not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 14:57:25 +02:00

87 lines
3.9 KiB
Markdown

# Simulators — profiles of systems adjacent to clay-borg
Persisted research, not a link dump. Each profile answers the same
questions in the same order so the systems can be compared, and each
carries **what we actually checked**.
Written for [`../specs/Positioning.md`](../specs/Positioning.md) §1 and
§4 — the field we sit in, and the three tracks. Track A (a second game)
and Track B (game theory as the lens on dynamics) both depend on knowing
what already exists.
---
## The confidence rule
> **Every claim in a profile carries its source, and a claim from
> background knowledge is marked `unverified`.**
This directory was written immediately after three adversarial review
rounds whose entire yield was claims that outran what had been checked
([`../reviews/`](../reviews)). A profile that quietly mixes a fetched fact
with a half-remembered one is the same failure in a new place — and here
it would be worse, because these profiles are meant to inform whether we
build something or adopt it.
| marker | means |
|---|---|
| **`checked`** | read from a source this session, cited at the foot of the profile |
| **`unverified`** | from background knowledge; plausible, **not** confirmed, and must be before it decides anything |
| **`open`** | a question we want answered and did not answer |
## The schema
```
# <name>
owner · first release · licence · language (checked/unverified)
## What it optimises for
## How a game is defined
## What it can analyse
## What it does not do
## Relevance to clay-borg — which track, and how
## What to steal
## What to avoid
## Open questions
## Sources
```
## Index
| profile | in one line | track |
|---|---|---|
| [`ludii.md`](ludii.md) | the closest relative: ludemes, breadth, speed — **syntax formal, semantics is its Java** | A |
| [`gdl-ggp.md`](gdl-ggp.md) | the academic ancestor; agent generality over designer support | A |
| [`rbg.md`](rbg.md) | regular boardgames — a speed-focused rival description language | A |
| [`ai-ai.md`](ai-ai.md) | **the closest relative for what we want to become**: GGP with designer-facing metrics | A, C |
| [`openspiel.md`](openspiel.md) | the game-theory workbench: CFR, exploitability, social dilemmas | B |
| [`browne-criteria.md`](browne-criteria.md) | not a simulator — the canonical attempt to measure whether a game is *good* | C |
| [`machinations.md`](machinations.md) | economy and feedback loops, diagrammatic | — |
| [`play-substrates.md`](play-substrates.md) | Tabletop Simulator, boardgame.io — play without analysis | — |
## The formal question, answered
**Is there a game-theory mapping to Ludii's language, and is that language
formal enough to derive one from?**
**Yes to the first, no to the second, and the second does not matter.**
Ludii's universality result grounds it in **finite, non-deterministic,
imperfect-information extensive-form games** — the same object OpenSpiel's
CFR and exploitability consume. Ludii's *grammar* is formal (derived from
its class hierarchy) but its *semantics are its Java*, so there is no
independent calculus to extract.
**Conclusion: target the extensive-form game directly, not a language
derived from Ludii.** Worked through in
[`../research/CB-RES-0009-extensive-form-is-the-lingua-franca.md`](../research/CB-RES-0009-extensive-form-is-the-lingua-franca.md).
## What this survey has already changed
**Ai Ai and Browne's criteria are the finding.** Track C was written in
`Positioning.md` as though "assimilate knowledge about why games work"
were open ground. It is not: **Browne published 57 criteria for game
quality**, and Ai Ai already computes designer-facing measures — drama,
lead changes, branching factor, completion, duration — from played games.
That does not close Track C. It moves it from *invent* to *adopt, credit,
and find the gap*, which is a much better position and a much smaller
claim than the one we were about to make.