Almost Goodbye: Undum/choice-based

I’m curious to see what my IF chums make of this experiment. (More details here.)

(Undum is lovely, by the way. I converted this from a terminal-based prototype in one day, and most of that was taken up getting it to interact correctly with bits of Python running server-side.)

Not quite sure what happened here, but I think this is a bug:

when I selected Leon / Docks, I wound up in some sort of error state where it said it couldn’t parse out the choices.

Could I bug you for an extra little nicety? When I download the entire web page - so I can play it offline - I don’t get the background image, which is lovely and I’d hate to miss out on. Could you please look into it? Pretty please? ::slight_smile:

Hi Peter— unfortunately, you won’t be able to play this offline, because it uses a procedural generation engine running in Python on the server to get some of the content.

Emily-- blerg, that’s frustrating. I’m not seeing it happen for me. It’s possible the server doesn’t deal with simultaneous requests very well… if you try again later, could you let me know if the same thing happens?

I found it compelling in its simplicity. Despite its predictability, I found myself tearing up at the end. (Take that as you will. I cry easily.) Good work!

One tiny nitpick:[spoiler]I am pretty sure this is unintentional, or at least not quite right (in that a human would probably never have written it this way):

[/spoiler]

@tove: Yeah, there are a lot of things like that. :slight_smile: One of the interesting things to me about this experiment was that the current generation code is pretty damn simple, but I’d say it makes sentences that don’t seem out of place about 80% of the time. Getting that last 20% would cause the complexity of the code to increase dramatically. I guess what I’m interested in is looking for places where the 80% solution can be useful. I think we don’t need to solve all natural language generation (or natural language understanding) to do interesting things with language in interactive stories.

Also, to be fair, I’m not sure whether I would have noticed it with highlighting off.

I haven’t had a chance yet to take more than a cursory look yet at the story, but: Aaron, could you talk a little more about the internals of the text generation? Are you displaying full, prewritten sentences that have been precategorized according to type, mood, etc.? Or are you plugging mood-selected words madlib-style into prewritten sentence shapes? Or…?

I am in the planning stages of a project that will significant use of procedurally generated text, so I’m very interested in the approach you’ve taken. (I am also going to be caring for twin newborns starting in about 2 months, so I probably won’t be able to work on anything for a long while, but…I can still think about it!)

Thanks,
Erik

This is very interesting stuff; thanks for posting it. I haven’t had time to read the technical paper yet but I’m looking forward to it.

One thought I had that is mostly unrelated to the procedural stuff:

I had wanted to save one particular character for the last goodbye, but the story interpreted that as giving them low priority, which is more or less the opposite of what I wanted. It reminded me a little of Emily’s Fable 2 experience.

Oops, thanks to Matt’s offhand mention, I realized that you have put up a technical paper describing just what I was asking about. Please ignore my earlier request!

matt w: I’m pretty sure that was exactly what the narrative punch was supposed to be.

Well, yes and no… there’s a difference between a punch and a punch that presupposes why you made the choice you did.

In hindsight, I think I could change a few words and not step on the player’s toes so much… there’s a bit about “never being your first priority” that could probably be massaged into something better.

I like this.

Like tove, I don’t think I would have noticed the procedural parts were procedural without the highlighting. (Additional runthroughs, which I have not done, might not change that.) This speaks well for their smoothness, but doesn’t say much about how they influence the work.

I really really enjoyed this. Top notch writing, honestly. I was expecting some revelation of some sort at the end, but the simplicity of the ending left you thinking about you’re actions.

I thought it was a great story; well-written and consistent, the game as a whole left me with a sense of meaning and depth.

My only negative feedback is a minor quibble; I’m not convinced that the procedural bits improved the experience.

They didn’t detract, but they could detract from the experience (and would for me) if I had the highlighting turned on.

I liked the “punch”. I agree that the last message could massage that a little–maybe by posing it as a question or just generally reflecting an uncertainty–but it wasn’t a problem for me on my “blind” first play-through.

I think this is a good experiment–thank you for sharing! I’m sorry to restore such an old thread; it didn’t seem essential to post a new one for this, though.

Glad you enjoyed it! =) Yeah, it was definitely an experiment in minimal procedural content generation. A lot of comes from my current work in academia, where there are a lot of people trying to procedurally generate stories but less understanding of what a good story does, is, or needs. (Or maybe another way of putting it is: the win condition tends to be “I generated something!” rather than “This is a good story!”) I wanted to start from the other direction and try to start with a story I felt reasonably proud of, try replacing a small part of it with something generated, and end up with something I could still feel proud of. The generated sentences don’t work 100% of the time but they almost never ruin the story, either, so I think for me at least it was a successful experiment.