boardgame.io README

The project's README from github.com/boardgameio/boardgame.io. As one markdown file: README.md.

boardgame.io

npm version Build Status Coverage Status 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

Usage

Installation

npm install 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 start

The examples can be found in the examples folder.

Using VS Code?

This repository is ready to run in a dev container in VS Code. See the contributing guidelines for details.

Changelog

See changelog.

Get involved

We welcome contributions of all kinds! Please take a moment to review our Code of Conduct.

🐛 Found a bug?
Let us know by creating an issue.

❓ Have a question?
Our Gitter channel and GitHub Discussions are good places to start.

⚙️ Interested in fixing a bug or adding a feature?
Check out the contributing guidelines and the project roadmap.

📖 Can we improve our documentation?
Pull requests even for small changes can be helpful. Each page in the docs can be edited by clicking the “Edit on GitHub” link at the top right.

License

MIT

boardgame.io (boardgameio/boardgame.io)

Searching Database…

What is this?An open-source engine for building turn-based games in JavaScript: you write functions that describe how each move changes the game state, and it turns them into a playable game with online multiplayer — no networking or storage code required.
So do I write the whole game from scratch, or does it render the board for me?It is an npm framework, not an app or editor. It handles state, turns, multiplayer and bots, while you render the board in any view layer — a vanilla JS client or the React / React Native bindings.
How do I get it running?Install the package with npm and follow the tutorial in the docs. This repo also ships runnable games in the examples folder, and it is ready to open in a VS Code dev container.
Do I need Node.js or anything else installed first?Just a JavaScript environment: games run in the browser, and the multiplayer server runs on Node.js. Contributing to the repo itself expects Node >= 22.12 and pnpm >= 10.16.
Any catch on what kinds of games it supports?It is built specifically for turn-based games — board games, card games, strategy titles. Realtime action games are outside its scope.
Where will my finished game actually run?Anywhere JavaScript runs: the browser via the vanilla client or React, plus iOS and Android through the React Native bindings, with game state managed seamlessly across clients and server.
Can I test my rules before building any UI?Yes — there is a prototyping interface that lets you simulate moves even before you render the game, so you can nail down the rules first.
How do I debug or review a game in progress?The engine keeps game logs with time travel: you can step back and view the board at any earlier state.
Can I add my own abstractions to the engine?Yes — a plugin system allows creating new abstractions and extending how the engine behaves.
Is the project still active?It looks healthy: around 12,500 GitHub stars, developed since 2017, with a changelog plus CI and npm-publish workflows in the repo.
What are similar projects?GDevelop, phaser, flame, luanti, ignite, libgdx, formily, Babylon.js
Size
13.4 MB
Stars
12.5K
Updated
CommitAug 10
Age
8y
Commits · 90 Days