Friday, July 16, 2010

Experiment 1

Over the next few months, I'll be posting a series of short experiments as literate Inform 7 source texts. Experiment 1 lives here in code, comments, and playable format. Click through and choose "Source text" to read along.

The story description is "Giving objects in a story world symbolic weight has often been done by hand, but rarely procedurally. Here's one method for doing so."


Ron Newcomb said...

>x me
Ah, yourself. You remind you of nothing in particular.

*giggle.snort* Yep, it's procedural all right.

Ron Newcomb said...

Well I'm more impressed by the idea than its software expression.

As a player, I seriously need a THINK ABOUT or RECALL command. I think most of the joy in playing would be "traveling" down the web of associative links your relations have created.

Just my 0.02

Looking forward to... whatever the hell else you're going to do. :)

matt w said...

As Ron observed, the implementation is pretty crude, but it's mostly showing off the underlying relational structure. One way of making it interesting might be to use something like this to trigger THINK ABOUT commands, which could give you text that contains keywords for the next suggested themes. The problem might be how to do this procedurally without either creating dissociated texts or hand-rolling everything.

Gravel said...

A very interesting idea. I suspect some interesting things could be done with this, especially as themes change - ie the pendant is a reminder of marriage at first, but after a massive row with the spouse, could mean better times or being tied down.

Those kinds of things would give the player some agency to shape character development: when you find a bear, do you think man vs. wild, or the glory of nature?

Also, people should publish more source text experiments. I always enjoy looking at other people's source code.

Conrad said...

--I didn't see this the first time; I'm coming to it after your recent Experiment 2 post.

I'll go so far as to say I don't believe this can be done well, or not without a massive investment of some kind of statistical associative links. (I'd be glad to be proven wrong, though.)

One specific problem with this implementation is that, when you're traveling in bad weather, a jacket does *not* remind you of being cold. It reminds you of *warmth*.

When you're snug at home, sure, you might look at a jacket and think about how miserable you'd be if you needed it. But when you need things, you see everything through that filter of need. It's a good jacket. It keeps you warm.

Similarly, you'd perceive the compass in terms of whether it could be fixed or made to work. Can you salvage the needle and float it on a bit of wood in a puddle? Anything?

This isn't "problem solving" in the way gamers think of it. It's a perceptual switch. You see things in terms of function and in relation to your present needs. (Does the bottle have any water in it? How much? How thirsty am I?)

So-- I don't think it can be done algorithmically. Maybe you could build a database of likely associations, and then have the game handle that statistically somehow.