Build multiplayer
games in minutes

Playroom Kit is a high-performance sync that handles the networking and the room management so you can focus on building your game.

Making Multiplayer Game

What is Playroom Kit?

Playroom Kit simplifies the development of real-time web-based multiplayer games by offering seamless synchronization and state management features. With its convenient integration capabilities, you can effortlessly incorporate the kit into popular game engines and libraries, transforming any game into a multiplayer experience.

We believe that gaming is more enjoyable when shared with friends, whether they are online, nearby, connected through Discord, part of a Twitch community, or even gathered with family at home. With Playroom Kit, you have the flexibility to create your game to suit any multiplayer scenario.

Why Playroom Kit?

Realtime State Sync

Realtime sync of game and player state between all players and screens.

Low Latency

Automatically switch between WebRTC and WebSockets for <50ms latency.

No Backend

Serverless architecture with no backend code to write or manage.

Region: Earth

Nearest websocket backend running within milliseconds of the players.

Player Management

Automatically handle players, room creation and joining via URL or QR code.

Built-in UI

Letting players pick their names, colors and avatars with embedded UI.

Great for Web Games

Use Playroom Kit to make web-based games. We officially support the following engines:

What's the API like?

Playroom Kit provides a simple API to set or get the state of the game room. The state is automatically synced between all players and screens.

import { getState, setState } from 'playroomkit'
// Set some game state, this will be synced to all players
setState("timeRemaining", 60);
// ...
// One some other device: Get the time remaining
const time = getState("timeRemaining");

Playroom also takes care of player and room management. You just need to call insertCoin() somewhere in your game to show the lobby UI.

import { insertCoin } from 'playroomkit'
// Show the lobby UI
await insertCoin();
// Handle players joining the game
onPlayerJoin((player) => {
  console.log(`${player.getProfile().name} joined the game`);

See the API Reference for more details.