Skip to main content

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)

Source distribution for bgb-engine 0.1.0
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)

Table of built distributions (wheels) for bgb-engine 0.1.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page