Friday, July 27, 2007


I'm back to the word count again. Oh well, it's a good excuse for turning and everything on and making sure the entire tangled thing still compiles.

Continuing through the outlines of Progue conversations. Testing this is going to be interesting. Some conversations are triggered by Progue's psychological state, others by the progress the player has made on the puzzles. Some by various other tracking variables (whether Progue likes you or not and how much, whether he's starting to equate you with his lost children, etc.) Most of them are triggered by some combination of these three. Making sure that everything happens when and only when it should is a little daunting.

In other news, I'm hoping to have a version of Lacuna ready for concept testing by mid-August. I'll take a few friends and walk them through the story, to see if the pacing and ordering is working out. Based on reactions, if I need to make additional changes to the structure of the game, I can--and otherwise, it's back to write all of those conversations in full and finish fleshing out those room descriptions and implementation details.

Sunday, July 22, 2007


Got "The Storm" finished and tested, in terms of the logic involved, and did some tweaking to try to figure out what is slowing down the game when Progue is moving around. A lot of it seems to be Inform's built-in pathfinding, which would seem to be not terribly computationally efficient, but there is also the weight of the dozens of demons and systems running to keep time and tide running (not to mention a boatload of other stuff, too). At some point I may have to enlist the help of an Inform expert to see if I can optimize my code any more.

Continuing forward through outlining all possible Progue conversations. Maybe 20-25 of them. Making progress.

Wednesday, July 18, 2007

The Storm

A novel often has a series of chapters, each with its own narrative drive and all fitting into the larger narrative arc of the whole story.

Interactive fiction sometimes has a great opening chapter, and a great finishing chapter, and great bits and pieces through the middle. But it is the rare piece of IF where the middle doesn't lag, particularly if the player is stumbling around stuck between puzzles. When this happens, the narrative urgency drains away, the seams of illusion become more and more visible, and all the magic dies.

In Lacuna, one of the ways I'm trying to counteract this problem is by including a number of scenes (or "chapters" if you will) that specifically take place during the "lull time" while the player is working on puzzles. These aren't just filler: they serve to strengthen your relationship with Progue, reveal more about the plot, or rachet up the dramatic tension. These sequences typically don't help the player solve any puzzles (there's another mechanism for that) but they serve to distract the player from the main issue long enough to look at it with a fresh perspective when they return, and open up new avenues to explore just when you think the wall you're beating your head against has no cracks.

Over the last few days I coded in the basics of one of the major sequences in this category-- let's call it "The Storm." This is really a series of sequential scenes, building up to a dramatic event, and then allowing the player to make some decisions that affect the game state in nontrivial ways. Though it will feel like a cut scene, control is never taken away from the player; agency is maintained the entire time, meaning there are at least six unique ways the entire sequence can end, based on the player's actions.

I'm very excited about this scene and others like it. At the end of Myst, you had to make a choice between which of the two imprisoned brothers to free. But the game ended once you made that choice. Even the "winning" ending (a third alternative) happens very soon after the choice. In Lacuna, you get to make choices with the same degree of magnitude, play through their consequences, and then live with them throughout the rest of the game. Much later, you might look at what's going on and say "Is this all because of what I did during The Storm?" And you'll be at least partially right.

Sunday, July 15, 2007


On the most zoomed-out level, and under the newly redesigned system, Progue has six major psychological states that he moves through during the course of a play session of Lacuna. I've completed the outlines for the first two of these, including a lot of basic conversations and differing behaviors.

One of the interesting things I'm discovering is that there's a lot of humor in Progue's character. A scene which I had always intended to be deadly serious turned out to actually have a lot of comic potential when I went to stage it. I think this is okay: if it makes Progue more likeable, the player will probably be more emotionally invested and interested when things do turn serious towards the end.

The latest count is 81,207 words. This would be higher, but I've removed over 6,000 words since the last count (the original Progue introductory conversation and the original prologue sequence.)

Saturday, July 14, 2007

ruminating, resting, fishing, loquating...

Working my way through Progue's infrastructure now... setting up the frameworks of all of his conversations so that I can alpha-test his relationship with the player. I thought of a new, more interesting opening scene to introduce this pivotal character, and have revised a lot of Progue's autonomous behavior for the early portion of the game. He rambles around the island doing various activities; sleeps when it gets dark; changes his behavior based on his mood; and is aware of what he's doing during conversation. There's still a lot of work to do here, but I've made good solid progress.

Friday, July 13, 2007

*** You have won ***

A tool is now in place that lets me quickly jump to any portion of the game and be sure that all variables, conditions, states and objects are where they should be if the game had actually been played to that point. Additionally, the system for turning on and off blocks of code to aid compiling speed has been tweaked such that even with all game modules turned off, the base code knows enough about the structure of the plot and the transition between scenes to be able to step through all the way to the end of the game. So for the first time ever in Lacuna, I saw this post's title: the default Inform message indicating a successful completion. Fairly arbitrary, but it felt good.

Next up will be a similar system for dealing with Progue and his conversations-- in many ways parallel to the complicated states and multilinear development of the plot. Once that's finished I'll have a firm infrastructure and good testing tools, and the creative work can proceed with full force.

Thursday, July 12, 2007

Completed: one outline.

The skeleton of Lacuna is now complete. It's now possible to advance the game machinery from the opening flash-forward prologue all the way to the final epilogue. Good work, me! I'm going to try as hard as possible to forget about the fact that I originally intended to get it finished over a weekend in April.

Progue's new mental workings are programmed, if not made use of in the code yet. Much of the outline makes use of "meta-Progue," who just asks you the outcome of a scene, somewhat disconcertingly ("We either can become friends or I can start disliking you," he chummily summarizes). Two things I want to add immediately to the skeleton are a whole bunch of Progue conversations with this one-paragraph level of detail, so that I can actually roughly simulate the ability of the player to manipulate the relationship with Progue over time, and a "Progue's Head" control room to allow me to adjust any of Progue's variables for testing purposes. On a larger scale, I also need to work out a system that will allow me to jump to any point in the game with all appropriate conditions and variables set, and also probably rework things so that I can easily comment major chunks of the code on and off without breaking things elsewhere. (Right now there are a lot of cross-references, so it's not as easy as it should be to do).

I feel like the four-ton boulder has finally started rolling again.

Wednesday, July 11, 2007

Reframing paradigms, again

Progue, the pivotal central character of my game, is troublesome. Not only am I having trouble writing dialogue for him (which we'll have to leave for another blog post), but after hours and hours and hours of conceptual work, I still have not exactly locked down the technical means by which he will be realized: so I'm stymied on both fronts (the technical and the artistic) when I try to deal with him. This morning I finally made some real progress.

During my hiatus, I wrote a pair of technical papers to submit to academic conferences (on interactive narrative and hypertext, respectively) detailing aspects of Lacuna's design. One of them detailed the "archetype" system I'd devised for determining Progue's long-term behavior. This was something I came up with in Hawaii and was conceptually pleased with: based on how the player treats him during the game, Progue is eventually shoehorned into one of several character archetypes (villain, friend, father, etc.) which is then used to determine what happens during the endgame. My paper was rejected by the conference, but as soon as that happened I felt a sort of relief.

Once my archetype system was in no threat of being set down in stone in conference proceedings, I almost immediately realized that I'd designed it backwards. I'd come up with interesting archetypes, but these didn't necessarily translate into interesting endpoints for the relationship with Progue; I had "favorite" endings and others I wasn't terribly interested in. Rather, I should have designed the interesting endpoints first; then worked to construct a system of emotional evolution that would allow the player to reach them. So I did that this morning, taking my "favorite" of the old endgame solutions and adding a few new ones, so that all the endings are equally interesting.

This ties into one of my most strongly held beliefs on interactive narrative: all possible pathways should be equally dramatically satisfying. Obviously each individual person will like or dislike certain outcomes more than others; but rather than having one "best" ending and a series of "runner-up" or "losing" endings, the author should at least strive to make them all as interesting as possible.

Sunday, July 8, 2007

Well, I'm back.

A short break from Lacuna turned into a longer break than I'd ever intended. I'd once hoped to be done by now. Oh well.

Getting back to work was, for some reason, terribly frightening. I'd meant to do it weeks ago. Finally, today, I got back into the code, took stock, made some changes, and got my bearings again. There is still so much to do. I just need to get in there and do it.

More as I get back into the swing of things.