BoardGameBot Engine
An engine for asynchronous, turn-based board games played through Discord.
It has no Django, Discord or web dependency.
Features
- A game contract for setup, actions, transitions, rendering, scoring and rules upgrades.
- Turn-based play with pending choices and out-of-turn reactions.
- Public, hidden and per-seat private state.
- Deterministic seeded replay.
- Cards, zones, counters and turn order.
- Grid boards.
- Graph boards.
- Installable game plugins.
- Card, Grid and Graph reference games.
Install
pip install bgb-engine
Use
from bgb_engine import GameDefinition, RenderModel
The reference games live in bgb_engine.examples:
from bgb_engine.examples import (CardSampleGame, GraphSampleGame,
GridSampleGame)
They are also installed as plugins for BoardGameBot through the
boardgamebot.games entry-point group.
Reference games
CardSampleGame: card hands, hidden state, counters and pending choices.GridSampleGame: a grid board with hidden cells and scoring.GraphSampleGame: a graph board with paths, tokens and a finish condition.
The rules for the reference games are in the main project documentation. A
complete authoring guide is in the repository at docs/writing-a-game.md.
Write a game
Implement the GameDefinition protocol and declare an entry point in your
package:
[project.entry-points."boardgamebot.games"]
my-game = "my_game:MyGame"
The entry point may return a definition instance, a class with a zero-argument constructor, or a zero-argument factory. The host validates the result and refuses duplicate slugs.
A non-active seat may act only while it holds an open pending choice. Return
that seat's legal actions from legal_actions and open the choice with a
PendingSpec in a transition. While a choice is open, the host treats only its
seat as needed for board replacement, pings and private panels; otherwise the
active seat is needed.
License
BoardGameBot Engine is released under the MIT License.
Metadata
Release files for bgb-engine 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| bgb_engine-0.1.0.tar.gz | 18.1 kB | Without provenance | Details for bgb_engine-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bgb_engine-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for bgb_engine-0.1.0-py3-none-any.whl |
Total release size: 41.4 kB
Release files / bgb_engine-0.1.0.tar.gz
| Download URL | bgb_engine-0.1.0.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f989c0ddcb6c82cf9b8e244a0e6da51fd1f39d7e5e7eebc5e95c94ad6b697dc0
|
|
BLAKE2b-256 checksum How to use checksums |
4051a9e0f87f40d51d9e545df35c613dc7203dbbdcdbfb56335df68e10a831c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / bgb_engine-0.1.0-py3-none-any.whl
| Download URL | bgb_engine-0.1.0-py3-none-any.whl |
|---|---|
| Size | 23.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
567a717a526ea535d0da50087270db97cc7894fe3f4c09779dc00da6648f594a
|
|
BLAKE2b-256 checksum How to use checksums |
1b23a76aa9cdd9972eaa1d01099ef5f24e7180bd5872c2d5c0762e8120217f24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for bgb-engine 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.