██████╗ ██████╗ ███████╗ █████╗ ██████╗ ██╗   ██╗
 ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗╚██╗ ██╔╝
 ██║  ██║██████╔╝█████╗  ███████║██████╔╝ ╚████╔╝
 ██║  ██║██╔══██╗██╔══╝  ██╔══██║██╔══██╗  ╚██╔╝
 ██████╔╝██║  ██║███████╗██║  ██║██║  ██║   ██║
 ╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝   ╚═╝  

A persistent multiplayer roguelike — played in your browser.

One server. One history. No installs. No resets.

Opens in
--
Days
:
--
Hours
:
--
Min
:
--
Sec
Join the community early → Discord
— players online
✦ The Moons Have Been Reconciled ✦

The World

One Server

There is one Dreary. Not an instance — the world. Zones stay dangerous — monsters and bosses respawn, keeping the world alive. What stays permanent: world events, the reconciliation, titles, and history.

Persistent History

62 zones across four world layers: surface, island, underworld, and the twin moons. Day and night pass. Seasons change. Events unfold across the whole world at once.

No Download

Runs entirely in the browser. Three rendering modes: classic ASCII, pixel-font block, and animated sprite — switch anytime from the settings panel. A game that respects your time — pick it up, put it down.

A Real Ending

The world has a story. Somewhere in the deep zones, across the moons, there is an endgame — a single reconciliation that changes the server permanently. It hasn't fired yet.

Classes

Warrior

Durable melee fighter. +2 defense always. Two-handed weapons deal +20% damage. Unlocks battle cries, shouts, and a last-stand shield at higher levels.

Rogue

Stealth and speed. ×2.5 sneak attack multiplier. Cloak cooldown halved. Smoke bombs, poison strikes, and vanishing kills at higher levels.

Mage

Wand magic. +15% wand damage (→ +25% at lv10). Firebolt, frost nova, blink, and rift abilities. Wand recharge costs 20% less at lv20.

Ranger

Pet companion class. +1 bow attack always. Pet gains ¾ XP share. Unlocks eagle eye, rain of arrows, and a second beast companion at lv30.

Cleric

Divine healer. ×1.5 potion healing always. Sacred Ground doubles regen in safe zones. Holy Throw burns undead. Survives one killing blow at lv30.

Necromancer

Undead summoner. Raise one servant to fight beside you. +3 HP on every kill (Death Harvest). Soul Leech and corpse explosion at higher levels.

Full class reference with abilities →

Races

Human

+5% XP from all kills. Human Resolve: a burst of +atk/def that grows and adds a heal at lv24.

Dwarf

+1 base defense always. Stone Skin: up to +7 defense that absorbs one full incoming hit at lv24.

Half-Elf

+1 sight radius always. Keen Sight: extended vision; at lv24, reveals invisible enemies and hazards.

Sylvan Elf

Beasts have −2 detection radius against you. Commune: frighten nearby wildlife or charm one beast as a temporary ally at lv24.

Dark Elf

+1 attack during night, dusk, and dawn. Fade: brief stealth that delivers +5 burst damage on the first strike after emerging at lv24.

Full race reference with ability tiers →

Adventurers

Loading…

What's New

From the World

Recent Events

What Adventurers Say

Leave your own: type /review your message in game  ·  anonymous option: /review anon your message

The Story Behind It

Dreary started as a question: can one person, working with Claude, build a production multiplayer MMORPG? Not a prototype — a real, persistent world with quests, lore, bosses, factions, seasons, and a story.

The answer turned out to be yes. Two months. One human, one AI, 36 deep review passes, and a SQLite database that holds the entire history of a world no one has visited yet.

"The reconciliation fires once and stays. No resets, no seasons, no parallel servers. The server closing someday is the end of the story."

Everything here was written, reviewed, and argued over in conversation. Over 249 quests, the Keeper's hidden backstory, the undead player arc, the world events, the liminal death system — all of it built turn by turn.

This is what AI-assisted development can produce. Not a tech demo — a game with a soul.

Under the Hood

Runtime
Node.js — no framework, no ORM, no build step
Network
WebSockets — 4 Hz server-authoritative tick loop
Storage
SQLite via better-sqlite3 — entire world in one file
Client
Vanilla JS — ASCII renderer + sprite mode, no React
World
62 zones · 249 quests · 30 world events · 6 classes · 5 races
Built With
Claude (Anthropic) — architecture, code, lore, review

Credits & Thanks