bunpav.com/play now has five free multiplayer browser games — a boxing royale, a co-op wizard survival game, a rocket-cart racer, a paint-blaster shooter and a medieval sword brawler — and every line of them was written with Claude Opus 5.5 in Claude Code. No download, no account while it's in testing, up to 10 players per room, bots to fill the gaps.
They sit squarely in the friendslop genre (more on the trend): cheap, chaotic, replayable games whose whole point is yelling at your friends. That's also where Claude-built games have been heading since Opus 5 — but most viral demos are single-player, single-file toys. These are networked, server-authoritative and have the boring-but-essential parts too: rooms, matchmaking, reconnects, teams, duels and results you can share.
Splat Squad, recorded straight from the browser: every shot drips paint onto a real floor-coverage map, which also drives the minimap and the turf percentage.
TL;DR — what people are asking
| Question | Direct answer |
|---|---|
| What can I play? | Tape Face Knockout, Hex Horde, Cart Chaos GP, Splat Squad, Tape Knights |
| Is it free? | Yes — no download, and guests can play while it's in testing |
| How many players? | Up to 10 per room, with bots and an offline practice mode |
| Can two of us play alone? | Yes — Duel mode (1v1, winner stays on) or co-op in Hex Horde |
| Can I join random people? | Yes — Join any game matches you into a live public room, even mid-match where the game allows drop-in |
| Built with? | Claude Opus 5.5 in Claude Code; Three.js r185 client, Bun WebSocket server |
| Any art assets? | None — geometry and textures are procedural; only the audio is files |
| Sound? | 122 ElevenLabs-generated effects and loops, "funny and loopy" style |
| Mobile? | Not yet — keyboard and mouse |
The five games (with real gameplay)
Every clip below was captured from a live solo session against bots — headless Chrome on a Mac GPU, screencast frames stitched with FFmpeg. Nothing is pre-rendered.
Tape Face Knockout — first-person boxing royale
Everyone's face is photo-taped onto a crash-test dummy and dropped into one ring; last dummy standing wins. Jabs, crosses, charged haymakers, blocks, dodges and taunts, with ring-outs when your health is low. Power-ups (mega gloves, a pepper speed boost, rubber chicken), combos, KO streaks and a slow-mo "final showdown" when two remain. Three arenas: neon arena, rainy rooftop, sunset beach.
Hex Horde — co-op wizard horde survival
A first-person, co-op take on the Brotato loop: survive timed waves, grab gems, buy chaotic upgrades between waves, revive downed friends, and pop King Gloop on the final wave. Pick fire, frost or storm; nova, blink and a charged ultimate sit on cooldown tiles.
Cart Chaos GP — rocket shopping-cart racing
Kart racing with rocket-bolted shopping carts: drift for three tiers of mini-turbo, throw banana peels, fire homing rubber ducks, and pick from five procedurally built tracks (parking lot, rooftops, mall, sunset boardwalk, frosty freezer lot). Team races score by position.
Splat Squad — paint-blaster shooter
Shown at the top of this post. Over-the-shoulder paint shooting where every shot also drips ink along its path, so the floor genuinely fills with each team's colour. Weapon pads hand out a paint shotgun and a bubble bazooka; painting and hitting charge a Splashdown special on F. Free-for-all or Red vs Blue on a bright seaside plaza or an indoor warehouse.
Tape Knights — medieval sword brawler
The newest one, and the most mechanical. Eight weapons (longsword, battle axe, mace, spear, warhammer, flail, dagger, rubber chicken) each with their own damage, reach, speed and guard behaviour. Click to swing — flick the mouse to choose the direction — hold to charge a heavy, hold right-click to block, and start a block just before a hit for a perfect parry that leaves your attacker dizzy. Kicks break guards, Space dodges with invulnerability frames, Q throws your weapon and E grabs another off the racks. Spike traps cycle in a torch-lit courtyard.
What makes them "friendslop" and not tech demos
The one-prompt game wave proved Claude can make something playable. The gap between that and something people come back to with friends is mostly social plumbing:
| Feature | What it does |
|---|---|
| Rooms + codes | Create a room, share a 5-letter code, the host picks any game and its settings |
| Join any game | Matchmaking finds the best public room (lobby or drop-in-able match), or opens one that starts itself |
| Drop-in / spectate | Join a running Splat Squad, Hex Horde or Tape Knights match mid-game; watch the others until next round |
| Teams | Red vs Blue with a shuffle button, supported in the versus games |
| Duel mode | 1v1, everyone else watches, winner stays on — solo duels a bot |
| Taped faces | Upload a photo and it's duct-taped onto your character in every game |
| Share moments | Auto-recorded highlight clips, 1080×1350 share cards and funny end-of-match awards |
That list is what took the most iteration — and it's the part most "Claude made a game" posts skip.
How it's built
The stack is intentionally boring where it matters and ambitious where it shows.
| Layer | Choice |
|---|---|
| Rendering | Three.js r185, ACES tone mapping, HDR bloom, custom grade pass, instanced crowds and particles |
| Assets | Zero image or model files — procedural geometry and canvas textures |
| Multiplayer | Transport-agnostic room hub + Bun WebSocket server; the same hub runs in-browser for solo practice |
| Netcode | Client-predicted movement, server-authoritative combat, ~110 ms lag compensation for hits, snapshot interpolation |
| Audio | 122 ElevenLabs-generated SFX and music loops from a per-game prompt manifest |
| Testing | Headless balance simulations per game + headless-Chrome playtests with screenshots and video |
| Code size | ~29,700 lines of TypeScript (≈9.1k shared/server, ≈20.6k clients) |
A few details worth stealing if you're building something similar:
- One game module interface. Each game is a server module (
createMatch,onMessage,tick, optionaladdPlayerfor drop-in) plus a client module (onboarding, lazy-loaded view, results panel). Adding the fifth game didn't touch the room code. - Run the server in the browser for solo. The room hub has no runtime-specific APIs, so offline practice is the real server running behind an in-memory transport — one code path to debug.
- Simulate before you playtest. Every game has a headless script that runs a full bot-only match on a fake clock and prints the event counts and result. Balance problems (matches ending in 40 seconds, bots bonking walls 38 times) showed up there first.
- Let the model see the game. The biggest quality jumps came from screenshot loops: headless Chrome captures a frame, the model looks at it, and fixes what's wrong — overexposed skies, a camera clipping behind a wall, a HUD that was unreadable over bright skylights.
Where Opus 5.5 needed steering
It wasn't flawless, and the misses are instructive:
- Animation sign errors. The first Tape Knights build rotated arms the wrong way on one axis, so swings happened behind the hip. The fix was trivial once the player said "the hand is never lifted"; spotting it from code alone didn't happen.
- Lighting by feel. Several scenes shipped washed out on the first pass. Every one was fixed by looking — iterate on screenshots, not on numbers.
- Deploy plumbing. Adding a new workspace to the monorepo broke a frozen-lockfile Docker build because the Dockerfile copied each workspace's
package.jsonby hand. Caught from the build log, fixed in one line — but only after a failed deploy. - Mechanics by description vs. by feel. Bots that "block and parry" in code still needed tuning once watched in motion — reaction windows and aggression were set from playtests, not first drafts.
If you want the same workflow, the Opus 5.5 prompting guide and the improvement-list technique cover most of what made this work: short, concrete feedback ("the camera flips when I drift"), screenshots, and one change at a time.
Try this prompt for your own game
Build a browser multiplayer party game in Three.js with a server-authoritative
Bun WebSocket backend. Players join a room by code; the host starts the match.
Clients predict their own movement; the server owns hits, damage and scoring,
and sends 30 Hz snapshots that clients interpolate. Add bots that fill empty
slots, a headless simulation script that runs a full bot match on a fake clock,
and a results screen with 3–5 funny awards. No image assets — procedural
geometry and canvas textures only. After each feature, take a headless-Chrome
screenshot and fix anything that looks wrong before moving on.
Honest limitations
- Desktop only for now — pointer lock and keyboard controls.
- Testing phase — guests are allowed; rooms may be restarted during deploys.
- Bots are good, not great. They block, parry, dodge and grab weapons, but they're tuned for chaos, not esports.
Recap
Five free browser party games, one shared multiplayer backbone, zero art files, and a lot of screenshot-driven iteration with Claude Opus 5.5. Play them at bunpav.com/play — hit Join any game and you'll land in whatever's live.
Related reading
- Claude Opus 5 games go viral — browser worlds and WebGPU craft
- Top 10 Claude Opus 5 game prompts
- The improvement-list technique for cozy game prototypes
- Claude Opus 5.5 launch: benchmarks and pricing
- Claude Opus 5.5 prompting guide
- Opus 5.5 showcase: top use cases
- How Claude writes its own video renderer code
- img2threejs: procedural photo-to-Three.js on bunpav
- WebGPU complete guide · HTML canvas complete guide
Game features, player counts and code sizes are accurate as of September 25, 2026; the games are in active development.
