Comments on Announcing Adventure Prompt


I like this effort and the different approaches being explored – kudos! I’ve also been working on a custom mixed simulation-and-choice-game system(commercial project so nothing much to share now) and went for a high-powered “edit one giant XML file” scheme, but have recently been thinking about things like chatbots and how a one-topic-at-a-time interactive dialogue approach can really help with creative blocks sometimes. That’s something I want to explore more at some point.

On scripting, I came to the conclusion some time ago – through many other “game making tool” projects – that a good end-user UX eschews general-purpose power, as it makes the workflow a lot more dirty and undirected; and having the power without also having good tooling and debugging backing it up makes for an awful development experience, while bootstrapping heavily off the outer environment(e.g. how Twine employs JS) is an ugly hack that hurts portability to new runtimes. The “form-driven” experience, in contrast, is straightforward enough that young kids can usually pick it up, if it’s presented with some polish.

But I still want to have the *possibility* of power at a lower layer, even if it isn’t exposed in the source data syntax, which led me to iterate into a tiny VM model that focuses almost entirely on concurrent flow control, black-box API calls, and resource addressing(e.g. pulling in data like body text, images, etc. with a unix-like path system). The VM can own its own variables, but it doesn’t have a built in notion of computation beyond passing or returning values – that’s something the APIs do.

Addressing turns out to be a huge concern as you go farther down the VM+API path: how to compile the resources from source, relate them to each other, mix dynamic and static resources, serialize, typecheck categories of resources(including ones derived at runtime), swap elements at runtime for fast iterative development, etc. Building up this knowledge is getting me towards a stronger model for game engines of many kinds, IF or otherwise – something I can’t quite realize as a full-fledged system until this project is out the door, but can at least toy with and set down a few experimental roots.

-- James Hofmann 2017-10-19 06:32 UTC

Well, power and generality versus ease of use is a delicate balancing act. It should also be a deliberate one. I want a full-featured scripting system in Adventure Prompt, too, but if it becomes as cryptic as MUSHcode or MUF then I will have failed as a designer. Putting together a simple interpreter is easy, and that’s exactly where the trap lies. Luckily, I came up with a plan.

Thank you for the nice words, and good luck with your own project. Stay tuned.

-- Felix 2017-10-19 06:32 UTC