Skip to content

Introduction to B.A.G.E.L.

B.A.G.E.L. (Board-based Automated Game Engine Language) is a JSON-based declarative language for defining board and card games. You describe entities (boards, pieces, cards), moves, turn structure, and end conditions in a single JSON object.

There is a runtime, board-game-engine, that automatically creates a playable prototype from a B.A.G.E.L. rule definition.

What you can define

  • Entities — Grids, pieces, spaces, etc.
  • Boards — Which entities form the shared board optionally, each player’s personal board (e.g. their hand, tableau, stock). Nestable.
  • Moves — Make changes to the game state
  • Turns — Min/max moves per turn, optional stages (e.g. “must jump if possible” then “move or king”). Follows boardgame.io turn rules pretty closely.
  • End conditions — End game when some condition is met. When game ends, defines a specified value as the gameover state

Next

Go to Getting started to see a minimal example and run it in the editor.