# OpenSpiel Google DeepMind · C++ core with Python bindings · Apache-2.0 `unverified` · `checked` for scope and algorithms ## What it optimises for **Research in reinforcement learning and search/planning in games**, with a strong game-theoretic algorithm library. Supports n-player single- and multi-agent, **zero-sum, cooperative and general-sum**, one-shot and sequential, turn-taking **and simultaneous-move**, perfect and imperfect information — plus grid worlds and **social dilemmas**. `checked` ## How a game is defined Games are implemented against a C++ (or Python) API. `checked` — this is a *programming* interface, not a description language, which is the axis where Ludii and Ai Ai differ from it. **But the API is an extensive-form game interface**, and that is the connection: Ludii's universality proof grounds its language in EFGs, and OpenSpiel's algorithms consume EFGs. **EFG is the interchange format** ([`../research/CB-RES-0009-extensive-form-is-the-lingua-franca.md`](../research/CB-RES-0009-extensive-form-is-the-lingua-franca.md)). ## What it can analyse The reason this profile matters for Track B. Implemented algorithms include **CFR** and its Monte-Carlo variants, **Deep CFR**, **exploitability** and best-response computation, fictitious play (XFP, NFSP), **PSRO**, **α-Rank**, replicator/evolutionary dynamics, minimax, MCTS, and value iteration. `checked` **Exploitability** is the key one: how much an opponent gains by deviating to a best response — a direct, computable measure of *how far from equilibrium a strategy is*. `checked` ## What it does not do - Nothing design-facing. It answers "how strong is this strategy" and "how far from equilibrium", not "is this rule doing its job". - No game description language, so no cheap path for a designer. - No evidence discipline: outputs are research data. ## Relevance to clay-borg **Track B, and it is very likely the answer rather than a competitor.** Our current instrument for "does ATTACK ever pay" is two hand-written policies and a rank parameter. **Exploitability and best-response are the principled versions of that question**, and they are implemented, tested and published here. GROUND is simultaneous-move, imperfect-information, cooperative with a defection mechanic — **all four are inside OpenSpiel's stated scope**. ## What to steal - **Exploitability as the replacement for "we tried three policies".** F17's question — does ATTACK earn its place — is a best-response question wearing a sweep's clothes. - The distinction between **cooperative, general-sum and zero-sum** as a first-class property of a game, which our kernel does not represent. ## What to avoid **Quoting a solution concept without its assumptions.** An equilibrium computed over a policy class we chose is a statement about that class. This is the wrong-subject error in mathematical dress, and it is the specific risk `Positioning.md` §4 flags for Track B. ## Open questions - Cost of expressing a GROUND-like game against its API versus our kernel. - **Whether our engine satisfies perfect recall.** CFR and exploitability assume it, our per-seat projection has never been checked for it, and it is checkable from the journal. **This is the first Track B task** — if it fails, every equilibrium concept is unsound here. - **Our chance is folded into a seed, not an explicit chance player.** A clay-borg game is one chance realisation; the panels sample seeds to approximate the distribution. CFR needs chance nodes. - Whether exploitability is meaningful for a co-operative game with a shared threshold — `open`, and it is the question that decides whether Track B adopts this or only borrows its vocabulary. - Licence. ## Sources - OpenSpiel repository (https://github.com/google-deepmind/open_spiel) - *OpenSpiel: A Framework for Reinforcement Learning in Games* (https://www.researchgate.net/publication/335419770)