A couple of the submissions to the Demo Fair focused on procedural generation of content or of surface text. (There was meant, in fact, to be another demo to do with narrative generation that didn’t get finished in time; a real pity.) This wasn’t something I’d explicitly suggested as a focus for the program, but it emerged from the process a bit.
Nick Montfort’s Curveship is a system for procedurally generating descriptions of what is happening in the story, separating the world model (and characters’ knowledge of that world model) from the textual representation of events, and allowing the author to create various “spins” to affect how those events are narrated.
Zarf had the opportunity to go to Nick’s longer presentation on the system (I was busy dealing with illness at that point), so I’ll direct you at his write-up to explain how the system works, rather than trying to generate my own.
Speaking purely for myself, I’ve yet to see a Curveship project that seemed to me to be living up to the theoretical capacity of the system. I think my ideal demo might be something like a murder mystery where the murder is committed each game in a semi-randomized way (change of murderer, weapon, victim, venue); NPCs observe different things; and then when you interview the NPCs, they procedurally generate their descriptions of what they saw and what they were doing at the time. Of course, certain NPCs would be motivated to omit or alter self-incriminating information. We already have some IF mystery games with gameplay that’s not about solving the game once but about learning strategies for solving them in general; on the other hand, they tend to rely as much or more on physical evidence changing (because that’s easier to handle programmatically with existing systems) than on the evidence of the NPCs. On the other hand, mystery games that rely heavily on NPC actions and reports tend to be hand-rolled one-offs with single solutions. It seems like Curveship might be able to handle both of these at once, though a lot would depend on the work put into dynamically generating alibi reports that were not only accurate but engagingly written.
Clara Fernandez-Vara, Michaela Lavan, and Alec Thomson presented a demonstration of a system to dynamically generate puzzles for text based or other types of games. The designer would create a large database full of objects and their possible features (e.g., being a container, or being made from two component objects also in the system, etc.); then the system would run and produce some puzzles by selecting certain items to be “goal” objects and seeding the game world with the component parts needed to create this. As a system, it is focused on helping designers design:
This project focuses on methods to generate narrative puzzles procedurally. The point-and-click game Symon was a proof of concept of what an adventure game would be like if players had the chance to restart the game and get different puzzles, because they were being generated by the system. The project here presented are a set of tools for designers which eventually should be compatible with different development environment, including those dedicated to interactive fiction . The tools include a series of building blocks to build puzzle patterns, and a database editor, which designers can use to create the characters and items involved in the puzzles.
(There are a number of projects out there right now that use AI to help with the design phase rather than governing components of the game at run-time; in fact, Michael Mateas’ GDC presentation of student projects from UCSC mentioned several of these, though intended for platforming level design rather than puzzle design.)
One thing I really like about this is the way it encourages authors to think about systems of interaction. IF puzzle design very often is about creating one-off set pieces, and I consider this unfortunate. I really prefer games that select some particular type or mode of interaction and then ring the changes on that. First, it’s more likely to create a consistent and solvable experience for the player; second, there’s a sense of learning how the world works in the course of play that can have narrative payoff as well as gameplay payoff; third, it’s less likely that the game will be recapitulating the same dull set-pieces about locked doors and computer passwords that we’ve all played too many times. So a design tool that encourages the author to design a finite number of interaction types and then play interesting games with those seems like it would help counteract that tendency.
Still, my sense about this particular project is that it’s an interesting start rather than a tool that would actually be of great use to me at the moment. Generating individual puzzles based on game-world rules is not that difficult to do; the challenging part is about coming up with structures of puzzles that will be fair to the player, encourage playful reuse of objects, develop a particular way of thinking or engaging with the world, and avoid any chance of permanent stuckness.
I could imagine the puzzle-design system being developed in one of several directions. One might be to make it build a whole sequence of puzzles based on guidelines (here’s my database of Stuff; my game is called “Ode to Bucket”, and I want as many puzzles as possible that make use of the bucket object).
Another would be to build it into the game world and use it to check the solvability of various puzzles, enabling more open-ended gameplay with more emergent effects. If it found that the player was going to need a container but had already used up all the game’s existing containers in various ways, it might spawn a new one into the game world near the player. Maybe it would have some additional environmental clues so that it would know, “hey, I’m adding a container in the kitchen area, so perhaps the plausible thing to have here would be an empty jar.” This is basically an attempt to end run around the “emergent failure” problem in emergent puzzle design: that it’s very hard to design a game with highly open-ended physics and vast player freedom, and yet still guarantee that the player will never make himself stuck.