-
-
The title screen. Tick one box, press Wake now, and you are in the world as a hero in seconds: no download, no account.
-
Khar Varos, capital of the Embered Throne, at night. Each nation has its own capital, lands and story.
-
Character creation: four nations, eight races, ten classes. Here a Kitsar of the Wildmark Compact.
-
The broken moon hangs over the whole world. The moon is broken, the gods are lying, and you have woken anyway.
-
Every class has a signature ability. The Shardcaller's Constellations draws stars on the ground and joins them with beams.
-
An Ashkin Pyreborn fighting through the Unrung Chapel, one of five dungeons. Companions fill any empty seat in your party.
-
The 10-player raid at level 60, where every nation fights on the same side: here, the Grand Inquisitor in the Heart of Vael.
-
Your first fight outside Lanternfield. Big attacks are marked on the ground, so you can read them and step out in time.
Inspiration
Most online roleplaying games ask a lot before you get to play: a big download, a launcher, an account, a character creator, sometimes a subscription. A lot of people give up before they ever see the world. I started Orvandel on October 9 to build an MMO that skips all of that and runs in a browser tab, and for this hackathon I used the Devpost Learn skill pack to plan and build the part that matters most for a new player: the first minute.
What it does
Orvandel is a browser MMORPG set under a broken moon. On the title screen you tick one box and press Wake now, and a few seconds later you are standing in a living world as a ready hero: no email, no password, nothing to install. If you like your hero, Keep this hero turns the guest into a full account with the same character, so nothing is lost.
Behind that first minute is the full game: levels 1 to 60, four nations with two races each, ten classes each with its own signature ability, open zones and capitals, a three-chapter story, five dungeons with a Group Finder (companions fill the empty seats, so you never wait for a healer or a tank), and a cross-faction 10-player raid at level 60. Bosses telegraph big attacks on the ground, casts can be interrupted, and a wiki generated from the game's own data covers the classes, nations and story.
Testing it
- Quick look, no account: open https://play.jonathansolvesproblems.com, tick the 16+ box under Wake now, press Wake now. Needs a desktop browser with WebGL 2 (Chrome, Edge, Firefox, Safari 15+); phones are not supported yet.
- Dungeons, the raid and the Proving Grounds are closed to guests. Choose New account, make any character, open Account on the character screen, enter the judge access code under "Have an access code?" and press Redeem, then press Proving Grounds to make a level 60 character of any class. I have sent the access code to the organizers.
- Source code: the repository is private while I keep developing Orvandel after judging. It carries an AGPL-3.0 license, and I will add any judge as a collaborator on request.
How I built it
The game is TypeScript end to end: a Three.js client, an authoritative game server, and shared game data used by both. It runs live on Cloudflare Workers, with one Durable Object per zone and D1 for accounts and characters, and a Node server mirrors it for local development and tests.
For the hackathon feature, Wake Now, I followed the skill pack step by step with Claude Code: a scope, a product spec and a technical spec (in devpost/), then a build checklist of three slices, each verified before the next began. A read-only mapping pass first produced an app map of exactly where guest play touches the code (auth on both servers, the database, the title screen, the client), so the build agent went straight to the right files. Guests are rate-limited, kept out of dungeons and the raid, and cleaned up after 24 idle hours, on both backends, with tests.
Disclosure: the base game (everything before Wake Now) was built from October 9 with Claude Code, before I installed the skill pack. Wake Now is the planned, documented skill pack build. Sound effects, music, base character bodies, animations and terrain textures are CC0 (Kenney, OpenGameArt, Quaternius, Poly Haven). The playable hero models, bosses and painted art were made with AI image and 3D tools; they are listed in the model and art license files and on the wiki's Credits page.
Challenges I ran into
Keeping two backends in step: every guest rule had to behave the same on the local Node server and on Cloudflare's Durable Objects, and one of them, the guest rate limit, only held up once it was stored in the Durable Object instead of memory. Making the first minute fast: click to controlling your hero went from about 14 seconds on the first runs to 7 to 10.5 seconds, faster than a normal sign-in. And making the trailer: recording real fights with the game's own sound turned up a rendering bug on the highest graphics preset, which I recorded around and logged to fix after judging.
Accomplishments that I'm proud of
That everything in the video is the real game: real fights, real dungeons, the real raid, captured from the live client. That a stranger can go from a link to playing in seconds with no account. And that the whole thing, over 500 commits of it, is one person's project that started this month.
What I learned
My goal was to get high-quality output from AI on a large project while keeping token use down. Planning first paid off: one mapping pass of about 137k tokens gave the build agent exact entry points, and the three build slices took about 451k tokens in total, roughly 150k each, compared with 300k to 800k for earlier unplanned feature passes in this project. Counting the mapping pass, it was about 588k for one feature across the whole stack, with every slice's check passing before the next started.
What's next for Orvandel: A Free MMORPG in Your Browser
Fixing the high-preset rendering bug, then opening the beta to more players: more content for each nation, more raid bosses, and gathering feedback from people who arrive through Wake Now.
Built With
- claude-code
- cloudflare-d1
- cloudflare-workers
- css3
- durable-objects
- gltf
- html5
- meshoptimizer
- meshy
- node.js
- playwright
- sqlite
- stripe
- three.js
- trellis
- typescript
- vite
- webgl
- websockets
- wrangler

Log in or sign up for Devpost to join the conversation.