boardgame.io is an engine for creating turn-based games using JavaScript.
Write simple functions that describe how the game state changes when a particular move is made. This is automatically converted into a playable game complete with online multiplayer features, all without requiring you to write a single line of networking or storage code.
- State Management: Game state is managed seamlessly across clients, server and storage automatically.
- Multiplayer: Game state is kept in sync in realtime and across platforms.
- AI: Automatically generated bots that can play your game.
- Game Phases: with different game rules and turn orders per phase.
- Lobby: Player matchmaking and game creation.
- Prototyping: Interface to simulate moves even before you render the game.
- Extendable: Plugin system that allows creating new abstractions.
- View-layer Agnostic: Use the vanilla JS client or the bindings for React / React Native.
- Logs: Game logs with the ability to time travel (viewing the board at an earlier state).
$ npm install --save boardgame.io
Read our Full Documentation to learn how to use boardgame.io, and join the community on gitter to ask your questions!
$ npm install
$ npm run build
$ npm start
The examples can be found in the examples folder.
See changelog.
See the contributing guidelines. Also take a look at the roadmap to find things that you could contribute to.