Saturday, March 31, 2007


Lots of piddly work today. Making sure all of the puzzles in the main part of the game work correctly and in sequence. Fixing up lots of room descriptions with newer syntax. Also I split the main file into a bunch of smaller chunks that I can comment on and off, to save time during compiling. (Inform 7 wasn't really designed for longer IF; I'm worried I'm going to hit some unforseen wall eventually...)

Assuming all the existing puzzles check out, there's at least three I still have to code, including one that's pretty complex, and another that still has some conceptual issues to work out. But hopefully in a few more days it will be possible to play the "rough cut" of Lacuna all the way until the lengthy end-game begins.

Thursday, March 29, 2007


The opening sequence rough cut is complete, though there will still be much to write there before the final cut-- namely the conversation with Rume. But you can now wayfare, and get to Lacuna.

I have been leaving behind a trail of smashed assumptions at the start of my source code. A number of internal variables in Inform are set to modest values by the compiler; as each is exceeded by my story's ever-expanding girth I must manually declare a more robust value. Tonight's victims were MAX_OBJECTS and MAX_DICT_ENTRIES; may their default values rest in peace.

Wednesday, March 28, 2007

Spine building

"The concept of love is an abstraction in the Bedroom." <--- Lacuna source code, written tonight.

Veering off in a different but more useful tangent tonight, I've decided to focus on getting the "spine" of the game built out-- all the scenes, the way they fit together, the rooms they take place in, the decision points, and so on to the very end, even if some of this is in only skeleton form. The goal is to have a sort of "rough cut" version that could actually be played through from beginning to end, rather than the thousands of pretty pieces that are often disconnected from each other at the moment.

In this spirit, I put in place the first two vertebrae: the very beginning of the game, a short, evocative flash-forward, and the first real scene, including the "opening move" choice which was part of my reconceptualization of Lacuna after I dropped the Myst universe connection. I'd written some of these out in longhand in a notebook in Hawaii; it felt good to convert them into digital form and the well-backed-up vault of the Lacuna project directory.

Also tonight I made a few small changes required to get Lacuna to compile under the newest build of Inform. So far each successive release of the Inform 7 open beta has required only minor tweaks to my code, a testament to the I7 design team. For this release I had to run a regex on the code to change a certain phrasing that the new build doesn't like; but I did get everything to compile again, in the end.

Tuesday, March 27, 2007


Dived into the second "endgame" world tonight for a change of pace and to stay motivated, breaking the first 1500 words of ground on a hitherto untouched portion of the game. My ambition is sometimes frightening: this "endgame" -- one of two -- exceeds the length of many full IF pieces in and of itself. Plotting out the map in more finalized detail, planning for NPCs and scenes and sketching the beginnings of the introductory conversation, I try to ignore a vertigo much like that I experienced while climbing a canyon wall in Grand Staircase Escalante this past weekend-- the unnerving realization of how much empty space there is between you and your goal.

Keeping forward momentum is a difficult task amid new mentally-taxing work responsibilities and attempts to have some semblance of a social life. I often sit down to work on Lacuna and become almost hopelessly lost in the scale of it: flipping through the design document, merely a sketch of a proper DD but itself over 10,000 words now, or paging through source code for sections of ambiance or room description or puzzle mechanic I coded eight months ago for what seems now another game, it is hard to keep the haystack in sight for the ten million needles surrounding me.

If I ever finish this Atlas-humbling project, I will gain at the very least an immeasurable sense of accomplishment, up there with the Columbuses, Shackletons, Hilarys, and Armstrongs of history.

Thursday, March 22, 2007

Purple prose

"Progue sits on a huge piece of moss covered driftwood, puts his chin in his hands, and stares into the distance moodily."

There are very few unalterable sentences in Lacuna. Inform 7 makes it easy to do text substitutions. I must have written thousands of if/then/else statements in "Whom the Telling Changed" to produce all the text variations; in "Lacuna" I'll often have more than twenty in a single paragraph (which overloads the compiler, at least in the current build).

The above sentence, for example, is not a static piece of text in my source code. The driftwood just happens to be a handy perchable object in that location, and Progue is sitting moodily rather than doing something else because a recent conversation with the player has made him pensive.

Inform highlights logic within text blocks in purple. I've been looking at lots and lots of purple prose lately.

Tuesday, March 20, 2007

59,300 words

Decided that going back through the existing location as if I was testing is a better way to integrate new changes to keyword system ([north], [o]objects[x], etc.) than just going through the source code linearly. Also gives me a chance to do some of the more fun implementation stuff.

Had a talk with Clifton over the weekend about the "either/or" puzzle that is the plot portion of the game's climax. I had thought I could use harmonics but it turns out mathematically that doesn't work; there is no frequency that would hit both without the two individually hitting the other. (There may be but I'm not clever enough to see it.) Clifton had the thought of using something based on encryption instead; so each side gives you a password to encrypt your communication with and the player can use one or the other, or select no encryption to broadcast to everyone. This allows another shade of choice: you could also use a password that *neither* side gave you; which would give Lacuna to whichever side decrypted it first. Interesting. I think I'm going to go with this; figuring out a clever way to work this into the mind machine interface will be a challenge, though.

I'm just shy of 60,000 words tonight, which some consider the cut-off point for a novel. Here's hoping the next 60,000 come faster.