Defend the Bed
Every team spawns on its own island with a physical bed at the base. Keep it standing and all four team colours can answer back — fall, and you respawn after a 5-second countdown for as long as the bed survives.
bedwars-multiplayer is a high-performance, multiplayer, web-based Bedwars game modeled exactly after the core mechanics of Minecraft Bedwars. It is built for smooth 60FPS browser performance and "zero-lag" server state syncing, using an authoritative server-client architecture over WebSockets with delta compression and client-side interpolation/prediction.
The product is a competitive voxel PvP experience: players enter a lobby, are automatically grouped into teams (Solo, Doubles, or 4v4v4v4 across Red, Blue, Green, and Yellow), are teleported to team islands when the lobby fills, and fight to break enemy beds while defending their own. It adds a server-side anti-cheat validation suite (movement, hit-register, and interaction verification) and a persistent global leaderboard and player progression system backed by Redis Sorted Sets and long-term persistent storage.
The audience is teens and young adults who grew up on Minecraft Bedwars, streamers, and drop-culture players who expect a streetwear-confident, kinetic, skill-flexing competitive game — not a corporate SaaS dashboard.
bedwars-multiplayer delivers a browser-played, server-authoritative multiplayer Bedwars game. The frontend renders the game world with React or Next.js paired with HTML5 Canvas or lightweight Three.js WebGL block meshes, avoiding DOM-node lag. The backend is Node.js/TypeScript deployed in the managed Kubernetes namespace, holding short-term session state in memory or Redis for sub-millisecond game loop updates and long-term player records on the native persistent storage volume.
Actors. The active human personas are the Bedwars Player and the Leaderboard Viewer. The system also includes non-persona actors: the authoritative game server (Node.js/TypeScript), Redis (session state and leaderboard ZSET), the native persistent storage volume (long-term player records), and the automated security scanner (build-time gate).
Accepted behavior. Players establish a persistent profile, enter the lobby, are auto-grouped into teams, and are teleported to team islands when the lobby fills. In-match they collect spawned Iron/Gold/Diamond/Emerald, buy from the Item Shop NPC and Team Upgrade NPC, break enemy beds, fight with swords and knockback sticks, and respawn on a 5-second countdown while their bed is intact. The server validates movement, combat, and interaction packets. Persistent profiles log Wins, Kills, Beds Broken, Games Played, and Level/XP, and a Redis ZSET-driven global leaderboard shows the top 100 players filterable by Wins, Beds Broken, and Kills alongside a personal lifetime statistics overlay.
Exclusions. No adjacent account-management capabilities beyond self-service enrollment and returning verification; no team chat, friend lists, or social features; no cosmetic marketplace; no spectator mode; no mobile-native client.
Removed from scope
The product is delivered as a first-party web application. Anonymous visitors reach the Landing page, which explains the multiplayer web-based Bedwars game, its core mechanics, and who it is for. Because persistent player profiles, lifetime statistics, and match participation are application-owned durable state, players establish identity through Sign Up (self-service enrollment) and returning players verify through Login. The Lobby, Leaderboard, Match, Item Shop, and Team Upgrades surfaces require login.
The authoritative game server owns all match state: movement validation, combat resolution, block placement/breaking, resource spawning, bed state, respawn/elimination, and stat recording. Redis holds short-term session state and the leaderboard ZSET; the native persistent storage volume holds long-term player records. The frontend renders and predicts but never authoritatively decides outcomes.
Every agentic code pass runs through the automated security scanner to guarantee secure, unprotected API-free WebSocket routes. The Project Manager Agent breaks the work into a sprint plan covering UI/Canvas setup, WebSocket connection, Gameplay Logic, Anti-Cheat loop, and Leaderboard processing. These are build-time and delivery-time obligations, not player-facing product behavior.
FR-1 (explicit). As a Bedwars Player, I should play a multiplayer web-based Bedwars game modeled on the core mechanics of Minecraft Bedwars, rendered with React or Next.js plus HTML5 Canvas or lightweight Three.js WebGL block meshes.
FR-2 (explicit). As a Bedwars Player, I should experience an authoritative server-client architecture over WebSockets with delta compression and client-side interpolation/prediction for responsive movement, block-breaking, and combat.
FR-3 (explicit). As a Bedwars Player, I should have the backend run on Node.js/TypeScript deployed in the managed Kubernetes namespace, with short-term session state in memory or Redis for fast game-loop updates and long-term player records on the native persistent storage volume.
FR-4 (explicit). As a Bedwars Player, I should be automatically grouped into teams (Solo, Doubles, or 4v4v4v4 across Red, Blue, Green, and Yellow) and teleported to team islands when the lobby fills.
FR-5 (explicit). As a Bedwars Player, I should see timed resource spawners produce Iron and Gold at base islands and Diamond and Emerald at neutral middle/side islands.
FR-6 (explicit). As a Bedwars Player, I should open an Item Shop NPC interactive visual menu where I trade Iron/Gold for weapons, blocks (wool, wood, obsidian), tools (shears, pickaxes), and armor.
FR-7 (explicit). As a Bedwars Player, I should open a Team Upgrade NPC interactive menu where I trade Diamonds for permanent team buffs: Sharpened Swords, Reinforced Armor, Haste, and Traps.
FR-8 (explicit). As a Bedwars Player, I should see each team has a physical Bed on its island; while intact, team members respawn infinitely after a 5-second countdown, and once an enemy breaks the bed, respawning is permanently disabled for that team.
FR-9 (explicit). As a Bedwars Player, I should experience real-time hit registration, damage calculations, and visual velocity knockback when striking an enemy with swords or knockback sticks.
FR-10 (explicit). As a Bedwars Player, I should have the server validate movement packets with strict speed and coordinate tracking, rejecting movement exceeding maximum possible walking/knockback velocity (Fly Hack and Speed Hack protection).
FR-11 (explicit). As a Bedwars Player, I should have the server validate combat packets, rejecting hits beyond a strict maximum block reach or with line-of-sight obstructed by solid blocks (Reach and KillAura protection).
FR-12 (explicit). As a Bedwars Player, I should have the server verify click rates (CPS checks) and only allow block placement or breaking when I am within interacting range and possess the matching tool in my active server-side inventory.
FR-13 (explicit). As a Bedwars Player, I should have individual player profiles persist across sessions, logging total Wins, Kills, Beds Broken, Games Played, and current Level/XP.
FR-14 (explicit). As a Leaderboard Viewer, I should see a real-time global leaderboard driven by a Redis Sorted Set (ZSET) that instantly pulls and displays the top 100 players globally, filterable by Wins, Beds Broken, and Kills.
FR-15 (explicit). As a Leaderboard Viewer, I should see the main lobby include a clean, visual Leaderboard menu showing global rankings alongside an overlay summarizing my personal lifetime statistics.
FR-16 (explicit). As a Bedwars Player, I should see visuals using a clean, high-fidelity voxel or styled low-poly aesthetic mimicking Minecraft with modern web lighting, particle effects on block destruction, and smooth camera transitions.
FR-17 (explicit). As a Bedwars Player, I should see a real-time, scannable HUD showing current player inventory, team bed status (Alive/Broken/Eliminated), a match timer, and kill feeds.
FR-18 (explicit). As a Bedwars Player, I should hear sound effects for block breaking, purchasing items, bed destruction, and combat impacts.
FR-19 (required_inference). As a new player, I should self-service enroll to establish a persistent player profile.
FR-20 (required_inference). As a returning player, I should verify my identity before entering the protected lobby and match.
FR-21 (required_inference). As a Bedwars Player, I should have an authoritative server session established over WebSockets before match participation.
FR-22 (required_inference). As a Bedwars Player, I should have Redis-backed session state and leaderboard ZSET available for live match and rankings.
FR-23 (required_inference). As a Bedwars Player, I should have the native persistent storage volume available for long-term player records.
Muse: Virgil Abloh. Headline: "BEDWARS" — the game is a product launch, the lobby is a drop, the match is a head-to-head battle.
Palette (dark mode):
#0E0E0E#1A1A1A#F4F1EA (12:1 contrast at body size)#FF5A00 (safety orange — primary CTAs, kill-feed hits, bed-broken alerts, highlighted team)#FFD400 (hazard yellow — currency gold/diamond, hover states)#7A7A7A (metadata, timestamps)#2A2A2A#E23A3A, Blue #3A7DE2, Green #3FCB68, Yellow #FFD400Typography:
clamp(56px, 12vw, 148px). HUD micro-labels 11px uppercase, +0.14em tracking.Shape language: Hard 0px corners on all panels and buttons except the primary CTA which gets a 2px offset shadow (deliberate print misregistration). Hazard-stripe dividers (45° repeating-linear-gradient of #FF5A00 and #0E0E0E at 12px pitch) between major sections. Exposed grid lines as 1px #2A2A2A rules. Every card carries a small uppercase tag in the top-left corner like a garment label. Buttons are rectangular with a 1px #F4F1EA border and a 4px hard offset shadow in #FF5A00 on hover.
Layout: Asymmetric 12-column grid with type allowed to break the grid. Lobby is a full-bleed composition: oversized "BEDWARS" headline locked to the left edge, hazard-stripe band cutting diagonally across the top-right, mode-select cards stacked as overlapping label-and-tag arrangement. Match HUD is a strict 3-zone layout: left = team bed status column, centre = match timer + kill feed, right = inventory strip. Shop and Team Upgrade open as full-height right-side drawers with hazard-stripe header and 3-column item grid where each item is a label card. Leaderboard is a single full-width table with tabular numerals, filter pills as rectangular tabs, and a personal-stats overlay that slides in from the bottom as a sticker-style panel with a rotated -2deg tag.
Imagery: Voxel/low-poly Minecraft-style block renders treated as product photography: a single isometric bed block on concrete-grey ground with hard directional light, an emerald and diamond crystal macro shot, a wool-block stack in team colours. All imagery desaturated to industrial grey with one saturated accent object per frame. No stock people, no gradient blobs, no glass panels. Texture overlays: subtle concrete grain, construction-tape stripes, halftone dots on the display headline.
The public entry (Landing) is a full-bleed near-black ground split by a diagonal hazard-stripe band from top-right to centre-left. The dominant element is the word "BEDWARS" set in Anton at clamp(56px, 12vw, 148px), flush-left, with opening and closing quotation marks rendered in safety-orange and the letters in off-white — the headline spans the viewport and slightly overflows the right edge behind the stripe. Beneath it, a single isometric voxel bed render sits on a concrete-grey plinth with a hard cast shadow, lit by one orange rim light. To the right, a vertical stack of three rectangular mode cards ("SOLO", "DOUBLES", "4v4v4v4") each tagged with a small label and a team-colour chip row. Bottom-left: a hard rectangular "PLAY" CTA with a 4px orange offset shadow and a monospace player-count readout ("2,481 ONLINE"). No centred headline, no blue button, no gradient.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: flat
Landing Hero Motion Brief
#FF5A00 at 12% opacity plus a hard 2px screen shake.
Competitive voxel PvP in the browser. Own the bed. Break theirs. Trade iron, gold, diamonds and emeralds while the clock runs.
Solo, Doubles and 4v4v4v4 across Red, Blue, Green and Yellow. Defend the bed, break theirs, hold the islands.
Bedwars is five moves on repeat: guard the bed, break theirs, farm the islands, spend it, then push the fight.READ THE LOOP // THEN PICK A MODE BELOW
Every team spawns on its own island with a physical bed at the base. Keep it standing and all four team colours can answer back — fall, and you respawn after a 5-second countdown for as long as the bed survives.
Destroy the bed on an opposing island and that team loses respawns for good. Wipe the squad once and they are out of the match.
Timed spawners drop Iron and Gold at your base island. Diamond and Emerald generators sit out on the neutral middle and side islands — the trip is a risk worth taking.
The Item Shop takes Iron and Gold for weapons, blocks, tools and armour. The Team Upgrade NPC takes Diamonds for permanent buffs: Sharpened Swords, Reinforced Armor, Haste and Traps.
Real-time hit registration with damage and velocity knockback. Send rivals off the edge with a sword or a knockback stick, then rebuild the bridge and push the next island.
Mode select / lobby
Every match fills team by team across Red, Blue, Green and Yellow islands. Pick the squad size you want to queue with.

Competitive voxel PvP in the browser. Own the bed. Break theirs. Trade iron, gold, diamonds and emeralds while the clock runs.
Solo, Doubles and 4v4v4v4 across Red, Blue, Green and Yellow. Defend the bed, break theirs, hold the islands.
Bedwars is five moves on repeat: guard the bed, break theirs, farm the islands, spend it, then push the fight.READ THE LOOP // THEN PICK A MODE BELOW
Every team spawns on its own island with a physical bed at the base. Keep it standing and all four team colours can answer back — fall, and you respawn after a 5-second countdown for as long as the bed survives.
Destroy the bed on an opposing island and that team loses respawns for good. Wipe the squad once and they are out of the match.
Timed spawners drop Iron and Gold at your base island. Diamond and Emerald generators sit out on the neutral middle and side islands — the trip is a risk worth taking.
The Item Shop takes Iron and Gold for weapons, blocks, tools and armour. The Team Upgrade NPC takes Diamonds for permanent buffs: Sharpened Swords, Reinforced Armor, Haste and Traps.
Real-time hit registration with damage and velocity knockback. Send rivals off the edge with a sword or a knockback stick, then rebuild the bridge and push the next island.
Mode select / lobby
Every match fills team by team across Red, Blue, Green and Yellow islands. Pick the squad size you want to queue with.
No comments yet. Be the first!