NET FORGE DOCS

Net Forge and boardgame.io: when to use each

Last updated Checked against @netforge/engine 0.2.0View as Markdown

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

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.

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

At a glance

boardgame.ioNet Forge
What it isAn "Open Source Game Engine for Turn-Based Games" (boardgame.io)A browser game engine with ten multiplayer templates, four of them board-style
LanguageJavaScript or TypeScriptTypeScript
RenderingBring your own; vanilla JS client or React bindingsFinished 3D clients drawn with three.js
Multiplayer modelState kept in sync across clients, server and storage; you write movesAuthoritative room validates each action; deterministic rules module with a seeded shuffle
Hidden informationplayerView strips secrets before state reaches a player (Secret State)Hands and draft offers are sent only to their owner; the deck order stays on the server
BotsAutomatically generated botsTemplate AI opponents that fill an empty seat and never earn
LicenseMIT (npm)MIT
Latest version (checked 2026-10-23)0.50.2, released 2022-11-10@netforge/engine 0.2.0
Best forAny turn-based design you want to define from scratchCard 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).
  • 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.
  • 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.
  • You want other board genres too. Tower defense, idle and monster collector use the same deterministic rules seam. See Templates.

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.ioNet Forge
Game object with setup and movesgame({ template: "cards", ... }), cardTable() and card() declarations
playerViewBuilt in: the room sends hands and offers only to their owner
turn and phases configThe template's duel and gauntlet structure, with a turn timer
ctx.random.ShuffleThe room's seeded shuffle
Generated botsThe template's AI scribes, in tiers set by ai
LobbyRoom links in local play; matchmaking on the hosted service

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

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.

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