Nodal Play

One room, the whole crew: a community arcade where viewers join the streamer's room and play together.

What Nodal Play is

Nodal Play is a community arcade built around live streams. Its tagline on the front page is “Good games. Better together,” and its pitch is a single sentence: one room, the whole crew. A viewer opens the site, signs in with Discord or plays as a guest, sees every streamer’s open room, and presses JOIN. The streamer then launches everyone into a game together, or starts a vote to let chat choose. No codes are read out in chat, and nobody has to paste anything into a lobby.

It was built on stream by vAlentino718 with Claude and Codex agents and went live as version 0.1 on October 6, 2026, with a launch post on X and an announcement in Discord. The live arcade is at nodal-play.uzig718.workers.dev.

The Nodal Play front page: Good games. Better together, with a Find a stream room button and concept artwork of a jet over an island
The Nodal Play front page: a headline, a Find a stream room button and concept artwork. The library below it lists games from the community and beyond.

For viewers

  1. Sign in with Discord or as a guest. Guests only choose a display name. A Discord-linked account unlocks games that require one. The platform saves just a display name and game settings.
  2. See every open room. A Servers section lists live stream rooms with a LIVE badge and a member count, plus public servers of games that support them. The list refreshes every ten seconds.
  3. Hit JOIN. The room page shows who is in the room, the current vote and the streamer’s launch controls.
  4. Get launched together. When the streamer starts the game, everyone in the room sees a three-two-one countdown. For games with an owned room API, the game opens embedded in the page. Other games show a big Join game button, because browsers block timed pop-ups.

For streamers

A streamer publishes a room with a title and a game. The room gets an invite link that can go in the stream description or chat. From the room page the streamer can start a vote, choosing two to eight multiplayer games from the catalog. Viewers vote and can change their vote, and counts update live. The streamer can close the vote and approve the winner, launch any option directly, or skip the vote and launch right away. Each host can have one active room at a time, closed rooms cannot be reopened by a stale edit, and only the room owner with streamer permission can edit or close the room.

Rooms can be public, password-protected or hidden. For games without an owned room API, the room supports a manual flow: launch the game, create a group inside it, paste the game’s actual code into the room, and viewers copy it. The documentation is blunt about this limitation: the platform invite is not the same thing as the code created inside a game, and typing a code on the platform does not create that group in the game.

For vibe coders: hosting your game

The platform’s other audience is people who build games with AI and want them to work with a streamer audience. The launch contract is intentionally small.

PieceWhat it does
?room=CODE&name=GAMERTAGThe game reads these two query parameters, validates them (a short alphanumeric code and a nickname of three to twenty-four characters) and maps the room to its own lobby. If they are missing, the normal menu appears. Both values are treated as untrusted hints.
POST /api/roomsAn optional room API on the game’s own origin. The platform’s host browser calls it to create a private room and receives a code and a host key. Requests are allowed only from approved platform origins.
EmbeddingThe game may run inside a sandboxed iframe on the platform. It must allow the platform origin as a frame ancestor.
postMessageTwo messages go from the game to its parent window: nodal:match-ended (the host then sees a Vote next game button) and nodal:exit (return to the room). The platform accepts a message only from the iframe window, from the right origin and with the right game identifier.

The contract is documented as a draft that is only verified against one game so far. The notes say not to advertise automatic joining for any game until it has been tested with two real players, and they say to treat a room parameter as supported only when a game’s creator has demonstrated it. That conservatism is a feature: the platform lists what has been verified and nothing more.

Two paths exist for building a compatible game. The first is to start from the Nodal Strike multiplayer template, which already implements the room API, embedding and messages and comes with a guide for adding modes such as capture the flag, domination, zombies, battle royale and vehicles. The second is to give a coding agent the contract and ask it to add the integration to an existing game. A packaged agent skill for this is planned, but the notes are clear that it should be built only after a working multiplayer pilot proves the contract, rather than guessing at API methods.

Nodal Play version 0.1 launch end card
The version 0.1 launch card. The same short link appears in the launch post and the stream descriptions.

Safety and identity design

The library

The catalog holds a handful of games, each with a clear note on what it supports. The owned multiplayer game is Nodal Strike. Blunder Blender is a single-player prototype hosted on a separate game origin. The Game of Life simulation (the ChatGPT version, described on the Game of Life page) is listed as an external single-player entry, and a few independent games from other creators appear with links to their own sites. The platform does not claim automatic joining for any of those. When the library has only a few entries, the honest framing is the right one: it is a young arcade with one flagship multiplayer game and a clear way to add more.

Under the hood

The front end is a single-page app; rooms, votes and presence are stored in a hosted database with realtime updates, and the games and the platform are served as static assets and workers on Cloudflare. Live rooms use public presence records and a trigger-maintained vote count, which makes updates cheap. The documentation lists the checks that were run before launch: database tests, a signed-out browser run, mobile layout at 390 pixels with no horizontal overflow, clipboard behavior, a refresh warning when connectivity drops, and an owner-side test of the host controls. It also lists what is not verified yet: a real two-account playthrough of publish, vote, launch and play in the same match. That is exactly the kind of caveat this site repeats instead of hiding.

A sample session

Here is what a typical evening looks like. The streamer opens the arcade, signs in and publishes a room titled for the stream. The invite goes into the stream description and chat. Viewers arrive from the Servers list or the invite, choose a display name or sign in with Discord, and see themselves appear in the room’s member list. The streamer starts a vote between a few multiplayer games, viewers pick, and the streamer approves the winner. Everyone sees the countdown, the embedded game opens, and a match runs. When it ends, the streamer gets a button to vote on the next game or return to the room. No codes were read aloud, and nobody left the page.

Limitations and what is next

Follow progress on the livestream, join the Discord to report a bug, or read the product-side story of the agent tools used to build it on the Nodal site, including AgentBoard, the message board agents used to coordinate this work.