Repolode
boardgameio

boardgameio/boardgame.io

A JavaScript engine for building turn-based games with automatic state management and online multiplayer.

Stars
12,484
Forks
835
Open issues
64
Last commit
8 days ago

What is it?

boardgame.io lets developers define a turn-based game by writing functions that describe how the game state changes when a player makes a move. The framework turns those definitions into a playable game, handling state synchronization between clients and server, along with storage, so developers do not need to write networking code.

The engine supports game phases with their own rules and turn orders, a lobby for matchmaking and game creation, and automatically generated bots that can play a game. It also provides a way to simulate moves before the game UI is rendered, plus a game log that supports viewing the board at earlier states.

The client is view-layer agnostic: it can be used with vanilla JavaScript or with bindings for React and React Native. It is written in TypeScript and distributed as the npm package boardgame.io.

Key features

  • 01Game state is synchronized in realtime across clients and server automatically.
  • 02Game phases allow different rules and turn orders per phase.
  • 03Built-in lobby for player matchmaking and game creation.
  • 04Automatically generated bots can play your game.
  • 05Game logs support time travel to view earlier board states.
  • 06Plugin system for extending the engine, with bindings for React and React Native.

Use cases

  • Building an online multiplayer board or card game without writing networking code.
  • Prototyping game rules and simulating moves before building the UI.
  • Adding AI opponents to a turn-based game through generated bots.
  • Creating a turn-based game for web or React Native apps.

Quick start

  1. 1

    Install the package from npm

    npm install boardgame.io
  2. 2

    Read the full documentation to start building a game

In collections

Topics

FAQ

What is boardgame.io?
A JavaScript engine for building turn-based games with automatic state management and online multiplayer. boardgame.io lets developers define a turn-based game by writing functions that describe how the game state changes when a player makes a move. The framework turns those definitions into a playable game, handling state synchronization between clients and server, along with storage, so developers do not need to write networking code.
Is boardgame.io free to use? What license does it have?
boardgame.io is open source under the MIT license. Check the license terms before using it in commercial products.
Is boardgame.io still maintained?
Actively maintained. The last commit to boardgame.io was on Oct 30, 2026.
What can I use boardgame.io for?
Building an online multiplayer board or card game without writing networking code. Prototyping game rules and simulating moves before building the UI. Adding AI opponents to a turn-based game through generated bots. Creating a turn-based game for web or React Native apps.
How do I install boardgame.io?
Install the package from npm: npm install boardgame.io Read the full documentation to start building a game
Where can I get boardgame.io?
The source code and installation instructions are on GitHub: https://github.com/boardgameio/boardgame.io

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects