/boardgame.io

Open Source Game Engine for Turn-Based Games

Primary LanguageJavaScriptMIT LicenseMIT

boardgame.io

npm version Build Status Coveralls Gitter

Read the Documentation

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.

Features

  • 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).

Usage

Installation

$ npm install --save boardgame.io

Documentation

Read our Full Documentation to learn how to use boardgame.io, and join the community on gitter to ask your questions!

Running examples in this repository

$ npm install
$ npm run build
$ npm start

The examples can be found in the examples folder.

Changelog

See changelog.

Contributing

See the contributing guidelines. Also take a look at the roadmap to find things that you could contribute to.

License

MIT