Search Results for: if

Designing alchemy in a puzzle game

A question about Hadean Lands from the tweet gallery: "Have you written anything about how you approached designing the alchemical system?"

Excellent question! The answer is "No, but I should, shouldn't I," yes okay. (Thanks @logodaedalus.)

My twitter-sized reply was "Sound cool while supporting the puzzles," but I can say more than that.

(Note: I will start this post by talking about HL in generalities. Later on I'll get into more spoilery detail about the game structure. It won't come down to specific puzzle solutions, but I'll put in a spoiler warning anyway.)

The keynote for HL's system was the alchemy puzzle in The Dreamhold. The Dreamhold lab had just two ingredients and three actions to take, but it felt like a dense explorable territory.

Dreamhold's principle was that any action you try on a given substance will produce a new and interesting result. And then you can try new actions on that! Obviously this exponential expansion has to be tied off pretty soon. Many of the combinations converge to common outcomes. The tree is only a few steps deep, really. (I think there are twelve possible substances to find.) But it's enough to give a sense of experimentation and discovery.

For HL, I wanted that sense, but bigger. Did I succeed? Heck no! It was an impossible goal. HL has forty-odd starting ingredients and thirty-odd magic words (not to mention other ritual actions, and the environmental influences, and...). Just providing the first step of a dense exploration tree would be... well, somebody might do it, but I wasn't going to.

So I developed HL with a less ambitious principle: you get recipes. When following a recipe, you should always be able to tell a right action from a wrong one. That is, a particular magic word will produce a unique response if you use it at the right time -- different from the response you get if you use it at the wrong time. The differences may be slight, but they're perceptible.

I didn't want to entirely crush the spirit of experimentation. So the second principle was: recipes aren't everything. The opening puzzle demonstrates this, and various later puzzles require you to substitute or invert ritual elements. I set up parallel structures and oppositional structures to make that make sense.

I think everyone agrees that I didn't hit the perfect balance. The game starts you with an off-recipe puzzle, but there's too long an interval before the next one. In between are lots of recipes that you have to follow perfectly; you lose track of the initial lesson. But most players were able to get onto the right track (or jump off the wrong one, if you like).

A followup question was "Did you have alchemical dynamics in mind when making the puzzles?" The answer is... mixed.

(Spoiler warning for the overall game structure, starting here!)

The core arc of HL is the limited supply of four key elements. You need all four for the endgame, and there are intermediate goals which require two or three. So initially you can only accomplish one intermediate goal at a time; then you have to reset.

That was my initial puzzle framework. I wrote that down, and then started complicating it. What ritual needs elements X and Y? Is it the ritual itself which needs those elements, or do I invent a sub-ritual which consumes X and provides a related X2? And so on.

At this point, I was inventing puzzles and alchemical mechanics in parallel. Or rather, I was going back and forth -- every decision on one side firmed up the possibilities on the other side. I needed puzzles whose solutions would seem reasonable; I needed mechanics which would feel like parts of a plausible magical science.

You'll note that I didn't start by creating a complete magical system and then deriving puzzles from it. Nor did I invent a bunch of puzzles and then invent alchemy that could solve them. Neither approach has ever worked for me. So if you're hoping for a complete, consistent model of HL alchemy -- I'm sorry. No such thing exists.

I knew that it couldn't exist, of course. That's one reason that the alchemy is described as being eclectic and syncretic. It fits nicely with the social background, too. The real-life British Empire did steal artifacts from all over the world. I evolved the idea that a magical British Empire would lift occult knowledge from every place they conquered, and jam it all together without regard for consistency or context!

(We assume this made them better at conquering. The game doesn't touch on much history, but references to the "East Empire" imply that they've got a firm grasp on Central Europe, and no doubt the New World as well. If I were a better writer, I'd have built a story about the Navy running into aliens and trying to treat them colonially... oh, well, room for a sequel.)

(There will be no sequel. That was a joke.)

The point is, I could make up whatever alchemical rules I wanted. I tried for a balance -- consistency in some places, chaos in others. I could draw on mythical, mathematical, or religious sources without having to be accurate about any of it. Convenient!

Back to the puzzle construction. As I said, there were a few key resources whose scarcity determined the game arc. Then I invented more resources -- both ingredients and formulae -- which either resulted from or combined with the key ones.

This could itself have created an ever-expanding tree of dependencies. But I constrained it, or at least bent it back on itself, with a third principle: everything in the game should be used at least twice. Ideally, in slightly different ways.

A naive adventure game uses each item exactly once. Indeed, many graphical adventures remove things from your inventory once you've used them successfully. This cuts against your sense of immersion -- not because of the anti-realism, but because you wind up watching the game mechanics rather than the game. An object disappearing (or being checked off) is a better signal of progress than the response of the game world. Text adventures don't have this disappearance convention; nonethless, the player learns to keep track of what's been used and ignore it thereafter.

I would rather teach the player that there's always more to learn. You may think you understand an item, but you still have to keep it in mind for future use. You have to keep everything in the game in mind at all times. This is the underlying challenge.

So I went over and over the list of rituals, looking for singletons. Magic word used only once? Work it into a new ritual. Alchemical potion only solves one puzzle? Invent a new place to use it. This added a richness to the mechanics. Two uses of a reagent imply there must be more; you have the sense that there must be underlying laws to explain it all. This is, as I said, an illusion; but it's a well-supported illusion.

Of course, it added up to a gob-smacking number of puzzles. Fortunately (or perhaps not), I was blessed with a very large list of formulae, resources, and recipes to scatter around the Retort. I could "use up" these extra puzzles as obstacles to various resources. (Thus all the locked cabinets.)

Also, since these puzzles weren't involved in the key resource plotline, it was okay if they had multiple solutions. (Some of the cabinets can be opened two or three ways.)

The final principle of Hadean Lands: involve all the senses. Let me go back to a line that I quoted in 2010, explaining the HL Kickstarter:

"If a witch could teleport (a thing that seems impossible, but I could be wrong), it would involve hours of preparation, rituals, chanting, and filling all the senses with the desired result until the spell would work in a blinding explosion of emotional fulfillment." (Steven Brust, Taltos)

Magic should be a transcendent experience. I tried to describe the effects of your rituals in colors, textures, sounds, scents... even the words that you speak are given synesthetic weight. Not to mention the ineffable air of things going wrong or right (so useful for cueing mistakes).

Of course, an adventure game involves lots of repetition, and nothing wears out faster than a repeated sense of transcendence. (Except maybe humor.) I dodged this problem with HL's PERFORM mechanic. When you PERFORM a known ritual, it doesn't repeat all of the descriptive text; I kept the output bare and mechanical. You're not reading it anyway! You just want to know whether the ritual succeeded. This preserves your sense of involvement with new rituals.

(Admittedly this falls apart when you're failing at a new ritual. That's a somewhat repetitive experience -- inevitably, I think.)

So there are my principles of magic design. I don't suppose I sound like a Hermetic occultist. I hope I do sound like a writer or designer describing his craft, because that's what this is. A lot of fussy details and a clear plan, is all.

Like the man said: writing is the art of causing change in a consenting reader, in accordance with the writer's will. You gotta be pragmatic about that stuff or you'll get nowhere.

Posted in Zarf on Games, Zarfplan | Tagged , , , , , , , , , , | Leave a comment

Why it takes longer than you think

In case you're wondering, nobody hassled me about how long the rewards took. Apparently you folks really were in it for the game -- or to support me, which is even nicer.

However, I bet there are people out there who are working on Kickstarters. And they should be warned: it always takes longer than you think. To substantiate this, here's a timeline of Hadean Lands work that came after the game shipped.

Note that I did lot of reward design in December, but didn't order the stuff until early January. That's because I knew I would be out of town for the last week of December. I didn't want expensive parcels arriving when I was gone.

  • Oct 30: Hadean Lands goes live for sale. (I won't describe the whole monkey dance of sending out iOS gift codes. Too painful to recall.)
  • Oct 31 to Nov 3: Catching up on backers who had problems getting the game, or who sent in late Kickstarter surveys. Also general PR work -- answering emails, posting on every social network I know.
  • Nov 5: Submit iOS app version 1.1. (Better iPhone 6 support.)
  • Nov 7 to 10: Toronto trip for WordPlay. (File under "marketing".)
  • Nov 10: Release iOS app version 1.1.
  • Nov 13 to 17: New York trip for Practice. (File under "networking".)
  • Nov 30: Finalize book design; order proofs.
  • Dec 2: Finalize postcard design; order postcards.
  • Dec 6: Get first proofs of the book.
  • Dec 8: Finalize map poster design; order proofs.
  • Dec 12: Decide the books are too large. Reformat smaller, order more proofs.
  • Dec 19: Submit iOS app version 1.2. (Save-file import and export.)
  • Dec 25 to 31: Out of town. Not thinking about HL.
  • Jan 1: Release iOS app version 1.2. (I didn't want to release this while I was gone, either.)
  • Jan 2: Order books.
  • Jan 3: Order posters.
  • Jan 6: Look into CD pricing.
  • Jan 11: Finalize CD design; order CDs.
  • Jan 21: Positive Slate review! (And PocketTactics too.) Suddenly I am back in PR mode.
  • Jan 22: Argh, half of the posters are misprinted and not usable. Contact customer support and ask for replacements.
  • Jan 24: Post Steam Greenlight page for HL.
  • Feb 1: The Month of Postage begins. (Assume days and days of sticking labels on things.)
  • Feb 17: Haul books and posters to the post office.
  • Feb 27: Haul half the CDs to the post office.
  • Mar 3: Haul the rest of the CDs to the post office.
Posted in Zarfplan | Tagged , , , , , , | Leave a comment

The Adventure Gamers Store is open

The season of GDC-and-PAX is upon us, which means more gaming news than any one human can hope to digest. And yet, I will burden you with a couple more snippets.

The site, which has been reviewing adventures in various forms since 1998, has opened a web storefront specifically for adventure games. Hadean Lands is in the launch lineup, as are several other indie highlights: Dominique Pamplemousse, Lumino City, stacks of Wadjet Eye and Daedalic titles, etc.

( gave Hadean Lands a super-nice review back when I launched.)

Note the Adventure Gamers Store currently only offers Windows versions of these games. (They say they hope to add Mac/Linux in the future.) Also, everything is currently priced in Euros. (You can buy from the US or anywhere else, don't worry.) I've set the HL price at €4.39, which makes it a fractionally better deal than the $4.99 price I've got everywhere else. Snap it up before the winds of currency conversion shift!

And in other news about places that sell HL...

The Itch.IO site has just announced that they will start taking a share of game revenues. (For most of their history they have been a completely free service.) This change will happen on March 23rd.

Unlike most platforms, they are going to let the game author decide what cut Itch takes of their games. They suggest 10%, but the author can move that slider anywhere between 0% (author keeps all the loot) up to 100% (donating all revenue to support Itch).

This is a sweet idea, and very much in the spirit of the Itch service. I am happy to support it by offering them the same 30% taken by Apple, Steam, and (for that matter) the Adventure Game Store. You can buy HL via Itch here.

Tagged , , , , , , , | Leave a comment

Mazes from the depths of time

Occasionally someone asks me about porting System's Twilight to a modern platform, because setting up a Mac emulator is a pain. I figure that someday the Internet Archive's Software Library will have it, and I'll just point there.

(In fact JSMESS already supports early Macs, but I don't know how to set it up for a single game on my web site.) (No, this is not a task I intend to tackle right now.)

Anyhow, I started checking the status of the Software Library last night, and got distracted looking through the Apple 2 section. I played a little of this and that -- games I remembered from my childhood -- and then my attention was snagged:

Penqueriel Mazes (19xx)(Sadistic)

Yes, that's me.

I don't remember when I released this disk image. Somewhere in the 1982-1985 range, certainly. The mazes were designed earlier, on paper. I got the notion to implement them in interactive form. Then, no doubt, I dumped them on some modem pirate site in exchange for download credits.

What can I say about these things? They exist in the series of "Praser mazes", a label which I've used for puzzle and maze concepts since way back. Praser Maze #1 is justifiably lost, as are many of the later entries, but Praser 5 (word puzzle, reimplemented for Z-machine) and Praser 12 (non-interactive hunt-style puzzle) are on my web site.

The term "Praser" comes from a dream I had when I was a kid. The dream Praser-maze was my archetypical ideal of maze-puzzles: an inhabitable world of hidden doors, garden paths, elevators, subways, and so on. Really, there's a reason that Riven became my favorite adventure game when it appeared years later.

(I don't remember why I used "Penqueriel" in these programs instead of "Praser". Sounded better, I guess. Later, I named my TinyMUD home base the Penqueriel.)

Select "keyboard" mode in each game. Movement is with the IJKM keys. Nobody told me that WASD is easier on the fingers.

Both mazes are hard, but solvable with a lot of experimentation. Thirty years ago, I had the solutions memorized. Today, I haven't re-solved them.

As you can see, my teenage sense of puzzle-design was on the bastardly side. Maze #2 is unfair by any reasonable standard; it's a maze with invisible teleporters, and the only approach is to map it. Maze #3 is more interesting. You can carry up to two colored keys and store a third in the storage box. There are colored gates and one-way gates (and elevators, boat-docks, bridges, etc). Since Apple hi-res graphics offered only six colors, I had to resort to stripes for the seventh key type!

I was clearly fascinated with pushing the form as far as it could go. I was aware of the limited viewport -- I put amusing scenery within viewing range and hid important color-sources outside of it. I was careful to construct consistent scenery (in the apparently-isometric, actually-2D map). I built a scenic overlook, a bridge mini-maze, and some waterfalls. At one point you get a glimpse of the Promised Island where every key-color lives, but you can't get there.

(It's not actually isometric projection, right? What do you call that -- "cabinet projection"?)

I implemented these games in 6502 assembly, although the title screen is BASIC. (Someone came along later and added a pre-title "crack" screen, because somebody always does that. Of course I released the games without any kind of copy-protection. You can hit ctrl-C at the title screen and mess around however you want.) (You might have to blindly type TEXT after interrupting the HELLO program.)

I was proud of many of the tricks I came up with. Look at the way I correctly handle being over-or-under a bridge in Maze #3. (There's no visual distinction, but you can only leave on the same path that you entered on.) But the big trick, clearly, was faking an alpha-blend by flickering between two images. That's how the title menu places an impossible seven lines of text below the graphics. (Apple hardware only supports four lines of text there!) (Bitmap fonts were way beyond my capabilities.) Similarly, the "fade-in" of graphics elements when the title screen appears.

I used the same trick to "composite" the stick-figure protagonist with the background in Maze #3. (I could have made the screenshot above an animated GIF to depict this, but I didn't. You're welcome.)

I have not yet located a copy of Maze #4, which was much prettier. (I think I used double hi-res graphics, and designed some garden sculpture.)

And now, on an entirely unrelated topic:

(from The Sapphire Siren, Nictzin Dyalhis, 1934)

Tagged , , , , , , , , | 5 Comments

Trinity: design ruminations

This is not a detailed review of Infocom's Trinity, because Jimmy Maher has just finished that job. His sequence of posts (1, 2, 3, 4, 5, 6, 7, 8, 9) puts the game into its context in Infocom's history and, more broadly, in the history of the Atomic Age (remember that?) and the Cold War. Go read.

Inevitably Maher comes around to the question of the ending -- the "...what just happened?" denouement. (You can read just that one post if you're familiar with the game.) It's not the first time, of course. Maher links to a Usenet thread in which we went 'round this topic in 2001.

It's generally agreed that the plot logic of the ending doesn't really hold together. In fact, my teenage self was moved to write a letter of complaint to Infocom! I received a gracious response -- I think it was written by Moriarty himself -- which basically said "The game ends the way we felt it had to end." Which is unarguable. (This letter is in my father's basement somewhere, and one day I will dig it out and scan it with great glee.)

But today I am moved to be argumentative. If I were the author of Trinity, what would I have done?

(Oh, sure, I'm being presumptuous too. All due apologies to Moriarty. But we're both thirty years older; we're different people than the author and player circa 1986. It's worth a rethink.)

(I will assume that you've played the game and read Maher's post. If not, massive spoilers ahoy.)

As everybody has pointed out, Trinity is already constructed in the language of whimsy and metaphor; it starts out with a Lewis Carroll quote and builds from there. So expecting rigid logic is a fool's errand. Nonetheless, I do want a story to make sense when read at face value. (James Nicoll: "I don’t mind hidden depths but I insist that there be a surface.") Or, if the logic goes all Looking-Glass, it should do so in a thematic way.

Trinity offers the notion that the first atomic bomb would have "blown New Mexico right off the map" if we hadn't sabotaged it. Atomic bombs are vastly more powerful than we think. The little 20-kiloton blast that 1945 witnessed was "quantum steam", a side effect of changing history from a catastrophic New Mexino disaster to the timeline we know.

Maher discusses this in terms of eternal tragedy. Fine, I'd buy that -- except that it matters that atomic bombs don't work. Or work differently. Oppenheimer and Teller were wrong! All the physicists since then have been wrong. You can't just drop that into the story and not care what it means. Politics: all the mad calculations of MAD were orders of magnitude off-true. Science: the notion of fusion power, whatever that's worth, is built on quicksand. That's not a theme of "history is inevitable, we have come full circle" -- it can't be, because our history isn't what we think!

Or else the game isn't even about us, but about some other universe full of people. Sucks to be them.

But how else could the story have been cast?

Trinity could have followed through on its implied promise: you will prevent Trinity. Thus you prevent Hiroshima and Nagasaki; and the nuclear detente of the Cold War; and the envisioned nuclear conflict which ends civilization. A game which goes down this road is clearly pablum. It trivializes every triumph and disaster of our postwar history with a jovial "Well, don't do that then!"

Alternate history is tricky at best. We've all seen "if this goes on" think-pieces, which project some pet peeve into (inevitably) some variety of jackbooted dystopia, all in three smug pages and a glowering byline. They're laughable. You can just about build a respectable novel this way, if you spend the pages to develop an actual world and characters; if you have the human insight of an Orwell or a Walton. Infocom's shot at this was of course AMFV, and we generally agree that it didn't work. The world they packed into 256k of Z-code was just too sketchy.

For Trinity, whose body was a solitary metaphorical puzzle-quest, to develop a vision of a nuclear-free utopia in the last scene -- it would be a joke. We'd have no reason to care, and no reason to believe it beyond the author's "I said so." Scratch that plan.

Trinity could have ended by snatching the candy out of your hand. You begin in our history, foreseeing a nuclear war. You try to sabotage Trinity to prevent it. But you cannot: the Laws of Time (or whatever) are immutable. Thus, all comes to pass. We got the Bomb, they got the Bomb, we are rushing towards the end.

This would be bleak. (Bleak is already on the table, of course.) It would fit Maher's discussion of the moment of the abyss, the Great Change in the midst of inevitable tragedy.

But, on the other hand, you'd have to make it work as a game too. It's hard to make failure work as a satisfying ending of a puzzle-quest. Possible, of course! But Infocom had already done Infidel (with mixed success, although teenage-me was satisfied). Repeating that ending would make it seem even more of a gimmick.

You'd have to rearrange the ending, anyhow. Infidel works because the final puzzle has powerful narrative momentum (Indy always finds the secret treasure!) and a direct link to the tragic ending (the tomb has One Last Trap). If Trinity's final puzzle is sabotaging the bomb, you're going to sabotage that bomb. Any other outcome would feel like a failure to solve the puzzle. If the puzzle were to reach the bomb -- and reaching it truly felt like a climactic moment -- then the player might accept some other denouement. But, more likely, it would feel like a cheat.

A variation would be for the protagonist to refuse to complete the sabotage. It's hard to imagine the player buying into this, though. You'd have to spend the whole game arguing for the preservation of history. Sure, erasing it all is empty polemic, but -- faced with the awful alternative -- the player engaged with the story has every motivation to try it.

So scratch that too.

We might leave the final choice unresolved; leave the future in the protagonist's hand, and thus in the player's imagination. This avoids both the unsatisfying failure and the just-so story of success. If done barefaced, though, it would be just as unsatisfying as an unsolved puzzle.

One can imagine ways to make it work. Perhaps build the entire story around choice, with visible glimpses of alternate outcomes for each scene. More ambitiously: have every major puzzle embody a choice, so that multiple solutions serve as multiple paths-not-taken for the story. These wouldn't have to form an exponentially-branching tree; a collection of independent (but irrevocable, in the story-world) choices would make the point. Have the paths-not-taken hover and haunt the player. Now the player, facing an unknown and unresolved ending, will do the work of imagining the alternatives for us. Or so we hope.

Being me, I have to suggest the indirect, metaphorical ending. You leave the conclusion open to interpretation: what was dream, what was metaphor, what was the hallucination of a brain being incinerated in nuclear fire?

Infocom went some distance in this direction, or we wouldn't have long blog posts about the ending to begin with. But I'd say they provided a single clear narrative for the ending -- terse, but clear. Other aspects of the story (such as the time-loop nature of the Wabewalker and their corpse) are left more open; to me, more satisfyingly open.

This stuff can be made to work, if you spend the game building up plausible hypotheses. And the author has to have a logical framework, even though it's not explained to the player. I'll admit up front that I have such a framework for Hadean Lands, and no, I won't talk about it... But I'll go through the process of imagining what might underlie this alternate Zarfian Trinity.

The hallucination-while-dying gag is even more of a gimmick than the Infidel ending. Go ahead, accuse me of using it anyway. Well, if Terry Gilliam can pull it off after Ambrose Bierce closed the book on it... But we won't try to repeat it here.

Nearly as common is the you-are-not-who-you-think-you-are gag. This, at least, can be varied to suit the storyline. We might decide that the protagonist is a guardian of history, a peer of the giggling narrator. Or that the protagonist is the giggling narrator, talking to themself across the timeline. Or maybe the protagonist is Oppenheimer?

Not Oppenheimer, let's say, but all of the innocent (or guilty) bystanders in each of the history scenes. You are not the London vacationer; you take their viewpoint temporarily, up to the point where they enter the explosion. Then you take the viewpoint of a Russian technician, and so forth. The realization that you are in a different body in every scene would arrive gradually. This would require a different approach to some scenes, of course. (There is no NPC viewpoint in space, and the Bikini test -- the dolphin perhaps?) Then, at the Trinity site, you are Donald Hornig, babysitting the equipment until -- contra real history -- you/he find yourself at risk. There's your crucial, personal choice.

I rather like this plan; it gives us a chance to read the story from a real person's perspective, rather than the Infocom-style everynerd. (Of course, at the time Trinity was being written, Hornig was teaching down the street at Harvard! There's a real-people-fiction discussion to be had there, but I won't get into it.)

All of these storytelling gimmicks, while certainly gimmicks, serve to refocus the player's attention on the story. That's why I keep coming back to them. Rethinking everything that's happened from a new perspective is, well, thinking about everything that's happened! And when your ending is difficult to accept, it always helps for the player to figure it out rather than being handed it on a plate. It gives 'em a sense of investment, right? That's the point of interactive narrative in the first place.

Finally (for this post) we have the ending in which you choose between our history and some more terrible one. This was Moriarty's option, and I think it's workable. My objection is to how Trinity framed that choice: as a forked history in which neither choice is really our world.

Can it be reframed? Not, I think, with "sabotage the bomb" as the final puzzle. If the winning outcome is our world, the bomb must go off as planned. Perhaps the player discovers some deeper threat -- aliens? time police? paradox itself? -- and must divert, at the last moment, from sabotaging Trinity to defeating this enemy.

"Paradox itself" is a tidy way to frame the threat: the bomb must go off, or history evaporates in a puff of logic! Except that this really falls back under the "immutable Laws of Time" scenario we covered earlier. It comes off as a cheat.

No, we need an enemy that the player will feel good about defeating. Aliens are too out-of-the-blue. Nazis are too Godwin (even in a WW2 game scene). Time travellers could work; a faction from the collapsing Soviet Union, perhaps. (Science fictional in 1986!) Say they pose an extreme threat -- say, a plan to change the outcome of the war, followed by a joint Nazi-Soviet hegemony of the world?

This would have to be developed at some length, and again, it's unclear whether Infocom had the resources to pull off a solid alternate history. But it's the option I'd try. If, you know, I knew anything about history.

Posted in Zarf on Games | Tagged , , , , | 16 Comments

Sweet formatting for Inform 7 source code

One of my limited, high-level Kickstarter rewards was "The Hadean Lands source code, in book form". I had these printed in January, I mailed them out last week, and some of my backers have already received them. They're a hit!

@zarfeblong Hadean Lands source book looks fantastic. If I7 source is readable in book form, this is about as good as I'd expect it to look. (-- @dan_sanderson)

My Hadean Lands Source Codex book arrived. Wow - really nicely done. I'm in love with this strange artifact. Thanks @zarfeblong! (-- @telehack)

@zarfeblong Book received, really nice! What service did you use? Did I7 output source that nice-looking or did you post-process a lot? (-- @dan_schmidt)

That last is an excellent question. Everybody deserves nicely-printed source code, so here's how I did it.

(Spoiler: here's my Python script.)

Inform 7 syntax-coloring is a solved problem... sort of. The I7 IDE does it, right? Syntax-coloring plugins have been contributed for several editors and tools. But, of course, none of them were exactly what I wanted. So I had to grab a shovel and start digging.

(Maybe I should avoid that metaphor, given the past month of Boston weather. Hm.)

The most prominent syntax-coloring tool that I'm aware of is Pygments. GitHub uses it. Pygments picked up Inform (6 and 7) support in release 2.0, which is why you can visit a GitHub page like this Kerkerkruip test extension and see nicely-colored source code.

...well, sort of nice. There are some obvious problems here. The latest version of Pygments does a better job (I guess GitHub is using a pre-release version?) but it's still not ideal.

For I7, I want just a few text styles:

  • Ordinary code
  • Comments -- italics
  • Strings -- boldface
  • Interpolations (square brackets) inside strings -- bold-italics
  • Headers -- large font
  • Inform 6 inclusions -- fixed-width font

It's a little trickier because I6 inclusions can themselves contain comments and strings, so you also need fixed-italics and fixed-bold. That's still just eight styles total.

(Yes, you can further color I6 inclusions into seventeen styles based on the details of I6 syntax, but that's a terrible idea.) (I did toy with distinguishing I6 dictionary words from I6 strings, which is important for I6 programming, but I decided not to.)

Marking up I7 code this way is only moderately fiddly. (Fiddliest detail: I7 comments can be nested!) I've already written a BBEdit plugin that does it, so I just had to port the algorithm to Python and build a Pygments lexer class.

Problem solved... sort of. See, I decided to use Pygments's RTF formatter -- I wanted to generate RTF and then import it into AppleWorks. (I mean ClarisWorks. I mean iWorks. Oh, never mind--) What I found was that Pygments's RTF assumes a text-editor-like display -- all the same font, all the same font size. I had to hack around and repurpose some style attributes to get the effect I wanted.

Of course RTF is a terrible, stupid legacy format, but the Pygments people have done the hard work of figuring it out.

So, problem now solved? Well...

Here's the script I built to do the job: It contains my custom I7 parser, my custom RTF generator, my custom stylesheet, and some code to read in a bunch of files and glue them together. (HL comes as a set of nine files -- a master and eight extensions. I7 prefers one giant file, but I can't work that way.)

The script can generate colorful RTF, or plain black with only the font variations to distinguish styles. Obviously, for the book, I went monochrome.

Loading this into PagesWhatever went smoothly -- praise the little hobgoblins of consistency. However, I still had to do some hand-tuning. I added page breaks between each files. I also marked the title line of each file with a custom style, so that Pages would generate a table of contents for me. I added all the necessary fore-matter -- title page, copyright page, introduction. And then I spent a while tweaking margins and tab stops and font sizes so that the thing wasn't quite so much of a brick.

Generate a PDF, package it up, send it off to Whoops, nearly forgot the cover art... And then wait for the proof copies to arrive.

The proof copies arrived, and -- wow, they were bricks. Just because A4 paper size is a valid Lulu print option doesn't mean you want to ship thirty of them across the country. Or lift one of them, for that matter.

Also, there was an extra blank page after the title page. Yes that matters! My copyright page was on the right-hand side! All my page numbers were in the gutter!

I guess it goes to show that PDF is also a terrible, stupid legacy format. I verified with customer support that they had the same PDF I sent, and it didn't appear to have an extra blank page when they looked at it, but when it came out of their printer... oh well.

I had to reformat anyway, because A4 was hopeless. I knocked down the font size and the page size. (I settled on comic-book trim, 6.6"x10.25".) I messed with the margins some more. Magically, when I sent in the new PDF, the extra-page error went away. I'll never know why.

That's the story. Now I have Hadean Lands books. Twenty-nine lucky backers soon will too.

Tagged , , , , | 4 Comments

Forward planning for IF tools

I've been bemoaning the slightly run-down state of IF interpreter software. (The confusing font preference system in Gargoyle is just one example.) The fact is that the big surge of open-source IF activity was the late 90s and early 00s. Since then, coders have been drifting out of the community, and the ones still around have gotten lazy. (I include myself in that indictment, for damn sure.)

As a community, we do not have a tradition of mentoring and fostering new contributors to IF projects. All of our projects were made by people (most often solo developers) who got excited and wrote a whole application or library.

I like to think that we've got a good software stack, which smooths the path a little. You can write an Inform extension or a Glk library port or a Glulx engine core or a Parchment web service, and it will fit into the ecosystem. But it still starts with a person showing up with enough energy to start, build, and finish an idea. If someone shows up who is curious but not committed, we nod companionably and wait to see what happens. The results, over time, are predictable: activity slows down and stops.

With that introduction, you'd expect me to go on and talk about mentoring. But I don't know anything about mentoring. I'm one of the control freaks! I'd rather work on my own projects than collaborate.

Anybody want to think about community-building? (Hopeful look around...)

(Of course a lot of my projects are specifications and tools that interoperate with other people's code. So I kick myself in the ass and make it happen. But my natural talents do not lie in management.)

In this post, I'm going to talk about my plans as a solo IF tool developer. Warning: I will also talk about money.

I have a whole list of things I think Need Doing In IF (see footnote) but the one I intend to tackle next is Glk 2.0. This is pretty much the same Glk 2.0 plan I've been planning for years, but since it's been years, not everybody may remember it. (Or perhaps you remember it with bitterness and loathing, in which case I apologize.) In any case, I will explain it from the top.

The plan is: integrate Glk (the Glulx VM display layer) with CSS and Javascript. That is, you will be able to distribute Inform games with custom stylesheets and special display effects (see Vorple).

Why CSS and Javascript? Because they have already conquered the universe, so we might as well give in to our anger and rule at their side. Also, the most commonly-used IF interpreters are written in Javascript, which makes adding these new features trivial. (If we plan correctly.)

So how do we approach this? I'll admit up front that this plan isn't complete. This is a sketch; I have parts of it worked out.

The basic idea is to define a canonical HTML representation of Glk output. Or rather, a canonical DOM representation. (The DOM is the internal data structure that a browser builds when it reads in an HTML file.)

Currently, the Glk spec describes output in terms of windows, text, and text styles. The new spec will explain this in terms of HTML <div> and <span> elements, and the CSS classes for each one.

I don't mean that your Inform code will output HTML. For simplicity, and to maintain a clean separation of concerns, the Glk calls in the Inform library will remain the same. You'll set a style and print some text. The interpreter's job will be to either translate those calls into HTML (as defined by the spec), or do the equivalent job of text display.

Nor do I mean that interpreters will have to support every crazy CSS trick that Firefox is capable of! Far from it. The idea is this: whatever display capabilities the interpreter does have, let CSS guide where it's used.

It's easy to misunderstand this. Let me lay it out in an organized way.

  • This is a change to the way the interpreter (Glk library) manages the display, not a change to the way you write your Inform game.
    • But there will be some new capabilities available for Inform games. Mostly this will be about letting you use more styles.
  • The display of a stock Inform game will not change much. Any changes will be in the direction of more uniformity between interpreters.
  • This should not require interpreter maintainers to rewrite their code from scratch.
    • Javascript interpreters (Quixe) will work by generating HTML information and shoving it into the browser display. This is how Quixe has always worked. I'll just have to add the CSS and make some adjustments.
    • C interpreters (Gargoyle, WinGlulxe, Zoom, Floyd-bot, etc) can continue to work the way they work, by calling OS-native text-display calls (or use SDL or telnet or whatever). However, to decide on text display attributes for each style, they should start using CSS information. I will provide a library to make this easy.
    • Alternatively, C interpreters could switch over to HTML display. That is, they could throw up an OS-native HTML widget and shove HTML into it, just as Quixe does. This is optional, but it has some advantages -- see below.
  • The new plan will initially be available through an I7 extension. I expect that some future I7 release will make it the default.
  • What new features does this plan give us?
    • A game author will be able to include a CSS stylesheet with the game. This will customize the way the interpreter displays the game.
    • A player will be able to select a CSS stylesheet as an interpreter preference. This will customize the way the interpreter displays the game (overriding the author's stylesheet if necessary).
    • There will be some way to display more and fancier styles. I know we had an argument about this a few years back; let's not restart it in this post. I haven't nailed down the details anyhow.
    • A game author will be able to include a Javascript library (or libraries) with the game.
      • For HTML-based interpreters, the Javascript will be loaded into the browser page (or HTML widget). It can then perform arbitrary display tricks. Glulx Vorple can be built on top of this.
      • For interpreters which do not have an HTML layer (i.e. old-style C interpreters), Javascript tricks will not be possible. The game will have to degrade gracefully or give up.

Where am I with this plan? Not very far. Even after all these years.

I have a roadmap. I've just finished step 1. It will be a few steps more before anybody else has to start writing code.

  1. Write a simple, dependency-free C library to parse CSS. Done! I thought this would be a weekend hack; it actually took many days of work, because CSS is just as horrible as every other Web technology. (No, I didn't search for prior art before I started hacking. Who do you think I am?)

  2. Nail down the HTML representation and the Glk API changes it will require. Think about how it affects all existing interpreters.

  3. Update GlkTerm to the new model. GlkTerm is a terminal-window library (it's built on ncurses), so it can only support a few text attributes -- boldface, underline, ANSI color. This is enough for a proof of concept.

  4. Update Quixe to the new model. (And jQuery, while I'm at it.) Quixe is an HTML-based interpreter so it will allow the full range of CSS and Javascript fireworks.

  5. Write the I7 extension that enables this stuff.

  6. Write a lot of demos. (Not just to show off! Demos will let other interpreter authors know they're hitting the mark, display-wise.)

  7. Update RemGlk and CheapGlk.

  8. Unleash my reign of terror upon the world.

Easy, right?

You can reasonably ask how long all of this will take. Especially since I laid out much the same plan at least five years ago, and then again three years ago, and I've just managed to finished step 1.

Well, Hadean Lands is done. That's a big carcass off my plate. Also, for this semester I'm spending one day a week at MIT(*) and that's a nice regular schedule for working on the project.

(* But not this week, because it snowed some. And the Red Line caught fire or something.)

It's still a lot to promise; enough that I feel queasy just posting this post. I hate making promises that I don't keep.

Thus to the subject of money.

Post-HL, I would like to work more on open-source IF tools. I would also like to work on indie games that will pay the rent. (HL does not pay the rent in the long term, despite the stellar reviews I got this month.) There's also contract work and so on. Life balance, it's hard.

One way to converge these interests: find a way to crowd-source IF tool work. But this is not an easy model. It's not a Kickstarter -- it's ongoing work, not one big deliverable. It's not exactly a Patreon, because I can't give backers early access or bonuses. (But some people try this anyway?)

I'm signed up for Gratipay, which started as a tip model for GitHub users (but now supports any developer). I haven't publicized it at all; despite this, somebody is giving me 33 cents a week. (Thanks!)

Are there any other patronage systems which you folks think I should investigate?

(Note: I am not asking for money at this time! I'm thinking about ways in which I might ask for money in the future.)

I realize this is an awkward subject. Many people support IF software. I don't want to be The One Who Gets Paid while everybody else labors away for free. On the other hand, there's a lot of work that isn't getting done; this has been true for years. I can start to unstick this, but not to the exclusion of paying work.

Furthermore, the Glk 2.0 plan isn't the only thing on my plate. I'd love to get back to Tworld (the Seltani engine). I could dig into CocoaGlk and figure out why Mac Zoom occasionally crashes (and why Mac Inform 7 occasionally trashes my skein, and maybe why it occasionally eats somebody's source code...) I could spend some time experimenting with the rule-based language idea, zog help me.

What I'd really like is a patronage-and-voting system, where people could put money into different projects, with the understanding that the ratios determine how much time I put into each one. Does anything like that exist? (No I'm not going to build one.)

...Wow, this post has wandered in circles, hasn't it. A mix of plans, promises, positions, and pleas!

I guess I'm trying to figure out where the next phase of my life falls, relative to the IF community. I have taken stock, and this is what I see. Comments welcome.

Posted in Zarfplan | Tagged , , , , , , , | 28 Comments

Hadean news of the week

I thought this was the boring part of the release process. Hadean Lands has been out for a couple of months, I've done a couple of iOS updates, time to settle down and work through the Kickstarter rewards. Plan for more distribution platforms, like Steam and the Humble Store. Boring stuff.

Wrong! It's crazy excitement time.

First thing this week, two fantastic reviews appeared:

"The best video game I played last year is a science-fiction thriller about alchemy, and it has no graphics or sound effects." -- David Auerbach, Slate

"Hadean Lands is an endlessly clever experience." -- Sean Clancy, Pocket Tactics

Suddenly the sales rate is going nuts, Twitter activity is buzzing, and my head is spinning.

When a wave of publicity hits, that's when you want a Steam Greenlight page, right? (Greenlight is the voting system that Steam uses to gauge public interest in new indie games.) So I have spent the past day constructing one. Here it is:

Vote for Hadean Lands on Steam Greenlight!

This isn't a purchase; it just indicates to Steam that this is the kind of game you want them to offer. When enough "yes" votes accumulate, I get a slot on the Steam storefront. (No, I don't know how many votes is enough.)

(Speaking of Greenlight, I note that two other parser IF games went up this month: Jack Toresal and The Secret Letter (Mike Gentry and David Cornelson) and The Shadow in the Cathedral (Ian Finley and Jon Ingold). There's also Her Story, which is not a text game, but is by IF author Sam Barlow. And that must only scratch the surface; I haven't even tried to survey the Greenlight world.)

Other news:

  • The process for getting a Humble Store slot is already under way. They say there's a queue for games to show up there, and I'm in it.

  • The current sales widgets (Humble Widget and Itch.IO) now offer separate downloads for Mac, Windows, and "generic" (everything else). The generic download is the same package that's been available all along; it contains the game file and instructions for finding an interpreter. The Mac package contains the interpreter, ready to install. The Windows package has a standard Windows installer which sets everything up for you.

  • David Welbourn has written a detailed walkthrough of HL. Massive spoilers, obviously! When it comes to HL hints, I like to send people to the IF forum rather than a walkthrough. I think it's more engaging to talk to other fans about the game, rather than finding a file of answers on the Internet. But David's work is terrific and deserves recognition. (Also, maybe, a tip? He's got a Patreon for creating IF walkthroughs.)

  • The Kickstarter reward CDs are in production. They should reach me by Feb 6th, says the duplicator.

  • I have the reward books now; they just have to be packaged up and hauled to the post office.

  • The reward posters have arrived, but the printer screwed up somehow. Half of the posters are smeared. The other half are fine, but I want to ship them all in one batch, so there will be a delay. I have contacted customer service and hopefully it will all get straightened out; I don't know when. Sorry about this.

  • For added fun, I have jury duty next week. That will fill up an unknown number of work days.

I want to address one other issue: the font preferences in the Mac and Windows interpreters. "But there are no font preferences in the Mac and Windows interpreters!" Yes, Watson, that is the curious thing.

In fact you can adjust the fonts in Gargoyle. You have to edit a file called garglk.ini, which is bundled with the interpreter (on Windows) or in your home directory (on Mac). On Linux I believe it's named .garglkrc. Go in there with a text editor and bump up the propsize line, and also leading while you're at it.

(If you used the Windows installer, you'll have to make the file editable first. Select Properties on the garglk.ini file, select Security, edit the permissions).

Yes, this is a rigmarole. Why did I stick you with it? The short answer is, well, the Kickstarter was for a game and an iOS interpreter. I didn't have time to write desktop interpreters too. Gargoyle is the best interpreter available right now, but it started as a Linux project, it's got this Unix-style config file, and that's just the way it goes.

(For the Steam release, I'd like to modify this. But no bets right now.)

Posted in Zarfplan | Tagged , , , , , , , , | 7 Comments

IF at Arisia

Arisia, one of Boston's many sci-fi conventions, is coming up this weekend. I won't be there (I'm at Mystery Hunt) but several Boston IF people will be, and there are a whole slew of IF-related panels and events.

First, there will be another Lost Pig performance (with audience participation) on Friday evening, 7:00 pm, Grand Ballroom B. Hosted by Brad Smith, with live performances and foley.

Panels of IF relevance... (Note: I'm pulling these from the Arisia schedule, which is subject to change. Also, these are just the panels I see which strike me as relevant and/or which include IF people I know. There's a whole Gaming program track which you could go to.)

Games and Minority Representation (Friday 10:00 pm, Alcott): Heather Albano, Bob Chipman, Caelyn Sandel (m), Pablo Miguel Alberto Vazquez III

Gender and Gaming (Saturday 10:00 am, Griffin): Chris Denmead, Brian Liberge, Meghan McGinley (m), Maddy Myers, Caelyn Sandel, Brianna Wu

DIY Digital: Homemade Video Games (Saturday 4:00 pm, Faneuil): Adri, Heather Albano, Caelyn Sandel (m), Carolyn VanEseltine

The Internet Hate Train: Moving Past Gamergate (Saturday 5:30 pm, Faneuil): Adri, Bob Chipman, Maddy Myers (m), Caelyn Sandel, Alan Wexelblat, Brianna Wu

Games as Interactive Literature (Sunday 4:00 pm, Adams): Adri, Meghan McGinley, Joshua A.C. Newman, Rebecca Slitt, Alan Wexelblat (m)

Video Games as Art (Sunday 5:30 pm, Adams): Bob Chipman, Israel Peskowitz (m), Caelyn Sandel, Carolyn VanEseltine

Go, enjoy, stay hydrated.

Posted in Boston | Tagged , , , | Leave a comment

Trope Tank Writer in Residence, Spring 2015

I am proud to announce that I am the first Writer In Residence at the Trope Tank for the coming semester.

What is the Trope Tank, you ask? That's Nick Montfort's office at MIT, home of his enormous collection of classic videogame hardware, software, and literature. (You can see just one corner of it behind me in the photo.) (Although I think the Asteroids cabinet is out of order again.)

What does it mean that I am a Writer In Residence? Well, basically it means that I have a key, and I will be hanging out in the office once a week. Wednesdays, I expect. I will certainly be working on some kind of IF project there; possibly Glulx upgrade work or interpreter hacking. And, generally, I'll help keep the lights on -- Nick is on leave for the spring semester.

The People's Republic of Interactive Fiction will continue to hold monthly meetings in the Trope Tank. Possibly we will schedule other events there, such as IF writing circles. Details remain to be determined. Join the PRIF mailing list if you're interested.

Thank you, Nick. I look forward to the coming semester.

Tagged , , , , , | Leave a comment

The Talos Principle: design ruminations

As it happens I replayed Portal 2 right before The Talos Principle launched. That's gotta be the last thing a game designer wants to hear, right? "We don't use the term 'Portal-like', but, sure, Talos is... wait, you just replayed Portal? You couldn't have waited a couple of weeks in between?"

(I haven't gone to check whether the designers used the term "Portal-like". Nobody's going to disagree with it, nohow.)

Talos is a pleasant puzzle game with a nice script and good art and bullet-holes in several of its own feet. I recommend it but I wish it had fewer self-inflicted wounds.

(Note: in a "ruminations" post I don't offer an overall review. Instead, I focus on particular areas of design that I find interesting -- or problematic. So don't freak out just because I complain a lot.)

I hate to say this: Talos's problem feels like laziness. I hate to say it because the creators are not lazy. They worked hard. There's plenty of game here, but... well, I stand by this tweet:

Talos Principle has some great stuff, but wow, serious case of "Made a large game because it was easier than making a small one." (@zarfeblong, Dec 15 2014)

Let me talk about the structure. Talos is a bunch of puzzle areas with a hub-and-spoke structure, and once you unlock a few of those you reach a higher-level hub which leads to six more puzzle hubs, and then you unlock a third level. It's a lot of puzzles, but they open out in a nicely paced way. There are a bunch of puzzle mechanics, which interact in clever ways. Some of these mechanics are available immediately; others have to be unlocked by solving earlier puzzles. Then there are some bonus puzzles, which unlock optional puzzle hubs. There's an endgame sequence, which is a series of puzzles that you unlock as you complete the body of the game. When you get through those, you reach one big final "boss" puzzle.

So what's wrong with any of that? Nothing, except that word "unlock" which you just read five times in a row. See, the reward for every puzzle is a "sigil", a.k.a. a tetromino (a.k.a. a Tetris piece). To actually unlock every part of the game, you take your six-to-ten tetrominoes and fit them into a rectangle. Music plays, angels cheer, the lock opens.

There are... oh, I didn't count, let's say approximately one hundred and eleventy-one tetromino puzzles in Talos, in between (and gating) the actual puzzles. The actual puzzles are creative, engaging, and constantly demand creative thought about new ways to combine the basic mechanics. The tetromino puzzles are all exactly the same.

Hear us. We're not shouting "Oh, yay, another forty-leven tetromino puzzles!" What you hear are ceaseless mutters: "Not another damn tetromino puzzle." Cleverness is not required; in fact it's useless. You just have to put pieces in the grid and shuffle them around until they fit. Again.

(I try to imagine replaying Talos, like I've replayed the Portal games. Going through the puzzles would be fast, if I remembered the solutions, or fun, if I had to figure them out again. That's the adventure tradition. Going through the tetromino locks -- would be exactly as tedious as it was the first time.)

This is laziness. The designers had a structure, and they forced themselves to put creative puzzles in the structure, and then there's the rest of this boilerplate where they said "Tetrominoes" and never thought about it again. Or maybe they thought about it and decided not to do anything about it.

What could they have done? Variations. Triangles and hexagons. Pieces that you have to stack instead of tile. Anti-tiles. Transparent tiles. Diagonal tiles. Tiles that you have to flip over. Letter tiles that make words. They could have gone metapuzzle and made you reuse the basic game mechanics in the tetromino puzzles. Add your own ideas here. Anything but another sixty-twelve rectangular tetromino grids.

The designers had so many tetromino puzzles lined up that they released the extras as a separate game on Steam. Look, people, when you can generate that many shallow variations off the cuff, it doesn't mean you have a puzzle bounty. It means your players got tired of that puzzle model back in the 1990s.

I could extend this complaint to other aspects of the game. The scenery is pretty, as I said, but perhaps there's too much terrain and not enough variation in the decor? I suppose I'm stretching my point. The three worlds are three distinctly different landscapes (and the hub world is a fourth); the zones within these are variations on the theme. They made an effort. If I weren't already exercised about repetition, I could let it slide. But... no, it's a bit too much terrain and not quite enough variation.

Do there need to be, what is it, ninety-odd puzzle areas? Portal and Portal 2 together don't have that many. Talos's are all good puzzles, sure, but you could have cut some. I know -- it's a thorny thicket of audience expectation -- "$35 game, gotta satisfy the players" -- there are always complainers.

But you could have tightened Talos up. Really. It would have been extra work, because editing is hard; killing your darlings is hard. But you'd have made a better game.

On the plus side, there's a clear distinction between the main puzzles (clearly presented, well-demarcated areas, smooth difficulty curve) and the optional "star" puzzles (out-of-the-box thinking, hidden secrets, random exploration required, goofily hard). That's the right way to put your wild ideas and extra content into the game.

(I'm a bit grumpy that the bonus stars unlock bonus puzzle areas. (With, yes, more tetromino locks.) The point is that players should solve all the main puzzles but struggle with the bonus puzzles; they'll only solve a few of those. (I only solved eleven.) But then why make some of the bonus puzzles extra-hard to reach? Offer them all, let people solve what they can solve.)

Nothing that I've said implies bad game design. These are places where the design could be better. The only failure is the failure to take that extra step. Or, okay, to run that extra mile. (The hardest mile of the marathon, to be sure.)

...And then we reach the boss puzzle, the place where I nearly stopped playing. I get that you want to impart a sense of urgency. But a time limit on thinky-puzzles just sucks. Lack of checkpoints, that sucks the giant oozing slimy banana-slug of suck.

What's that you say? Both Portal and Portal 2 had time limits in their endgame puzzles? Yes, but they had really good checkpointing. If the neurotoxin killed you, you restarted that stage of the endgame, working on the same task as before.

When you die in the Talos endgame (and you will), you start it all over. There are five stages; I must have repeated that first stage six times. Why the hell is that a good idea? I already solved it! Five times! Let me work on the puzzle that I'm stuck on!

Did you have any play-testers? Did they say "Oh, well, solving the same puzzle over and over is the best part of your game"? Or had you already destroyed their will to live with tetrominoes? What's frustrating is that if there had been checkpoints, the time limit wouldn't have bugged me; and if there had been no time limit, the lack of checkpoints wouldn't have bugged me. (Much.)

I got through it eventually. (After giving up, going to bed, and re-launching the game the next day. Not eagerly; with fear and trepidation and grumpiness.) I got the good ending (or as good as it gets without obsessively walk-through-ing the bonus stars, which I don't intend to do).

...I haven't discussed the script or the narrative, and I should, because they're solid. Talos uses the "trawl historical databases about the end of civilization" story model, well-known from games such as (sorry) Portal. Then, slowly, a more interactive element intrudes.

This isn't the usual sort of "I am an NPC, you are a PC, let's have a conversation that moves the story along" thing. I mean -- it is, but the format is -- okay, this is going to sound silly -- the format is a sophomore late-night stoned philosophy bull session.

Let me back up. The concern of Talos is free will and moral agency. The interactive dialogue is an interrogation of your ideas on those topics. It asks you questions and then (in the manner of all sophomore stoned philosophy sessions) tries to undermine your answers with thought experiments and more questions.

Of course (and ironically) the machinery behind this is a bog-standard menu-choice dialogue tree. (With some state.) But it carries off the illusion surprisingly well, just by tracking your answers and reflecting them back at you. It's a sneaky trickster character, so its voice shifts occasionally, which keeps it feeling fresh. And since any sophomore argument about free will and morality can be summed up in one line, and demolished in another line, the dialogue-tree format actually fits really well.

I don't think it's revolutionary IF technique. It wouldn't apply to most games. But it's a nice marriage of theme to a familiar form.

So that's what I've got. I recommend The Talos Principle -- with reservations. No, I haven't talked about the good puzzle design; there's plenty of good in there. You'll enjoy the game. You just have to get through a lot of frustrating moments as well.

Posted in Zarf on Games | Tagged , , , , , , , | 8 Comments

Holiday iOS app sales

It is Christmastime, the time of bundles... okay, every month is the time of bundles these days. Bundles have become continuous. We get it. We're joining in!

I have posted Zarf's IF Bundle on the iOS App Store. Basically, you buy Hadean Lands through this link, you get my Shade and Heliopause apps thrown in free. Why not? If you've already purchased HL for iOS, the "complete my bundle" link should let you download the other apps.

And while I'm at it: Meanwhile for iOS is now on sale for two bucks, through the end of the year. That's 60% off! Or like 87% off as compared to the hardback book!

(Let us not speak about the relative values placed on creators by the book and software industries these days. I'm trying to gin up some product excitement here.)

So go buy Meanwhile now, if you haven't. If you have, why not gift a copy to a friend? Or an enemy? Two weeks only! Imagine lying on the living-room floor, next to the tree or bull's-head or aluminum pole or whatever your December celebratory decoration is, scrolling around Jason's mad-science fairy tale and trying to remember where you left the branch that doesn't involve zapping the Earth clean of human life.

And then buy Hadean Lands too. The nickel beads demand it.

Tagged , , , , , , | Leave a comment

Gone Home: design ruminations

I don't imagine that Gone Home suffers from lack of reviews. I heard about it from several directions when it came out, and that was over a year ago. But I just played it.

(Yes, I am slowly starting to dig into the past four years of indie IF that I was too busy writing my own game to play. Yes, I will also get to Bioshock Infinity one of these months.)

I don't have anything to add to the discussion of Gone Home as a story game, or as a game about gay folks, or as a flashpoint of hatred from jerk-gamers. That's all been covered. Nor am I going to tell you why you should like or dislike the game. I liked it, a lot of people liked it, that's not news.

Instead, I'm going to give my impressions as a game designer. This is what I would have said if I were on the team building the thing. Or, more likely, having muffins with the designer during the wild-idea stage. Maybe that'll hit some new ground. If not, well, too late -- I've already written this post.

I'll start right in with some petty interface neepery. This is a game whose interface is entirely about picking things up and rotating them. But when things get interesting, it doesn't do a very good job of sticking to that interface!(*)

Objects in the game which can be manipulated, rather than just examined: housekeys. A combination dial lock. Cassette tapes. Notice something? All of these objects are rotated as part of their normal use.

But the game doesn't make use of its rotatey interface for this. You don't stick the key in a lock and turn it; you just click on the door and zap it's open. You can't turn the cassette over, stick it in the player, and hear the other side. The combination locker is particularly bad; you learn the combination in the familiar form ("turn left to X, right to Y...") but you enter the combination using a four-digit interface with arrows. (Which doesn't even match the format of the numbers you're given.)

I've already admitted this is petty. The interface they've got works and it's easy to use. To make it all rotation-based would require some additional cueing; the housekey wouldn't be automatic. But harmonious UI matters! When you pick up an object, turn it over, and discover something written on the back -- that's got that little IF zing. You used familiar actions in the world, in an intuitive way, and were rewarded. Or when you pick up an object and discover something hidden underneath. Or when you pull a secret panel aside. Gone Home has some of these moments, and they zing. Being thrown out of the UI convention to open a locker: zingless.

A more fundamental clash with my IF sensibility: the game isn't about you. No, strike that -- I'm fine with games where you discover another character's past. (I've written that one, more than once.) But this game's narration isn't positioned the way I expect.

Kaitlin, the viewpoint character, comes home from a year in Europe to discover her house is empty; she (you) then encounters texts narrated by her sister Samantha. But this confused me at first! For a few minutes, I thought I was playing Samantha, recalling her (my) experiences in the house.

When I encounter non-diegetic voice-over in a game -- texts not anchored in a found journal or tape recording -- I expect them to be my thoughts. The narrator is the protagonist is the player. Or the narrator is the protagonist addressing the player. Or maybe the narrator is a third party addressing the protagonist -- but usually there's a cue indicating that.

(This is the convention that Sands of Time twisted so wonderfully, by having the protagonist narrate the game apparently to the player, but in fact to another character in the story.)

The "twist" at the end of Gone Home -- not a spoiler -- is that you discover Samantha's letters, the ones which you've been hearing as narration. This is fine, but then how are we to understand Kaitlin's experience? Has she been wandering through the house, unaware of the story that I-the-player have been hearing, to instead learn it all at the last moment? What does this separation of the player's experience from the protagonist's accomplish? It's not revelatory (as it is in Sands of Time); it's just confusing and distancing.

How would I rewrite this? I have no pat answer. Scatter Samantha's letters through the game? Obvious and clumsy; it erases a story element, Sam's hesitance to trust you with her story. Or maybe Kaitlin should start with the letters, received over the course of the year, and recall them as the environment cues them? This still separates the player's experience (now Kaitlin knows more than you) but perhaps in a more natural way.

Or maybe Samantha should have been the protagonist, after all. Eliminate Kaitlin, who is essentially the classic faceless adventure protagonist. (She has a name, gender, and age, but no personality or relationships beyond the excuse of a year abroad. In retrospect her opening monologue, promising to arrive home, is what tripped me up as much as anything: it's a false promise, a voice that will never be heard again.)

Would Gone Home have worked better with Sam's point of view as well as her narrative voice? I don't know. I just feel like the game-as-it-is missed an opportunity.

(The idea of "I am the protagonist, and I am going to tell you a story even as you manipulate me like a puppet" is one of the great weird unacknowledged conventions in gaming. It's somehow become completely natural, even cliche, to players -- even though it makes no narrative sense. I don't blame Gone Home for not using it! But it's familiar because it fills a need: it credits both the author and player with 100% responsibility for the story, with an unspoken agreement to ignore the contradiction.)

Well. I've made two criticisms, but my goal here is not to complain. (As I said, I liked Gone Home!) Let me switch tracks and talk about what kind of game it is.

(Or, if you don't think Gone Home is a game(**), I'll talk about what kind of game it isn't. I'm an atheist, but I'm a Jewish atheist.)

What game mechanics are we given? A dense environment with a lot of environmental story elements. Locks and combination dials, with the keys and combos found elsewhere, mixed in with story cues. Notes about secret passages and hidden panels, which are then marked on a map. A plot which is gated using these keys and map markings. A structure in which you have to backtrack to use them, discovering new elements in familiar rooms. Creating shortcuts, once you've reached an area, by unlocking a door from the other side.

Any of these mechanics could appear in nearly any kind of character-centric game: action, adventure, platformer, RPG. But if you ask which archetype game had all of them, I immediately answer: Silent Hill.

My contention: Gone Home is survival horror minus the horror and the survival elements.(***) And this is not surprising, because the core trick of survival horror is getting you to move slowly and focus on your environment. That's what this game wants. It doesn't lean on the threat of stumbling into a zombie pit, or even (c.f. Fatal Frame) the penalty of missing a one-shot ghost manifestation. But it does put you in a dark room, fumbling for a light switch. And you don't want to miss anything.

I do wonder how much of this flirtation with the survival-horror form is deliberate. While playing, I knew (from minor spoilers) that Gone Home doesn't end in blood-soaked tragedy. But I half-expected a tragic ending anyway! My expectations were drawn by the familiar horror trappings, both the environment (the dimly-lit empty house) and the Silent Hill mechanics. I suspect that was deliberate. Certainly there are story elements which allow you to imagine both a ghost story and a contemporary tragedy, a Gay! Teen! Suicide! plotline. Again, I knew that the story wouldn't be resolved that way (and I would have been deeply off-put if it had been). But the form plays into that tension as much as the text does.

I also wonder about the decision to place the game so firmly in 1995. I imagine (without checking) that this comes from the experience of the authors, that they were in high school in the mid-90s. It's a personal game, certainly. And the setting helps place Sam as a particular character, rather than a projection of the contemporary player. (Though Kaitlin is such a projection.)

But the effect is that the game feels dated; it was dated the day it launched. (As distinct from feeling retro or nostalgic or a period piece.) The experiences of queer high school students today are not those of Sam and Lonnie. Lonnie is a ROTC student; Sam comments on the don't-ask-don't-tell policy -- brand-new in 1995, but two years gone by the time the game was released. High school students today still have problems, but they're also (nationally) (on average) ahead of the curve, openly dragging their elders ahead.

It's hard not to notice, playing in 2014, that Sam and Lonnie could well be married and raising kids today. Or split up (high school romances, right?) and married to other people. Or not married. Or not identify as lesbians, or not identify as women, or not be alive. Gone Home does not address this, and that suits; it's the narrative of 17-year-olds. I'm not that age; the authors aren't. Are they writing for today's teenagers? People their own age? (Maybe this is nostalgia after all: the nostalgia of having believed that 17 was forever.)

The game feels dated in another way. It's personal, as I noted, but not in the confessional sense that the Twine community has embraced. It's about the experience of otherness, but it doesn't present it as your experience. Again: not the player's story, but a story told to the player.

I've come to expect this genre to be in my face, daring me to empathize. Radical otherness. But of course Gone Home isn't in that genre, or any of the intersecting IF communities that I'm familiar with. So there's my extra, un-looked-for dose of alienation: Gone Home is outsider art to me. I have no conclusion to draw from that.

Coincidentally, the day after I played, the author tweeted:

(quote from email): "...why do you think the majority of people are in agreement with lesbian relationships..."

interestingly, of the criticism Gone Home has gotten, this has been the rarest type of complaint. -- Steve Gaynor, 3 Dec 2014

The obvious reply is that it's 2014 and the majority of Americans are "in agreement" with lesbian relationships. That's been true for many years. (Same-sex marriage flipped more recently.)

That wasn't my reaction, though. I would reply: Gone Home is the story of your sister coming out. Is that something you are "in disagreement" with? What would your sister say to that? Or: what if you project yourself as the parents in the game? They are, after all, depicted with far more specificity than the faceless Kaitlin. So you're horrified by homosexuality; can you reject a game about what it's like for your child to come out? Because that's a thing that can happen.

(Ironically, if you assert that it can't happen, you're aligning yourself with the parents as they're depicted. So Gone Home should speak more to your interests. This is awfully clever of it.)

I guess that's all. Lo. I have ruminated.

Coincidentally (again), this weekend after I played, Fullbright Games announced their next game: Tacoma. There's a video teaser. I have no comment, except to say that if they really plan to do an environmental exploration game in free-fall, they've got a hell of a lot of design work ahead. I look forward to it.

(* It may have been Nick Montfort who first pointed this out in my presence.)

(** No, I don't have any real patience for the argument that Gone Home "isn't a game". One can have an interesting discussion of what "game" means, but not on the Internet, not this year. The bullshit artists have drowned out the genre analysts. We move on.)

(*** I have just cheated and done a web search on "gone home" "survival horror". Okay, I'm not the first person to assert this. Fine.)

Posted in Zarf on Games | Tagged , , , , , | 5 Comments


I failed to mention, six months ago when it was new, that I made another very short IF piece called Barbetween. Here’s a little trailer I made for it last month:

I made that trailer because the Independent Games Festival requires that at every entry have at least one video attached to it — and, verily, I have submitted Barbetween an as entry to the 2015 IGF. Here it is in that context. (Zarf’s Hadean Lands is there too, by the way.)

Barbetween was originally written as an entry for Shufflecomp, a truly inspired interactive fiction game jam run by Sam Kabo Ashwell last spring. It challenged its participants to create games around songs that randomly assigned to them (based, in turn, on shuffled-up playlists submitted by other entrants). My playlist included “Between the Bars” by Elliott Smith, whose work I was not previously acquainted with. That’s what this game is based on.

I arrived at the transformed title because “The Barbetween Age” sounded like a legitimate name of a Myst level, to me. And that was relevant because I chose to build the game as a sort of art installation within Seltani, which Zarf’s described here before. The conceit is that the game is a “real” sculpture found on one of the byways of the Myst universe, meant to feel more like a visitable thing carved out of a real location, rather than simply a program running on a website. I tried to accomplish this by including in the work some subtle, perhaps surprising asynchronous communication with other visitors to the site, about which I shall say no more here.

If this sounds interesting to you, I invite you to spend 15 minutes or so in Barbetween, yourself.

Tagged , , , | Leave a comment

Jmac is reading Aisle at WordPlay, Nov. 8

Toronto’s Hand Eye Society has posted the schedule for WordPlay, an afternoon festival of digital writing and interactive storytelling held at the Toronto Reference Library on Saturday, November 8. (Yes, this coming weekend!)

As Zarf has already written, WordPlay centerpieces this year’s (somewhat geographically displaced) weekend for the IF gathering that the Boston crew has hosted more or less annually since 2010. He and I will both be in attendance, as well as many friends in interactive fiction from around the world. Do say hello, should you find yourself there too.

As the schedule notes, at 12:15 on Saturday I shall be narrating a group play-through of Sam Barlow’s classic work of minimalist parser IF, Aisle, taking next-move suggestions from the audience. I don’t know if this’ll be recorded, but if so we’ll certainly share the results here later.

Posted in Boston | Tagged , , | Leave a comment

Two weeks left of IFComp judging

The 20th annual Interactive Fiction Competition remains open for public judging through Saturday, November 15. There are 42 games this year, many of which you can play right in your web browser, and all of which are free.

This is my own first year as competition organizer, and while I rather expect that many readers of this blog already count themselves as IFComp judges, I humbly invite the rest of you to take a look at this year’s crop of short new text games and consider participating as a judge. If you start within the next few days, you’ll still have time to meet the minimum judging quota of five games.

I don’t mind saying that we’re already on-course for a very healthy vote turnout, with over 2,000 individual game ratings already submitted — but more ratings are better, and with such a large crowd of contestants, every rating does count. I hope you’ll join us!

Tagged , , , | Leave a comment

Kicking it forwards

Since my Kickstarter project is done -- not done done, I still have postcards and so on, but done enough for soup -- I should write the "support this other Kickstarter!" post.

I've already talked about Elegy for Dead World, which came to a triumphant conclusion a couple weeks back, and Extrasolar, which sadly did not. But there are lots of crowdfunders still open this season. Kickstarters, Patreons, Indiegogos... Indiegogoes? Indiegogols? Anyway, here are a bunch which at least brush up against the interactive fiction world.

Ice Bound: A mixed-media game-and-book project by Aaron Reed. Aaron's earlier project 18 Cadence let you explore a house's history by rearranging and constructing texts. This one looks to be in the same vein, but more so. It was inspired, Aaron says, by House of Leaves as well as Borges, Nabokov, and Italo Calvino. The Kickstarter is already past its original goal and is now targetting an "open-source the engine" stretch goal. I am always in favor of game engines being open source. Four days left!

Haphead: A TV-on-the-web series: teenagers play videogames so immersive that they become actual badass ninjas. Produced by Jim Munroe, sometime IF author and indie filmmaker -- his last sci-fi effort was the movie Ghosts With Shit Jobs. They've got film in the can; they're collecting money for post-production and release. This has two weeks to go and hasn't yet hit 50% funding, so it needs some love.

Demon: You probably first met Jason Shiga through his CYOA-comic Meanwhile. (Possibly the iOS version that I helped create.) Now he is writing a (non-interactive) web-comic called Demon. Demon is a riff on the superhero genre which is both viciously bitter-dark and cheerfully nerdy-charming. I think it's great. You can read the comic for free, but Shiga is funding it through Patreon, so if you want to support him, that's how to do it.

Ready, Okay! and Photopia: Adam Cadre wrote a bunch of groundbreaking IF. You probably don't need me to tell you that. He is currently rewriting Ready, Okay! (his school-shooting comedy novel from 2000-ish). He is also writing a novel version of Photopia (one of the IF games that I don't need to tell you about because everybody in IF knows it). He's got an Indiegogo project to support these efforts. It's labelled "$500 flexible funding", but that's misleading. It's open-ended. The idea is that however much money he makes will go towards full-time writing, as opposed to between-the-cracks-of-the-day-job writing. Or you can support his regular blogging-and-reviews writing through Patreon.

I Hate Zombies: Kevin Wilson has designed a teeny little card game for BoardGameGeek, and they're trying to get it printed. Kevin has been part of the IF community forever -- he ran the very first IFComp in 1995. The game isn't IF-related, though, it's about zombies. "Rock-Paper-Scissors. To the Death!" Just launched, doing nicely.

Posted in Zarfplan | Tagged , , , , , , , , , , , , , | Leave a comment

All codes have now been distributed

Whew. The game is up, and all of the gifts and promo codes have been sent out. If you didn't receive something you should have received, contact me.

(This was an epic tale involving late-night gnashing of teeth, a lot of confusing problems, and three distinct phone calls to my bank. Rockland Trust, cheers to them, they were very nice and made everything work. Once it was, you know, banker's hours.)

The web site ( now has the purchase links for the iOS App Store, Itch.IO, and Humble.

(Note that the game doesn't appear on the Humble Store site itself. I'm using the Humble Widget to sell the download off my own site.)

Also note this excellent write-up of the game by Emily Short. She was a beta-tester, so it is not an unbiased review, but she gets why the game is built the way it is.

The next phase is the physical rewards. (CDs, postcards, posters, etc.) But before I start focussing on those, I am going to take a bit of a victory tour. I will be speaking about Hadean Lands at the WordPlay festival in Toronto (November 8th). I will also be attending (though not speaking at) the Practice conference at NYU.

Now, I just have to get the leaderboard page updated, and go to bed. Going to bed: important.

Posted in Zarfplan | Tagged , , , , , | Leave a comment

Zarfplan: Less than 24 hours now

App Store approval came through on the 25th. Everything is now queued up to launch the game on the 30th. Again, that web site:

Let me reiterate the launch process, now that I know (nearly) all the details.

At one minute after midnight (Eastern time), I will update the web site to show Hadean Lands on sale.

Next, I will send out a batch of email containing Humble and Itch.IO keys. The email will be marked "From:", so keep an eye on your spam filters. Emails should all go out by 2 AM Eastern time.

The iOS app, again, is tricky. I have to employ several different mechanisms and the help of some generous volunteers. (Generous with their time, I mean. I'm covering all the costs.) So the iOS apps will go out in several batches at various times. I hope that they'll all be credited to your accounts by the evening of the 30th.

I wanted to make this perfectly simultaneous, but perfection was not available. I apologize.

The details: if your iTunes account is based in Great Britain, Canada, Germany, or Finland, you will receive the iOS app gifted from one of my volunteers. (Thanks to Juhana Leinonen, Christoph Ender, Brian Lavelle, and Tucker McKinnon for helping!) If you are in another non-US country, you will receive a code in email from; redeem it in iTunes. If you are in the US, you will receive the app gifted from me; the exact time depends on arrangements with my bank.

If you have trouble getting the app, or if you fail to get email that you think you should receive, contact and I'll fix it.

Finally: I will be running... not a contest, exactly. But I'd like to track who solves Hadean Lands first, or at least who makes the most progress in the first week.

I've set up a "Leaderboard" page on the web site. ("Leaderboard" is a silly word for a puzzle adventure game, but it's what everybody recognizes.) If you want to show up on it, tweet to the hashtag #HadeanLands when you complete a ritual for the first time or visit an interesting room for the first time. I'll keep an eye on the hashtag and update the page with your progress.

(I'm updating the page by hand, so don't expect instant results. As I said, I'll only be doing it for the first week or so. There is no prize for this other than the glory of your Twitter-handle in lights.)

(And, obviously, the leaderboard page will have some spoilers! It won't give away puzzle solutions, but it will reveal the names of rituals and actions that you might not have discovered yet.)

That's all I've got. Final preparations tomorrow, and then at midnight -- the magic begins.

Good luck to everybody. Including me.

Posted in Zarfplan | Tagged , , , , , | Leave a comment

Zarfplan: Awaiting approval

On November 1, 2010, I opened a Kickstarter project for an iOS text adventure.

Last night I submitted the Hadean Lands iOS app for App Store approval. (And also uploaded it to the Itch.IO and Humble distribution platforms.)

As I said, this will be a simultaneous release on all platforms. So we're now at Apple's mercy -- not an unfamiliar feeling for modern game developers. According to the charts, the iOS approval process is currently running about eleven days. (I'm used to five or six days, but I figure they're swamped with app updates for iOS8 and the newest phones.)

I am targetting October 30 as the launch day. That means you'll be playing the game on the fourth anniversary of the Kickstarter launch. Tidy! If it looks like approval is going to run longer, I'll let you all know.

In the meantime, you can take a gander at the Hadean Lands web site, which is now up and running. The map is the game's big "feelie". Old Infocom fans will get a kick out of the IF sample transcript -- no spoilers for the game itself, just an example of how alchemical IF plays out.

So what will happen on (I hope) Oct 30?

  • You will see the game appear in the iOS App Store. (Don't buy it yet!)
  • You will see Itch/Humble widgets on the HL web page.
  • If you asked for an Itch/Humble download key, you will get email (from me) containing that key.
  • If you asked for an iOS app, you will get email (from Apple) notifying you that the app has been credited to your iTunes account.

The last bit is the tricky one. I will be gifting the app directly to all US-based backers. But Apple doesn't allow gifting between countries. So if you're outside the US (or your iTunes account is), I'll have to do some dancing.

Here's what I figure: for the major countries (UK, Canada, Australia, a few others) I will pick somebody I know and PayPal them a bunch of money. That person can then do the gifting. If you're the only person from your country, I'm afraid I'm going to have to contact you directly and PayPal you US $5 -- then you can just buy the app.

(I will be contacting you directly to talk about PayPal matters.)

I realize this is a hassle, and it may take extra time for non-US backers to get their iOS app. I'm sorry; I don't know a better way to do this. (Other than opening bank accounts in a dozen different countries, which I can't manage.) I was hoping that a solution would turn up before the game was finished... Fortunately, none of this hassle applies to the Itch/Humble downloads, so those will all go out on time.

I still have not started to plan the physical rewards. One thing at a time.

Posted in Zarfplan | Tagged , , , , , | 2 Comments