Your island is your base
Spawn with your team on your own floating island. Build bridges, fortify the approach and hold the line while your generator fills.
bedwars is a browser-playable, 3D multiplayer Bedwars game inspired by Minecraft Bedwars. Players enter a live voxel arena, fight alongside teammates against real human opponents, defend their team's bed, gather resources, buy items and upgrades, and try to be the last team standing. The product intent is to deliver the core Bedwars gameplay loop — team islands, resource generators, an item shop, bed destruction, and last-team-standing victory — as a real-time 3D experience in the browser, with matches populated by real players rather than bots.
The audience is competitive and social players (roughly ages 10–25) who expect a Minecraft-adjacent block world but a more premium, cinematic presentation than a typical fan server. They arrive to play with other real people: to join a lobby, ready up with teammates, and step into a live arena where the outcome depends on human opponents and allies.
This document is the System Requirements Document for the product; it specifies the game's features, workflows, personas, pages, and delivery boundaries.
bedwars is delivered as a browser application with a custom first-party UI and application-owned player identity. The current delivery comprises:
Actors. The active human personas are the Bedwars Player and the Match Host / Lobby Creator. The game server and real-time match simulation are system actors that execute accepted gameplay; they are not personas.
Ownership. All accepted human-facing behavior is owned by first-party custom pages. Real-time match simulation, resource generation, and match-end determination are system processes that support the human interaction on the Match page.
Narrow exclusions. Matches are multiplayer with real players, not bots. The product is a 3D browser game; it is not a native desktop or mobile application.
Removed from scope
bedwars is a first-party browser game. The application owns player identity: a visitor can enroll through self-service sign-up or verify an existing identity at login, and that identity carries their lobby membership and match participation across sessions. The Landing page is anonymously reachable and explains the game and how to begin; the Lobbies, Lobby Details, Match, and Match Results pages require a verified player identity.
The current horizon covers the complete playable loop: entry, enrollment/verification, lobby browsing and creation, lobby readiness and match start, the live 3D match, and match results. Real-time match simulation and resource generation run as system processes behind the Match page; they are not separate human-facing destinations. No future-horizon features are currently accepted.
FR-1 — 3D browser game (explicit) As a Bedwars Player, I should play a 3D Bedwars game inspired by Minecraft Bedwars in my browser, so that I can experience the block-world arena without installing anything.
FR-2 — Multiplayer with real players (explicit) As a Bedwars Player, I should play matches populated by real players rather than bots, so that competition and teamwork are genuine.
FR-3 — Team competition and bed destruction (explicit) As a Bedwars Player, I should compete in teams to destroy opposing teams' beds and eliminate opponents, so that my team can be the last one standing.
FR-4 — Resource gathering and spending (explicit) As a Bedwars Player, I should gather resources and spend them on items and upgrades during a match, so that I can strengthen my team's position.
FR-5 — Match end and winning team (explicit) As a Bedwars Player, I should see the match end when one team remains and be shown the winning team, so that the outcome is clear.
FR-6 — Self-service enrollment (required_inference) As a new player, I should enroll through self-service sign-up, so that I can establish a durable identity and join lobbies.
FR-7 — Returning verification (required_inference) As a returning player, I should verify my identity at login, so that I can rejoin my lobbies and matches.
FR-8 — Authenticated lobby membership (required_inference) As a Bedwars Player, I should be a member of an authenticated lobby before joining or starting a match, so that matches are formed from real, identified players.
FR-9 — Lobby creation and hosting (required_inference) As a Match Host / Lobby Creator, I should create a lobby and start the match once participants are ready, so that real players can play together.
Muse: Gleb Kuznetsov. Headline: "DEFEND THE BED. BREAK THEIRS."
Mode: Dark.
Colour tokens (exact hex by role):
#08090F (dominant ground, ~70% of screen)#11131C (floating glass panels at 60–80% opacity)#ECEFF6 (body copy)#22E0C8 (electric cyan-teal; CTAs, live indicators, focus rings, HUD strokes, ~10%)#FF3D7F (hot magenta; rivalry/opposing-team moments, bed-destroy alerts, enemy team colour, ~8%)#6C7385 (secondary labels)#F5C451#22E0C8 at 15% opacity, 1px luminous edgesTeam identity: cyan-teal (#22E0C8) for your team vs magenta (#FF3D7F) for the enemy, plus warm gold (#F5C451) for resources/upgrades.
Typography:
Shape language: Thin luminous strokes (1px, 15–30% cyan), floating glass panels with 12–16px radii and a 1px light top edge, radial and circular HUD gauges (team readiness rings, resource dials), soft glow bloom around arena edges, and hard-edged rectangular data strips contrasting with rounded panels. No soft blobby cards; no drop shadows for depth — depth comes from blur, glow, and layered opacity.
Layout: Full-bleed 3D arena scene as hero backdrop with a floating HUD frame: top status rail (live player count, server region, ping), left-aligned oversized headline panel, bottom-left team roster strip, bottom-right CTA cluster. Below the hero, a strict 12-column grid with 96px vertical rhythm; each section reads like a HUD panel docked to the grid. Lobby and match pages reuse the same HUD frame.
Imagery: The 3D block arena itself — a Minecraft-scale voxel island rendered in Three.js with emissive team wool, glowing beds, floating resource islands, and a starfield void. Macro product-style renders of blocks (bed, wool, iron, diamond, obsidian) as isolated floating objects with volumetric rim light. No flat clip art, no stock people, no gradient blobs.
Avoid: White or near-white grounds; blue-indigo (#0057FF/#2563EB/#4F46E5) as primary accent; centred headline + subtext + button SaaS hero; gradient-blob backgrounds or identical hover-lift card grids; Inter, Roboto, Arial, Poppins, or system-ui for headings or body; flat clip art or stock photography of people; bouncy or playful spring easing; presenting or linking to the planning/SRD document anywhere in the UI.
The public entry is a full-viewport dark void (#08090F) with a hand-built voxel Bedwars arena floating in it, slowly orbiting under a volumetric spotlight. The arena is the dominant element, occupying the right two-thirds and bleeding off the right and bottom edges. On the left, an oversized Space Grotesk headline "DEFEND THE BED. BREAK THEIRS." is set at clamp(56px, 8vw, 128px), flush-left, stacked in three lines over the void with a thin cyan rule above it. Beneath the headline, a compact live-status strip ("1,284 PLAYERS IN 96 LOBBIES") with a pulsing cyan dot, and two CTAs: a solid cyan "Enter the arena" and a glass-bordered "Join a lobby". HUD micro-labels in 11px uppercase cyan float at the arena's corners (team tags, resource counters) as if the scene is being observed through a game client. No centred layout, no subtext paragraph, no blue button.
Interaction Model: Parallax Motion Tempo: cinematic Hero Dimensionality: webgl
A single crafted real-time voxel Bedwars arena floating in a dark void: team islands with emissive cyan-teal and magenta wool, glowing beds, floating resource islands, and a starfield void, lit by a volumetric spotlight and slowly orbiting. The scene shows the product's defining state — a live multiplayer arena — and is the hero subject of the Landing page.
prefers-reduced-motion by freezing the orbit to a composed still frame and disabling sweeps while keeping the HUD readable.
Initializing arena
1,284Playersin96LobbiesLive
Four teams, four islands, one void between them. Gather what your generator gives you, spend it in the shop, cross the gap, and take the other beds before they take yours.
Every match is real players only. No bots fill your team — the arena fills with other humans, and the outcome is decided by them.
Spawn with your team on your own floating island. Build bridges, fortify the approach and hold the line while your generator fills.
Generators on your island produce resources over time. Spend them fast — the shop closes when your bed falls.
Trade resources for weapons, armour, blocks and team upgrades: sharper swords, protection, and faster generators.
Cross the void, reach the enemy island and destroy their bed. Once it is gone, their team can no longer respawn.
Matches end when one team remains. When every rival bed is destroyed and their last player is eliminated, the winning team is shown to everyone still in the arena.

Initializing arena
1,284Playersin96LobbiesLive
Four teams, four islands, one void between them. Gather what your generator gives you, spend it in the shop, cross the gap, and take the other beds before they take yours.
Every match is real players only. No bots fill your team — the arena fills with other humans, and the outcome is decided by them.
Spawn with your team on your own floating island. Build bridges, fortify the approach and hold the line while your generator fills.
Generators on your island produce resources over time. Spend them fast — the shop closes when your bed falls.
Trade resources for weapons, armour, blocks and team upgrades: sharper swords, protection, and faster generators.
Cross the void, reach the enemy island and destroy their bed. Once it is gone, their team can no longer respawn.
Matches end when one team remains. When every rival bed is destroyed and their last player is eliminated, the winning team is shown to everyone still in the arena.
No comments yet. Be the first!