Blog5 min read

What is The Living World?

Persistent, server-authoritative and built on old-school rules. The three pillars behind the game, and why it lives in a browser.

The Living World is a browser-based fantasy game with three commitments. It is persistent. It is server-authoritative. And it plays by old-school rules. Everything we build is checked against those three.

Pillar one: persistent

When you log out, the world does not pause. Your character is stored in a database with its class, race, level, experience, six ability scores, hit points, armor class, THAC0 and honor. The next time you log in, it is the same person, standing where you left them.

Persistence is also what gives the game its name. The towns are shared spaces, and the monsters and the guards keep running whether or not you are looking at them. A world that remembers you feels different from a lobby that deals you into a match. We are building the former.

Pillar two: the server decides

The client is a Babylon.js 3D scene. The server is a Colyseus room that owns the truth. When you swing a sword, your browser sends one thing: the intent to attack a particular target. The server checks that the target is in range, that your weapon is off cooldown and that you are alive. Then it rolls the dice, applies the damage and tells everyone nearby what happened.

The client does not get a vote on hit points, position or combat. This matters for a few reasons.

  • Fair dice. Nobody can edit their rolls, because the rolls never leave the server.
  • No instant revival. Death used to be a client-side timer. We moved it to the server, so there is no way to skip the wait.
  • Areas of interest. The server only streams you what is near you, which keeps the game light as the population grows.

It also constrains how we make content. The world itself is data: towns, buildings, characters and portals are described in validated files that refer to art by stable keys. The engine that turns data into a scene stays generic. If a typo points at a model that does not exist, the build fails immediately and loudly, which is the right time to find out.

Pillar three: old-school rules

We use the second-edition Advanced Dungeons & Dragons toolkit, and we use it faithfully.

  • Ability scores are rolled with 4d6, dropping the lowest, and the modifiers come from the book’s tables. Strength adds to hit and damage, Dexterity improves armor class, and Constitution adds hit points per level, with a bigger bonus for warriors.
  • Armor class is descending. An unarmored character is AC 10, and lower is better. A very dexterous hero can dip below that.
  • THAC0, “To Hit Armor Class 0”, is the number you need on a d20 to hit something with AC 0. Warriors start at 20 and improve by one each level. The next post walks through the math.
  • Levels are capped at 10 for now, with experience curves that differ by class.
  • Hit dice vary: d12 for barbarians, d10 for fighters and rangers, d6 for rogues, and d4 for mages.

We have simplified some things, honestly. Races change your stats and your visible size, but any race can play any class. Our experience curve is gentler than the printed one. We name the changes because the goal is the feel of those rules, not a museum copy.

Why AD&D numbers?

Because small numbers are readable. In a modern action game you rarely know why a hit landed. Here, a hit is a d20 against a target number you can work out in your head, and damage is a weapon die plus a small bonus. When you miss, you can tell it was bad luck and not a hidden formula. A fighter with a d8 sword and a plus-one damage bonus is a character you can reason about, and rolling an eight on a die feels like something.

Small numbers also make progression honest. One point of THAC0 is five percent more hits. It is visible and it is felt.

Why a browser?

Because the barrier to entry decides who plays. A link is easier to share than an installer. A browser tab works on a laptop at lunch and on a desktop at home. The 3D scene, the HUD and the inventory are all drawn in the page, and the authoritative server does the work that has to be trusted.

The tradeoff is that a browser is an open door. Anyone can open the developer tools, which is the strongest argument for pillar two. We assume the client is hostile and we design the server so that it does not matter.

What we are not

We are not trying to replace the tabletop game, and we are not cloning a famous MMO. We are making a small, readable world with real dice in it, and then letting it grow. If that sounds like your kind of place, read the welcome post and come and play.

By The Living World team