The community creates. The community plays. Codex ships.

A Twitch community has ideas worth playing. Chat Ships It is a game-creation studio for streamers and their communities. A creator describes a starting game. Codex builds it. The community helps shape what happens next.

How it works

The creator chooses a shooter, survival, or collection game and describes its world. Supported themes include space, ocean, garden, and neon, with ship, submarine, bee, and orb avatars. Codex generates a playable blueprint. The creator tries a private preview and publishes it.

The bee garden in the film is one example a creator can make. In that example, viewers open a player link, choose guest names, and collect nectar together toward one shared goal.

Twitch chat proposes the next change with !mod. Viewers vote with 1, 2, or 3. The streamer approves the winner. Codex writes an actual TypeScript rule file. Four checks run. The game adopts the winning rule. In the multiplayer garden example, the change reaches every connected bee in the same room. Rollback preserves the shared round and its progress.

A creator sets the starting world. Chat supplies the next idea. Each round gives the channel a game and a story it helped create.

How we built it

Chat Ships It service architecture with Twitch and OpenAI Codex icons

View the full-resolution diagram

Codex helped implement the application, Twitch EventSub connection, game creator, shared simulation, interface, validation pipeline, tests, and film tools. We evolved an individual game session into cooperative play so the community could experience its own changes together.

Codex also runs inside the finished product. The Codex SDK generates starting games and approved live patches. Gemini screens chat proposals into neutral specifications and checks display text.

Generated TypeScript exports a declarative object. A literal-only AST parser, strict schema, deterministic simulation, and validation budget check it before the reviewed engine applies its rules. The server owns movement, entities, collisions, scoring, and time.

What works

Prompt-based game creation across three engines and four themes. Private preview, publish, and discard. A cooperative bee garden example with keyboard and touch controls, one team score, and one clock. Real Twitch proposals and voting. Streamer approval. Live Codex generation, visible build activity, four checks, and rollback. Guest player and spectator views. Persisted published worlds and credential-free rehearsal.

The server simulates at 20 ticks per second and broadcasts snapshots at 10 frames per second. Inputs contain bounded directions and sequence numbers.

The proof

The recorded Rainbow Nectar patch shipped in 23.751 seconds. All four checks passed. Integration verification confirmed patching and rollback preserved the shared round, three connected player IDs, score, team target, and remaining time. All 21 automated tests pass.

The film demonstrates a creator-made garden collection game. It uses three clearly labeled scripted clients on the actual multiplayer server, real Twitch messages, and one owner-account vote in a controlled demonstration. The build wait is condensed and labeled. Narration was generated with Gemini and the original instrumental score with Lyria.

Main Codex build session: 01a1726e-fe77-78e0-a787-399855bb9955.

Try it

Clone the repository, install Node 22 or later and the pinned package manager, then run pnpm install, pnpm build, and pnpm test.

On Windows, run try-multiplayer.cmd. It loads a reviewed garden without credentials. Open http://127.0.0.1:4312/ for the owner desk and http://127.0.0.1:4312/?view=play in multiple tabs. Choose different names and join. Start the shared round from the owner desk. Use WASD, arrows, or touch to gather nectar. Compare the same score and clock across players.

For live Codex creation and Twitch voting, follow docs/SETUP.md. Multiplayer architecture and verification are documented in docs/MULTIPLAYER.md.

Current scope

Shared multiplayer supports the garden collector with a bee avatar. Other game engines run solo. Guest names are unverified. Round progress lives in server memory. The room allows 24 seats; concurrent verification exercised three players. Remote viewers need a reachable hosted address. The demonstration runs locally. Audience turnout and production-scale load testing remain unmeasured.

Built With

Share this project:

Updates

Submission history