I want to build an RPG world that rewards curiosity. Follow a road, enter a building, ask someone a question, pick up a book: each action should reveal something that belongs there.
For months, I’ve been experimenting with that ambition in The Lower Worlds Online. My reference point is the complexity of Morrowind. That is a direction to work toward, not a claim about what I’ve built so far.
I call the approach fractal generative authoring, or simply fractal authoring: combining procedural algorithms, generative models, and a structured definition of the game so that a world can acquire detail at multiple scales.
The appealing part is easy to describe. You don’t need to author every room, conversation, and possible situation before someone can explore. You can establish a world, preserve its commitments, and develop the relevant parts as play approaches them.
The difficult part is deciding what a new detail is allowed to change.
What I mean by fractal
A world can start with a broad shape. A region has settlements. A settlement has an institution. The institution has people, obligations, resources, and conflicts. Following one person’s story may take you into another settlement or back into the history of the region.
That is more interesting to me than a rigid ladder from continent to room. Geography is only one relationship in the world. A rumor connects people. A guild connects places. A dispute connects a local encounter to something much larger.
“Fractal” is my working name for applying a similar authoring process at these different scales: take what exists, identify what is missing, and refine a bounded piece without losing the surrounding structure. I’m using the word as an authoring metaphor, not claiming mathematical self-similarity.
Consider a hypothetical village built around an old observatory. At first, the world needs enough information to establish the village’s location and purpose. Later, it may need the observatory’s entrance, rooms, residents, and daily work. A conversation could then reveal a dispute over an instrument, drawing in a merchant from somewhere else.
Each refinement should connect to the same observatory. It should add to a persistent place rather than produce another plausible version of it.
A world as code
The foundation is a data-driven schema. Places, people, objects, relationships, and situations become structured records the game can inspect and execute.
That puts a useful limit on what generation can promise. A description of a locked door needs an actual door and a supported way to interact with it. A character offering a reward needs conditions and effects that the runtime understands. Adding a convincing sentence, or an invented JSON field, doesn’t create a new game mechanic.
Procedural systems and generative models have different jobs here. Procedural recipes can supply repeatable structure: geometry, connections, placements, and other details that benefit from explicit constraints. Models can contribute semantic decisions: who lives here, what they want, what they know, and what situations might arise.
The resulting content passes through validation and compilation into the game’s ordinary records. Deterministic rules handle play. A model doesn’t have to reinterpret an already-authored action every time the player takes it.
This is the kind of metaprogramming that interests me: building an authoring system that can expand a design into something executable, while keeping its output inspectable and revisable.
The world that passed the quest and failed the experience
One of the most revealing episodes in the project’s evaluation record is a Reedfall playtest.
The recorded command sequence covered a substantial loop: accept a commission, travel, fight creatures, recover relics, return for a reward, advance a level, and sell an item. Reloading preserved the adventure’s state. A separate adventure retained its own fresh progress.
Those are useful engineering results. The experience review still rejected the checkpoint.
The town was a flat plane with tokens and freestanding entrances. A flooded chapel had no water or walls. A supposedly inhabited place lacked placements. One character sent the player to another for a lead, but that second character had no responses.
The game could execute the sequence. The world wasn’t delivering what its descriptions promised.
That failure makes the target much more demanding than “generate a lot of content.” A connected graph is useful, but it doesn’t establish a convincing place. A large number of records says little about whether a player will find something worth investigating.
For this project, authored density means relationships that become visible and usable through play. The institution needs to do something. The clue needs somewhere to lead. The room needs details that explain who uses it. The next layer of specificity has to pay off the promise of the previous one.
New detail has to respect old commitments
There is another problem once the player has started acting: the world’s definitions and the player’s history are no longer interchangeable.
A shared definition can describe a chest and its initial contents. An adventure records whether that chest has been looted. A character can have authored dialogue possibilities, while a particular adventure determines which conditions are true.
The Lower Worlds separates shared world content from private adventure state. An adventure retains an exact world revision. Publishing a new revision and adopting it into an existing adventure are separate operations.
That distinction matters when refinement changes geometry, references, or dependencies. An addition may be acceptable as world content and still be incompatible with an adventure already in progress. Adoption needs to preserve the player’s position, possessions, and resolved events, or defer the change.
The authoring system also has to reuse identities. In one recorded continuation experiment, a proposed repair attempted to relocate an established NPC. That continuation failed, and the published world remained unchanged.
A generated proposal can be locally convenient and globally wrong. Stable identities, explicit dependencies, and revision boundaries give the system something firmer than a request to “stay consistent.”
The world has to be ready before you need it
Progressive authoring also creates a scheduling problem. If the next place begins preparation only when the player reaches its entrance, the player may spend the interesting part of the game waiting.
The project records include frontier delays measured in minutes. Predictive preparation became part of the design: prioritize what the player needs now, prepare likely next places, and leave optional detail behind essential playable capabilities.
That involves choices. Which routes are reachable? Which branches are plausible? How much work can be prepared without wasting resources on places the player never visits? What can the player still do while an unfinished branch waits?
Fast travel makes the problem especially clear. A journey that takes hours in the fiction may provide no preparation time in the actual interface.
The goal is useful readiness, not maximum background generation. An entrance, a return path, or a working conversation may matter more than another layer of decoration. The broader predictive system remains work to qualify; scheduling targets are not evidence that the desired experience has been achieved.
Where I am now
The Lower Worlds Online is still experimental. Its current browser implementation uses TypeScript, React, and Three.js, with separate core rules and authoring services. It has captured model-authored content and tested paths for gameplay and world revision handling. It is not a finished Morrowind-scale RPG.
The open problems are substantial: coherence, distinctive places, useful dialogue, generation latency, presentation, and the amount of repair needed to turn generated material into something worth playing.
That is why I keep working on the authoring process. I want to understand how a small team can build a world that becomes richer under attention, with procedural structure and generated possibilities contributing to the same persistent design.
The next convincing proof will be a place a player wants to explore, where following a detail leads to another detail that makes sense—and where the world remembers what happened along the way.