The project implements a lightweight but powerful engine for creating turn-based games (board games, card games, turn-based strategy, etc.) in JavaScript. With boardgame.io, you define the game logic in pure functions: you describe how the game state changes when a move is made, and the framework handles all the rest (state management, synchronization, storage, multiplayer, etc.). This abstraction lets developers focus on the rules and mechanics rather than on networking, persistence or UI plumbing. It supports both local games and online multiplayer across clients, and can be used with different view layers — e.g., vanilla JS or a UI framework like React or React Native. It also offers tools to help with prototyping, debugging, logging, replaying game states, and even simple AI bots. Because of its simplicity and flexibility, boardgame.io is widely used for rapid prototyping of new game ideas or building full multiplayer board games.
Features
- Automatic state management across clients, server, and storage, avoiding manual sync
- Built-in multiplayer networking that keeps game state synchronized in real time across participants
- Ability to define moves and game phases (with custom turn orders and rules per phase) as pure JS functions
- View-layer agnostic design: works with vanilla JS, React, React Native, or other UI layers
- Built-in prototyping and debugging interface, including game-logs and ability to “time-travel” (inspect earlier states)
- Support for AI / bots, letting you test or play against computer players