Initial commit.

What is Untold Lore?

Untold Lore is a world simulator.

The impetus for its development came from frustrations at DMing tabletop games for friends. As much as I enjoyed guiding them through stories, it was disappointing that I would never be able to really relax and enjoy the fantasy of the game while also trying to keep fifteen plates spinning simultaneously and dropping about half of them by the end of the campaign because you could never quite figure out how to tie the plates together in a satisfactory way after they went haywire because your players discovered they had free will.

What if you could play in your own campaign? What if you could just narrate the intro and then jump into the passenger seat, participating in a story that could surprise even you? That is the goal of Untold Lore.

What is Constructor?

It’s impossible to describe the development of Untold Lore without first talking about Constructor.

Constructor is an app that builds other apps. It’s a metaprogramming engine, which essentially means that it’s code that writes other code. Out of the current version of Untold Lore’s 23.6k lines of code, 15k of them are written by Constructor.

What this means is that Untold Lore takes a breadth-first approach to adding features rather than a depth-first approach. The vast majority of the time, a developer will work on one feature until it’s fully developed before moving on to the next. They do that because leaving half-assed messes behind that you’re going to have to come back and clean up later adds a lot of (typically very expensive) time to the development process.

Untold Lore’s development works differently. In our case, we might hack together ten features simultaneously because all of those features are being implemented by Constructor. From then on, each time Constructor gets updated Untold Lore’s entire codebase gets regenerated in a better state than before. The amount of time you have to spend updating things no longer scales with the number of features you have to update.

This approach allows for much, much faster prototyping without sacrificing long-term code quality. Those of you with the misfortune of working in tech might say it’s a highly agile approach to development, since it makes receiving feedback and implementing changes much quicker. However, it’s also liable to cause frequent bugs and require unorthodox workarounds early in development. In theory these will sharply drop off after a certain point, but it’s hard to say exactly when that point will be.

The current state of Untold Lore

Your character is at an emporium in the village of Emberhill. You can speak with the proprietor or use his carpentry workbench.

Although the app is currently a buggy mess (as most apps are when they’re in a pre-alpha state), many features have already been either fully, mostly, or partially implemented. You can boot up a server and do the following things.

  • As an admin…

    • Create places, connect them with roads, and populate them with people

    • Define attributes, skills, and abilities

    • Design crafting recipes with inputs, outputs, and skill requirements

    • Create item types, tags, blueprints, resource nodes, and crafting stations

  • As a player…

    • Make your own controllable character

    • Travel between locations

    • Harvest resources

    • Use crafting stations

    • Talk to other people

At some point in the vaguely-defined future, a public pre-alpha will be made available. A public test server will be hosted, with all players being marked as admins and wipes occurring at irregular intervals as necessary. Eventually the pre-alpha will give way to an actual alpha release, which includes the ability to self-host servers.

Stay up to date

Join the mailing list or the official Discord channel to get updates.