No-code, open-source game engine and editor for building 2D, 3D and multiplayer games for mobile, desktop and the web.
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
Install the package from npm
npm install boardgame.io - 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
A multiplayer space station game about paranoia and chaos, a C# remake of Space Station 13 built on the Robust Toolbox engine.
An open multi-platform, multi-framework solution for building one app that runs on WeChat/Alipay/other mini programs, H5 web, and React Native using React or Vue.
A JavaScript library for building interactive user interfaces from composable components, usable on the web, server and native platforms.
An MIT-licensed infinite-canvas whiteboard SDK for React, React Native, and plain JavaScript apps, positioned as a free alternative to tldraw.
A web-based visual novel engine that runs galgame-style stories in the browser, scripted with WebGAL Script or built with a visual editor.