# Net Forge and boardgame.io: when to use each

> boardgame.io is an open-source engine for turn-based games that turns move functions into a multiplayer game with secret state, phases, bots and a lobby. Net Forge offers a finished 3D card battler and three other board-style templates on an authoritative room.

Net Forge, the open-source multiplayer browser game engine built for AI coding agents, is published on npm under `@netforge` with source at https://github.com/netnetdev/net-forge.

Source: https://forge.netnet.capital/docs/compare/boardgame-io  
Last updated: 2026-10-24. Checked against @netforge/engine 0.2.0.

Pick boardgame.io when you want to describe a turn-based game as plain move functions and get multiplayer, secret state, phases, bots and a lobby around them, with a React or vanilla JavaScript client you draw yourself. Pick Net Forge when you want to start from a finished, drawn multiplayer card battler (or tower defense, idle or monster collector game) and change its cards and rules in one typed file.

```sh
npm create netforge@latest my-game -- --template cards --yes
```

## At a glance

| | boardgame.io | Net Forge |
|---|---|---|
| What it is | An "Open Source Game Engine for Turn-Based Games" ([boardgame.io](https://boardgame.io/)) | A browser game engine with ten multiplayer templates, four of them board-style |
| Language | JavaScript or TypeScript | TypeScript |
| Rendering | Bring your own; vanilla JS client or React bindings | Finished 3D clients drawn with three.js |
| Multiplayer model | State kept in sync across clients, server and storage; you write moves | Authoritative room validates each action; deterministic rules module with a seeded shuffle |
| Hidden information | `playerView` strips secrets before state reaches a player ([Secret State](https://github.com/boardgameio/boardgame.io/blob/main/docs/documentation/secret-state.md)) | Hands and draft offers are sent only to their owner; the deck order stays on the server |
| Bots | Automatically generated bots | Template AI opponents that fill an empty seat and never earn |
| License | MIT ([npm](https://www.npmjs.com/package/boardgame.io)) | MIT |
| Latest version (checked 2026-10-23) | 0.50.2, released 2022-11-10 | `@netforge/engine` 0.2.0 |
| Best for | Any turn-based design you want to define from scratch | Card battlers and board-style games you start from a finished template |

## When to pick boardgame.io

- **Your game is a new turn-based design.** You "write simple functions that describe how the game state changes when a particular move is made", and boardgame.io turns them into a playable game ([boardgame.io](https://boardgame.io/)).
- **You want phases and turn orders as data.** It supports "different game rules and turn orders per phase".
- **You want the state layer and nothing else.** It keeps state "in sync in realtime and across platforms", has a lobby for matchmaking and game creation, and lets you render with React or anything else.
- **You want bots for free.** It generates bots that can play your game, which also helps when testing.

## When to pick Net Forge

- **You want a finished card battler to start from.** INKWRIT, the card battler template, already has the duel, turns and the turn timer, a server-side shuffle, hidden hands, guards and rush keywords, a draft between duels, AI opponents, rendering and touch controls. See [Card battler template](https://forge.netnet.capital/docs/templates/card-battler.md).
- **You want a 3D board and real-time touches.** Each player's cursor is predicted at 30 Hz while plays, attacks and turn ends are actions the room validates.
- **Your coding agent edits the cards.** Cards and rules are declarations in `src/game.ts` (`card()`, `cardTable()`), validated by the build. See [The typed game API](https://forge.netnet.capital/docs/concepts/game-api.md).
- **You want other board genres too.** Tower defense, idle and monster collector use the same deterministic rules seam. See [Templates](https://forge.netnet.capital/docs/templates.md).

## Honest limits of Net Forge

Net Forge's board genres are the four in its templates. A new turn-based design that is not a card battler, tower defense, idle or monster collector game is closer to what boardgame.io is built for. Net Forge is young (0.2.0), and game code may import only `@netforge/engine`. The public repository's room host is for play on your own computer and network; the production room server is the hosted Net Forge service.

## Moving from boardgame.io

| boardgame.io | Net Forge |
|---|---|
| `Game` object with `setup` and `moves` | `game({ template: "cards", ... })`, `cardTable()` and `card()` declarations |
| `playerView` | Built in: the room sends hands and offers only to their owner |
| `turn` and `phases` config | The template's duel and gauntlet structure, with a turn timer |
| `ctx.random.Shuffle` | The room's seeded shuffle |
| Generated bots | The template's AI scribes, in tiers set by `ai` |
| Lobby | Room links in local play; matchmaking on the hosted service |

A first step: start the card battler and play it against the AI.

```sh
npm create netforge@latest my-game -- --template cards --yes
cd my-game
npm run play
```


For a side-by-side table of the 3D options, see [3D multiplayer browser game engines compared](https://forge.netnet.capital/docs/compare/3d-multiplayer-engines.md).

## FAQ

### Is boardgame.io still maintained?

Its latest npm release is 0.50.2, published on 2022-11-10 (checked 2026-10-23 on [npm](https://www.npmjs.com/package/boardgame.io)). The library is MIT licensed and its docs remain online.

### How do I hide a player's hand in an online card game?

In boardgame.io, return a stripped copy of the state from `playerView`. In Net Forge's card battler, the room keeps the deck order to itself and sends each hand only to its owner, so the other player's browser never receives it.

### Can I play against an AI in a Net Forge card game?

Yes. A player alone in a room for three seconds gets an AI opponent, which leaves when a second person joins. AI opponents never earn.

### Does Net Forge support games with more than two players per table?

The card battler seats two. The monster collector and idle templates seat up to eight, and tower defense up to four.
