Search Results for: interactive fiction

Boston summer IF meetup!

As in years past, the People's Republic of Interactive Fiction is organizing a summer gathering of the IF folks of the world. If you are interested in hanging out and talking about IF, you are invited!

The weekend: September 14-15. The locale: Boston (the MIT area).

Once again, we will be gathering at NoShowConf, a tiny little indie game-dev conference. We will also have a presence at the Boston Festival of Indie Games, which runs the same weekend.

These are both great events, and I'd happily recommend coming into town to visit either one. Both on the same weekend... is logistically complicated, I confess. But it will only make the weekend more awesome!

What's going on?

NoShowConf will run all day Saturday and all day Sunday.

NoShow is at the MS-NERD center, adjacent to MIT.

This will be the primary IF hangout zone. We will not have a separate IF track -- it's a cozy conference, not a cluttered one. However, I will be proposing one IF-related talk and I hope you folks will propose more.

Note that NoShow is considerably cheaper than it was last year. (Thanks to Microsoft for providing event space to the Boston tech community.) If you are on a tight budget, you can grab the Game Jam pass, which is even cheaper and includes all the hanging-out and the free lunch. Last year there were IF folks lounging around talking the entire weekend -- don't feel like the presentations are the only reason to attend.

BostonFIG runs all day Saturday.

This is an open-to-the-public indie game expo. It's running at the MIT student center (a fifteen-minute walk from NoShow). Registration is free; they are currently running a Kickstarter to raise funds.

We are organizing an IF table at BostonFIG! (Thanks Clara.) This is still in flux, but we are aiming for a demo space where we can show off IF to the public, demonstrate IF tools, possibly run a workshop. This is what I expect to be doing all Saturday afternoon. Anyone who wants to help with IF outreach is welcome to come by.

The People's Republic IF Demo, Beerfest, and Chowdown.

On Saturday evening (7 pm), we will meet up to eat, drink, and catch up on IF. (Location is still being planned.) We're going to grab function space in a bar or restaurant, and have a screen and projector available.

The idea is that everybody gathers, orders beer and food, and starts talking raucously about everything that's going on. Then, maybe at 8 pm, I wave a giant wooden spoon in the air, shut everybody up, and point at the projector. This is your cue to jump up, plug in, and tell everybody what you've done in IF in the past 12 (or 24) months. For five minutes! Lightning talk, or just a few screenshots, then next person.

Hopefully that will go for 30-ish minutes. Then we go back to drinking and eating and talking raucously until the bar throws us out.

And then back to NoShow for Sunday.

Perhaps this is a bewildering array of event options. (I like to think of it as "feature-rich", or perhaps "Turing-complete".) The capsule summary is:

  • NoShow: Cozy; conversation with IF folks and indie game devs; presentations for small interested groups.
  • BostonFIG: Big, noisy; present IF to the public (gamers, but not necessarily aware of IF).
  • Dinner: Our annual time to catch up on what's going on in the IF world. Also, beer.

And as I said, wandering back and forth between NoShow and FIG is easy.

What does this mean for you, dear blog-post reader?

  • Consult your calendar. (September 14-15, 2013.)
  • Register for NoShow if you want to take part.
  • Register for FIG if you will be in town at all. (Free, no reason not to.)
  • Donate to FIG's Kickstarter if you want to support that event financially.
  • Submit a NoShow talk proposal if you have an idea for one.
  • Email me if you want to show off anything at the IF dinner. Or at the BostonFIG table.
  • If you're planning to attend any part of this, please comment here, email me, or otherwise let me know. (Planning dinner space means coming up with a head-count, eventually.)

I hope to see lots and lots of you, this summer.

Posted in Boston | Tagged , , , , , , , | 3 Comments

Zarfplan: April progress

Short update this time. Puzzle barriers implemented this month: seven. (Some, again, with multiple solutions.) Also another substantial chunk of the automatic move-around-the-map code. That has been going in slowly because it's so integrated with the puzzles -- going from one area to another usually requires a puzzle solution or two.

As I said in February, this is a weird development process, because I am implementing both the puzzles and the mechanism to bypass the puzzles. So it feels like there's no more game here then there was in January. I can start the thing up, type "ZAP-OMNI" (to mark all the puzzles as understood), then type "GO TO ANTECHAMBER" -- that's the second-hardest room to reach in the game. Zwoop. 41 lines of automated activity, and I'm in the Antechamber.

To be clear, "ZAP-OMNI" is a debug command; it won't be available in the final version of the game. (And I'm skipping over a couple other debug commands I used, to compensate for links in the Antechamber chain that I have not yet implemented.) But "GO TO ANTECHAMBER" will work, just like that, once you have solved all the puzzles in the way. The point of the game is to make those tools available to the player.

So what makes this interesting gameplay? Like I said: puzzles with multiple solutions... and solutions that apply to multiple puzzles. It's no good getting into a room if you've used up the items you needed to have when you got there.

Beyond a certain point in the story, you need to start managing your automated solutions, making sure they all mesh together. That's going to be the real game. And I have now implemented enough of the map to start seeing these effects. Select certain combinations of solutions, and type "GO TO ANTECHAMBER", and the game says (very approximately): "Sorry, you got to the last door and you're stuck, because you've used up the rod of metal X getting that far. Also, when you swam through the flooded tunnel, the Y got soggy and the Z dissolved. Tough beans."

So we go.

Other news: My Unicode Parser for Inform 7, which I mentioned last month, is now available. I also helped get the Inform 6 web site back on line. It's been neglected since I7 came out; then, a few months ago, a server fell over and nobody's had the spare cycles to fix it. The site is still not particularly up to date, but it should now be stable, at least.

My Secret Project for April is not done, but it has reached the major implementation milestone that I was aiming for. I now flip over to the Secret Project for May, aka Secret Project STW-5, which begins... as soon as I upload this post.

Posted in Zarfplan | Tagged , , , | 3 Comments

Time for the decennial definitional post

(This post is not about the definition of "game".)

Eleven years ago, I wrote a post entitled Characterizing Interactive Fiction. I wanted to put the pin in what I called "IF" and, more usefully, why I found that category to be interesting and distinct from other kinds of games.

My definition at that time -- here, I'll quote it:

A program which reveals a story (or related stories), created by an author (or authors), to a player (or players); such that the range of action available to the player is only partially known to him, and must be understood in terms of the story world; and such that the majority of important results of the player's actions are unique results, specifically created by the author to support that part of the story which the player is experiencing.

Notice that I don't say anything about a text parser, or even about text. This is because I was pointing at a structural similarity between (parser-based) text adventures and (first-person) graphical adventures.

I still find this a useful category. But it's not much of an observation these days, and designers have managed to incorporate those sorts of elements into lots of different kinds of games. (When I reworked the essay for the 2011 IF Theory Reader, I went with "a game that is controlled by textual input..." Mostly because the Myst-style adventure genre had more or less faded away.)

These days "interactive fiction" is a whole different argument. My 2002 essay relegated "those pesky CYOAs" to an end-note. That wasn't even controversial, because you could (at that time) still regard choice-based games as the genre of the simple branching plot tree -- Cave of Time on a computer. Those games that elaborated on the model did so in the direction of adding CRPG elements (potentially interesting, but not adventure-like) or by trying to become more like Zork (generally not interesting).

Okay, it's not 2002 any more. The 2012 XYZZY finalists include Twine, StoryNexus, and Inkle projects. Yesterday I saw Emily Short saying:

Got rid of the IF vs. CYOA distinction on my blogroll of tools and languages. It was getting less and less meaningful. (@emshort, April 18)

As an IF guy, I shake my fist and lightning cracks from the sky behind me. Or my cane trembles in my upraised hand -- pick your symbolic lading. (Nobody point out that I wrote one of those choice-based XYZZY finalists, that would just be embarrassing.)

As a student of the game world, anyhow, this is all sorts of interesting. How are people (other than cranky old bastards) now using the term "interactive fiction"?

Let me first block off a dead end. (Apologies to folks who know this rant -- this hasn't changed since 2002.) "Interactive fiction" is not the category of interactive works which are fictions. (Nor the category of stories which are interactive.) That's never been a concensus definition in any part of the gaming world. The literal denotation just doesn't work, because it encompasses nearly every videogame every made. Maybe not Tetris. But probably Missile Command, and certainly Prince of Persia, Halo, and Animal Crossing.

(When IF Quake -- a parser-based re-imagining of Quake -- appeared, everybody thought it was a good joke. Nobody said "Quake is interactive and has a storyline, therefore the IF version of Quake would have to be Quake itself.")

So, what now? I'll throw out a bare-faced hypothesis: people are now using "interactive fiction" to refer to videogames that are primarily text. Or, which focus most of the player's attention on the text. Let me go back and look at Emily's "Creation Tools" list... yes, fits so far. Fits with the XYZZY nominees. IF -> text games. Yes? No?

(I am intermittently cranky about this usage not because it's a change -- okay, partially because it's a change -- but mostly because it's a rather shallow division. I want to compare, say, Versu not necessarily to other text games, but to other games that are using similar techniques! How would you accomplish that sort of conversational in a graphical, or primarily graphical, game? Is that not an interesting question? But this is the descriptivist part of the post -- I don't want to argue against the term, just get a clear view of it.)


Let me swing around to come at an unrelated game category (or is it?) -- a category that I'm pretty sure we see, but which doesn't seem to have a name yet.

When I played Proteus, my first reaction was "This isn't a game!" Jmac jibed back "Uh-oh! Game police!" which is totally fair. Clearly Proteus is built with game-design tools, draws its UI from game interface conventions, and focusses on techniques used in games. (Procedural environment rendering. The shaping of emotional arc from environmental cues in a free-navigation simulated space.)

Going back, one could make all the same points about Dear Esther, except for the procedural-generation bit. And Journey has elements of it, although it's not quite the same. What we have here is a terminology problem -- an interesting and distinctive category of game which people aren't sure what to call.

What characterizes this category? Exploration in a simulated world, but no blocking challenges. You will reach the end if you keep moving. (Not necessarily moving forward.) This is, in fact, an excellent analog to the "puzzle-free IF" label that people were tossing around (or flinging down) in the late 90s, when Photopia and its ilk appeared. (And indeed, people in the IF scene questioned whether these things were games -- but we never had much doubt that they were interactive fiction, i.e. A Resident Of These Here Parts. A nice benefit of having our own term of art to sling around.)

I like to say "Game design is an exercise in controlled frustration", so you see where my "not a game!" reflex is coming from. But I also like to say that "puzzles" must be understood, in the broadest sense, to include all mechanisms of pacing in interactive work. Clearly these games give deep attention to pacing! In my Dear Esther review I argued that by focussing on the single interactive mode of "walk around", the designers had focussed me on the ramifications of walking: the attempt (or failure) to reach a goal, the learning of space, the time taken to move (no running!) It's interactivity, it's just in fewer layers than we're used to.

I'm not saying that these pure experiments are going to become the next AAA category, because that's not how gaming works. All genres hybridize. Future games will draw elements from these things, and that's the real reason why we talk about them as games. But it helps to have a label!

I tossed the question out on Twitter, and got a few not-entirely-satisfactory responses:

  • Ambient game: Doesn't get at the vital aspects of pacing and arc.
  • Experiential game: Perhaps. Easy to misread as "experimental", though!
  • Art game: Kind of taken already, by Gregory Weir and Jason Rohrer and that crowd. (That category overlaps this one, of course, but it's an aesthetic category rather than a structural one, and includes games with clear game-like challenges as well as those without.)
  • Non-game: Jeez, I hope not.

(Back in my really early adventure-reviewing days, I tossed around the term "interactive movie". I'm not picking that one back up at this late date, though. It was a mistake.)

I am cautiously leaning towards "experiential game" at this point. (Note that, just like "interactive fiction", it is wrong as a literal description. Sure, every game is "experienced" by the player. I don't care; it's a label. Ask me about "science fiction" and "fantasy" some time.)

As a side note: recently someone commented, "The definition of 'interactive fiction'... it seems almost political." Of course it's political! When the concensus of a community changes, that's a political process. When two communities brush up against each other, and try to communicate, that's politics. These things are happening in the IF world(s).

One could say the same about the definition of "experiential game", or in fact the definition of "game".

(This post is not about the definition of "game".)

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

Zarfplan: March is a five-letter word

The taxes got done, anyhow.

If we are counting puzzle barriers, I finished... five this month. I'm counting one door twice, because walking out of that room is a different puzzle than walking into the room. Actually walking into the room is one puzzle with two solutions, but that's getting too fiddly to worry about, so let's call it five.

I consider that under par. But number two involved quite a lot of environmental coding -- yet another effect that can be applied to nearly any object in the game. (I don't mean it does something interesting to every object in the game. Trying to stay focussed here! But I still had to write a rulebook and deal with the most obvious special cases.)

I also spent some time cleaning up the verb set, and polishing parser error messages. You may recall in the teaser -- well, you probably don't recall, but I was pretty proud of this: if you type "SEARCH WORKBENCH CAREFULLY", the game replies:

I understood the command "search workbench" (that is, search the workbench); but not the word "carefully" at the end.

The Inform default error is not that specific. I had to do some hacking to get the words to quote correctly. This month I redid the hack and applied it to the current build. (It didn't transfer over exactly, because the teaser was written with an older release of Inform 7.) So, that kind of parser polishing.

That was pretty much Hadean Lands in March.

In other news... I guess there was PAX East. I was invited to take part in a panel on indie games storytelling -- that was fun. (I don't think it was recorded, though; sorry.) Then there was GDC, but I didn't go to GDC this year. Maybe next year. San Francisco is fun, but expensive, and I didn't want to blow a week of work time.

I also spent a weekend working on a long-term project: allowing Inform 7 to parse commands in other alphabets. It's just a tiny piece of that project, really. I added full Unicode support to the Glulx virtual machine in 2006. In 2010 I added a necessary bit of code to the Inform 6 compiler, allowing it to compile a Unicode-aware dictionary. In 2011 Xun Gong contributed a patch to permit Inform 6 source code in UTF-8. What I'm working on now is upgrading the Inform 7 parser library to use the Unicode-aware dictionary, and accept player commands containing any Unicode text.

(This is a nuisance, because the Inform 7 parser is mostly the same as the Inform 6 parser, which was the Inform 5 parser, which was way back in the 90s and presumed without thinking that a letter fits in one 8-bit byte. So now I'm fixing up byte arrays into long-word arrays everywhere. Boring, not too hard, but not done yet.)

(No, I'm not using UTF-8 arrays. Don't get me started. Never do text manipulation in UTF-8. It only wastes your time and annoys the warthog.)

This is not the last piece of the puzzle. We'll still need the Inform 7 compiler to understand Unicode vocabulary terms. (Right now it assumes that its parser is not capable of that, so it rejects such vocabulary out of hand.) And finally we'll need full non-English parser libraries! We have such things for some European languages that use the Latin alphabet. In fact right now somebody is working through a Japanese IF parser that uses Romaji. But these ought to be expanded to other alphabets, and I, as an utter monolinguat, cannot help much with that problem.

So I don't expect I7 to support non-English IF very soon. But I have my piece to finish, and every step on this road is good.

I have a Secret Project for April, and a completely different Secret Project for May. The May project will be my reward for finishing the April project. One secret project at a time, I promise -- I can only split my time so many ways.

Happy Spring, unless you're a Southerner. Happy April 1, which is not yet started as I write this. Good luck with the silly Internet foolery tomorrow.

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

Warbler's Nest MIT presentation rescheduled to April 22

Barring further cataclysmic weather phenomena, my snow-postponed Warbler’s Nest presentation shall now happen at 5:30 PM on April 22, 2013, in MIT’s room 14E-310. As before, and like all events in the Purple Blurb series, it shall be free and open to the public. Please come join us as we traverse the game together on the big screen, with a discussion period to follow.

A word on context: Purple Blurb is a series of smart and diverse digital writing presentations originally organized by long-time Boston-area IF supporter Nick Montfort, and I encourage Boston-area readers to check out the other events on the Blurb’s schedule this spring. All cost nothing to attend and are full of further electronic-text-mashup goodness, a rich field of which interactive fiction is merely one facet.

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

Zarfplan: February is short

It feels short, anyway. By more of a factor than exists in reality. Stupid February.

A lot happened this month, but you read my post two weeks ago. The most interesting of course is that Heliopause is now up on the iOS App Store. But I will also repeat my plug for Versu, Emily Short's dialogue-AI project at Linden Labs. (Also on iOS, but coming for other platforms, um, not sure when.)

Also there was this extremely nifty interview with me posted at Gamasutra.

New stuff: earlier this month, I finally connected the goal-seeking part of Hadean Lands up with the map and the map puzzles. It was a very strange feeling: I started the game, typed "DOWN", and the game instantly solved the entire teaser for me. (You will recall in the old HL teaser that the primary puzzle is opening a trap-door. So now the game picks up the necessary ingredients, performs the ritual, applies it to the trap-door, opens it, and goes down.)

Of course this is in a debug environment. I actually had to type "ZAP-OMNI" first, which is the debug command to set every ritual as "known and practiced". In the final version, you'll have to, y'know, solve the puzzle yourself. The point is that the mechanism all works.

(You may also recall that teaser starts out in darkness, and the first puzzle is turning on the lights. I think I'm going to drop that stage. It doesn't really fit into the magical structure that I've developed. Also, the darkness didn't quite follow standard Inform darkness rules, so I had to write an unwieldy amount of code to make it all work right. Also, waking up in the dark? It's been done.)

(I tried to link to an online-playable version of Hitchhiker's there, but the one at the BBC has broken and the one at douglasadams.com is a Java applet. I hope you've all deactivated Java in your browers, it's hitting like two security holes a month recently. Anyway. Sad times for HHGG.)

So, beyond the sheer nervous shock of seeing several months of code actually sit up and work for the first time, HL is moving along okay. I have now implemented, let me count, ten goal barriers. Not all of these are really puzzles -- even an unlocked door counts as a goal barrier, because I have to create an "open the door" goal. Of course, that's a very simple goal to implement -- no requirements, no failures, one step. I got the unlocked ones out of the way weeks ago.

What I am finding is that I can't just implement a locked door or a puzzle with zero description. (Back in December, I thought this would be my plan.) To automate a puzzle's mechanics, I need to implement the puzzle's mechanics; but for this I need to implement the manual solution, with verbs and everything; and for that I need to actually write out the response messages. And the failure response messages for trying the wrong thing. And the descriptions of everything, so that I know the response messages make sense.

So I only have ten puzzles, or "puzzles", out of (very roughly) thirty-five on the map. But they're much nicer than I thought anything in the game environment would be at this stage. Locked doors, stuck doors, locked things-which-are-not-doors. And when I get to the end of the map, I will actually have completed a large chunk of the hard part of this thing.

...Which is not to say I will have anything playable. There will still be all the room descriptions, plus the story elements which are not puzzle-based, not to mention a long hard polishing pass to make all of this out-of-order text flow together. But moving along: yes it is.

Coming up in March: more of the map. Also, doing my taxes. Also, I hope, the release of a secret part-of-a-project which I have not yet revealed, because it is secret. (IF-related! But not a game, nor even programming; it's documentation work.)

See you.

Posted in Zarfplan | Tagged , , , , | 1 Comment

The longer than I expected Versu post

Picking up the thread from my last post...

Versu is an engine for choice-based, conversation-focussed narrative fiction. It is currently available as an iPad app; support for more platforms is planned. Authoring tools are also planned, I believe. What you get right now is a free download with a tutorial, a short adaptation of a scene from Pride and Prejudice, and a longer ("30-45 minute") Gothic-ish story. For $5, you can buy an additional story about a polite family dinner party that turns to... well, I shouldn't spoil it, should I?

Versu is the project that Emily Short and Richard Evans have been working on for the past several years. Their team was acquired by Linden Labs, so this is coming out as a Linden project. (In later discussion, I am told that Linden just released an unrelated interactive-environment-authoring tool called Dio. Thus the perils of companies acquiring smaller companies; integration is a bitch.)

Superficially, Versu runs like any CYOA-format game you might have seen in the past thirty years. But a bit of poking around reveals that there's more going on under the covers. You are rarely offered the simple "left door or right door?" choice that characterizes simple CYOA plots.

Instead, you can take a variety of actions relating to the current state of the world -- the events around you, the recent topics of discussion, the items you have to hand. Each of these actions has a cumulative effect on the world state. Some actions will remain available for many "turns", or throughout the scene; others will be opportunistically available in response to an event. Moreover, an action can affect several story threads at the same time.

Thus, in the drawing room, you can sit and drink tea while talking to the Dowager, or talk to the Dowager while sewing, or sew while making eyes at that handsome Mr Brown. You're always selecting single actions from a menu -- or hitting "more" to let time pass -- but the effect is more nuanced, because the conversation spans many actions, and proportions matter. Of course, context matters too. Scolding Mr Quinn after he has insulted you is quite different from scolding him after a compliment, or out of the blue.

The marketing copy describes this as "social AI". It is certainly AI in the game-industry sense. You can choose to play any character in a story, thus making the other characters NPCs, under program control. They will all chatter on through the scene, reacting to each other and to you -- or acting more vigorously, for scenes outside the decorous bounds of the drawing room. (Presumably the engine could run everybody, creating a completely noninteractive, procedurally-generated drama. But the current app doesn't demonstrate that.)

The down side is that the flow of events can appear, er, rather procedural; a bumpy road of character interruptions and not-quite-sequiturs. At one point I sat and mulishly sewed embroidery at Mr Collins for a good half-hour, in absolute silence -- only to find that he thought me "very slightly unfriendly". Good thing I didn't get out the rusty halberd, then!

This is of course the risk of any kind of videogame social interaction that isn't completely on-the-rails. IF has as much to complain of here as any badly-scripted commercial game. (A typical IF transcript reads tolerably when the protagonist is alone. But we have standards for human interaction that don't apply to somebody rooting around in an abandoned dungeon.)

The best examples in the IF canon are, unsurprisingly, Emily's dialogue-based work. If you're familiar with Galatea or Alabaster, you'll recognize the techniques in Versu: characters follow topics, topics can be recovered (or dropped) after an interruption, and text is adapted and polished to flow smoothly in sequence. However, you will never mistake the result for a hand-crafted cut scene -- any more than you'd mistake a FPS level run-through for a war movie. This is a game, and the prose supports what you can do with it, not vice versa.

What can you do with it? I was rather pleased, in "A Family Supper", to find myself steering the tone of a social gathering with no explicit direction or goals. (Terrifyingly like real life!) Then I hit The Twist, and found that the latter half of the game was strongly goaled -- although with plenty of play in how I dealt with those goals. Presumably I could have ignored them completely, or had an attack of Regency-style vapors. In any case, it demonstrated that the Versu engine was capable of handling both modes.

A story's state is not maintained between run-throughs; if you start over, you reset everybody's opinion of you. Similarly, while three of the stories share a set of characters, there's no state carried over from one to another. So, if there's any sense of progression in Versu, it lies in exploring variations. (The app supports this by awarding achievements for various endings and states.) Is it enough to engage me? Ask me in a week, I guess.

I am not an immediate fan of the Pride and Prejudice era -- that's one problem. The writing here is good (I picked this screenshot for the cheese line) but I mostly go for the wizards and robots and dragons and spaceships. But then, there isn't much fantasy and science fiction which is this well suited to deep social simulation. Maybe I should be thinking about larger timescales, and the interactions of societies? Or society-scale AIs? Iain M. Banks has all sorts of snarky fun with the teatime foibles of Planetary Minds.

Never mind. Just speculating, here.

I will now spend some time scratching at the interface. Please don't take this as a condemnation of the app; the interface is by and large good. I find it imperfect in several ways, and there's always more meat in discussing near-misses than in designs that are simply bad. So if you're not a designer, you can probably just skip this bit.

New text appears at the bottom, as you'd expect for a scrolling transcript. However, when choices appear, they appear in a box at the top of the screen. (See screenshot.) I found the continual up-and-down focus jumps somewhat jarring. I realize this is a tricky problem! If the choice box appeared at the bottom of the screen, it would block the most recent output; you wouldn't be able to see what you were reacting to. I'd love to make all the choices appear in the footer bar, but in a complex scene there might be a dozen or more available moves. They couldn't possibly all fit. (Again, see the screenshot -- the choice box contains a scrollable list.) So I don't have a solution, but I still want to complain. (Harrumph, says the UI designer.)

The footer buttons are simple: "Act Now" or "More", with the former bringing up the choice box (if available) and the latter allowing other characters to act. Simple is good. On the other hand, I found the "More" button just a little too attractive. Maybe I'm too well IF-trained, but my reflex is to tap "More" until everybody stops talking and it's my turn to act. You can do that in Versu, but it's a very small slice of the possible range! You want to put in your two farthings' worth.

I think, for the footer, I want some visual representation of what options are available. This could be very iconic -- perhaps just a colored bar, with different-colored bands for "Conversation", "Advancing Relationships", "Eating", and so on. (The different categories in the choice box.) Seeing this shift would be a cue for me to jump up and consider new options.

A more concrete complaint: mandatory actions. As I said, you can tap "More" until you reach a point where you're forced to respond. That's fine; it's entirely appropriate in many scenes. However, the choice box is then a modal dialog box. You can't back out of it -- not even to consult the objective list, or return to the main menu. If you quit the app at this point, you may return to find that your position is lost, because there's no access to the bookmark/save option.

This is really not good. There's no game-mechanical reason to use a modal UI here; it's just a choice point like any other. I'm okay with the choice box appearing pro-actively, but it should be as easy as usual to dismiss it. The "More" button should be disabled, is the only difference. (So when you return to the story, you just hit "Act Now" and get on with the mandatory choice.)

Other nitpicks... there's no way to get a transcript of a session. (Except for screen shots.) There's no preference setting for font, font size, or color. (It doesn't have to be fancy, but this is a reading app, and people have different reading preferences. For my iOS IF interpreter, I copied Apple's iBooks style menu -- can't go wrong there.)

The app is built in HTML -- that is, most of the content lives in an iOS WebView. This makes for easy development (and easy transition to a browser version, should the creators want to go that way in the future). But it's also a bit slow and jerkity, even on my iPad 3. I don't really expect them to upgrade the app to all-native code, but I can't help thinking how much cleaner it would feel.

The app also requires Internet access, because the story engine runs on Versu's home server. This isn't a complaint, but you need to keep it in mind for subway and airplane rides. (Or if, indie-game gods forfend, Linden Labs goes out of business and the Versu service dies.)

Finally, I have to wag a finger at the weak Voiceover support. It's not nonexistent; the UI is HTML, and HTML is voice-accessible by default. You can get Voiceover to read any bit of text on the screen. But new text is not read out when it appears. (If you keep tapping "More", Voiceover just says "More. More. More." You have to poke around to get the story text.) Also, when the choice list gets long, it's difficult to scroll the choice box to reach the later options.

It may be difficult to fix this. I have implemented Voiceover support for iOS native apps, but never for a WebView-based app -- I don't know what's involved. However, for a text-based story medium on a voice-accessible platform, it really is a shame to miss out support.

So. You know it's a Zarf review when you get down through pages of review and realize I forgot to say whether I liked it. I like it! Versu is distinctly different from any of the choice-based formats I've seen before. It leaves my old complaint -- "CYOA invites lawn-mowering" -- dead and buried in a pauper's grave; I shall not resurrect it. It manages to recreate the drama-management of Facade without invoking the keyboard-phobia of the open prompt. Future experiments in narrative interactivity may not use this style of character-based AI, but I am confident that this style of open, explorable choice will continue on.

Posted in Zarf on Games | Tagged , , , , , , | 1 Comment

Interactive and text-based game news, whoa, lots

Quite by coincidence, all the IF news of the month has piled up into a 48-hour narrative train wreck. No, that's a morbid metaphor. A 48-hour Volkswagen full of news clowns? I don't think it's getting any better. Skip the metaphor.

Coming in this post: My impressions of Emily Short's Versu! My impressions of Zoe Quinn's Depression Quest! My impression of Stephen Fry! (Not really that last.) First, some news about me.

Hoist Sail for the Heliopause and Home, my space-opera fairy tale, now joins Shade in the iOS App Store. As with Shade, I've added some illustrations for this iOS port. The art doesn't change the game, but it might make the important aspects of the ship's status easier to grasp.

If you're not familiar with Heliopause, it's a tiny little game that I wrote for @party a couple of years ago. It was inspired by my desire to stretch the traditional time-and-space scale of interactive fiction -- to deal with solar systems and centuries, rather than hand-held objects and minutes. It was also inspired by old pulp and New Wave sci-fi. (Count the literary references!)

Myrmidal is the queen of the bright worlds, and you've walked her million cities beneath her sky and beyond it. Myrmidal laughs and Myrmidal dances; they say no one weeps on Myrmidal, except for moments on the stage.

But even on Myrmidal the sun rises and sets, and the music grows tinny and harsh when you weary of dancing. Your best stories and your best lies draw the same fond laughter. This morning you decide to rise to the docks, and rouse your Horizon of Night from her sleep, and raise her sails. Somewhere are worlds you have never seen. And if your friends miss you at the dance, they can tell you so when you return.

(-- Heliopause, opening)

Related to this note, a new interview with me at Gamasutra, posted (and hosted) by Leigh Alexander. We talk about Shade, Heliopause, and how I think IF works on the small-and-touchy screen.

Over on the purely graphical end of the adventure-game spectrum, I'll note the release of Dagon, a framework for building first-person anamorphic-panning games. (This is the UI style of Myst 3, and of course many other games.)

Dagon is the framework build by Agustín Cordes for his upcoming game Asylum. You may remember the Asylum teaser demo from last summer; if not, it's worth a look. The Dagon scripts for the teaser are included with the download, so you can see how the system works.

Asylum is currently in the middle of a Kickstarter push -- they're 75% of the way to their (ambitious) goal. Kudos to Agustín for pushing out the open-source framework before the game's funding is assured. I hope it helps him hit the mark.

Next on the news list: Emily Short's secret project, which she and Richard Evans have been working on since before they got themselves acquired by Linden Labs.

Versu is an engine for choice-based, conversation-focussed narrative fiction. It is currently available as an iPad app; support for more platforms is planned. What you get right now is a free download with a tutorial, a short adaptation of a scene from Pride and Prejudice, and a longer ("30-45 minute") Gothic-ish story. For $5, you can buy an additional story about a polite family dinner party that turns to... well, I shouldn't spoil it, should I?

I started to write about this thing, but it grew into a full-on review. So I am cutting that loose to be its own post. Up next on the Gameshelf!

But first, the last of today's releases: Depression Quest, a choice-based indie release by Zoe Quinn, Patrick Lindsey, and Isaac Schankler.

You are a normal person, with a normal job, and a normal girlfriend, and a -- perhaps normal -- lousy feedback loop between your thoughts, your habits, and your biochemistry. Which is to say: depression. You play through a few months of your life, with simple illustrations and a placid, sombre soundtrack. Your decisions all suck.

This is the sort of bleed-on-the-page writing (and game design) which would be mawkishly simplistic if it weren't real, but it is real. You can smell that, even if you don't have depressive tendencies yourself. (I do, as anyone could tell you who knows my preference for writing code in a room with the shades drawn. All week.) If you don't believe that some people are like this, you need to play the game, and pay attention.

Depression Quest is built on Twine. It's exactly the sort of simple graph-based plot that Versu isn't. (Whoops! You haven't read the Versu post yet. Context ordering failure! Well, we'll get back to it.) Look: DQ isn't about its gameplay. The mechanics are simplistic and limiting, and that's the point, right? To underscore the point, half the options are blocked off in any given scene. This has been done before (Rameses is famous in the IF community), but it still works.

Several months ago I played Papo & Yo, which is a similarly honest game. Anna Anthropy's Dys4ia is also coming up in many people's comparisons. Notice how different all of those games are?

I hope nobody thinks that this is "dreary games about life sucking". (We've got the regular game industry for that, right? From Space Invaders to Missile Command, and then an infinity of games about war?) No: this is people communicating their lives, and choosing the interactive medias to do it. We must have this if anything called "game design" is to have a lasting impact. That is all.

I'm not sure how much more I want to say about Depression Quest. It is a free browser-based game. The author is accepting pay-what-you-want donations, of which a portion go to iFred, a education and research organization. (I had trouble with the donation button, so I dropped money directly on iFred. Zoe, if we ever meet up in real life, I owe you a beverage.)

Rather than waft more of my own sentiments around, I will just quote from the game's introduction:

Depression Quest is a game that deals with living with depression in a very literal way. This game is not meant to be a fun or lighthearted experience. If you are currently suffering from the illness and are easily triggered, please be aware that this game uses stark depictions of people in very dark places. If you are suicidal, please stop playing this game and visit this link to talk to someone. [...]

It goes without saying that because of the very nature of depression, it is experienced differently by every person who suffers from it. We aren't trying to say that this is the "best" or "most accurate" representation, merely that this is an amalgamation of the experiences of the developers and several people close to them. Many of the following encounters deal with issues such as therapy, medication, handling a love life, and reaching out to support networks. In reality, less than half of depression sufferers actually seek treatment, for reasons such as lack of money, perceived personal failing, or public stigma. [...]

We've written it this way so that we can focus specifically on the illness, which becomes more and more difficult to deal with as the person who has it is less and less well-off.

(-- Depression Quest, opening)

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

Zarfplan: January of a new year

First news: Shade is up for iOS! I started this port back in the fall, as a demo for the Boston Festival of Indie Games, but it dropped off my radar. This month I shoveled the snow off of it... not that we've had much snow up here... and got it out the door.

Then I got swamped by the Mystery Hunt. This was supposed to be a weekend event. It wound up running into Monday morning. The usual rules of long weekends apply: every extra day feels like the event has doubled in length... exhausting. And I wasn't even one of the people staying overnight. (Any of the nights.)

Anyhow, my team didn't win Hunt. We did respectably, though, and had a good time -- despite the gruelingness of it all. (Not everybody did, but that's another whole long argument. Tune in next year to see how it went.)

After that: Hadean Lands! And other projects. But not ones I can talk about yet. So I'll talk about HL.

Last month I alluded to design problems with duplicated objects in the game. (That is, what happens if you try to create two doses of some compound, when the game is only set up for one.) Conclusion: I punt on this. The game will flat-out refuse to let you do it. If you try, it mysteriously fails.

You might think this is the cheap way out -- but it will work, and I can fit it into the overall mystery of the game. Trust me, every game design involves taking the cheap way out of some problems. You pick your battles, and this one is not mine.

(My motto at this point is: "This game already had enough scope creep in 2011, never mind 2012. The screws are officially on.")

Yes, there was a spot where the plot required two doses of a particular compound. Not any more. Now there's compound X and compound X-prime, with different names, and you can substitute one for the other. Implemented, ritual variation tested, problem solved.

Otherwise, I have slowly been stitching the map together. It now has many doors, and some of them are locked (or otherwise impassable). Some of these doors have keys (or other door-passing items). The puzzle-blockage pattern is no by means complete, but it's filling in.

As it happens, I didn't spend today on doors; I spent it on little bits of paper. I already had a mechanism for learning rituals, and recalling what you've learned, but it wasn't hooked into actual game objects -- the pieces of paper which you pick up and read. (You may recall one such from the teaser.) Now that's all put together.

(Except for the part where you get vindictive and set the paper on fire. You never need to do this, but hey, I'm not going to stop you... Should just be a few minutes of work.)

(In fact... there. I just did it. Behold the power of this fully operational environmental rulebook system.)

Okay, enough showing off. Plans for February: continue stringing together doors, door-goals, and paths through the goal-planning system.

I will also do another iOS release of one of my old games. Where Dreamhold had a dynamic map, and Shade had a rendering of the game's "to do" list, Heliopause will have a nifty display of your starship and its magnetic sails. Here, have a parting screenshot:

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

Zarfplan: December (looking back from 2013)

I say "looking back from 2013" because it's not December any more; yes, this post is late. I can offer a (small) excuse: I knew I was going to announce a (small) game on Jan 1, and I wanted to delay the post to include it.

This turned out to be a good move, because quite a few other IF items popped up around the end of the year.

First, the new game! Bigger Than You Think is not a traditional IF game; it's choice-based. Although it's not quite a traditional CYOA game either. You are presented with keywords, and you can either type them or click on them. I don't think that a click-or-type interface is really different from simple hyperlink CYOA -- nearly everyone winds up clicking, because it's easier. But the choices aren't handled in quite the normal CYOA form. I won't spoil it further; it's a short game, go take a look.

I created this piece for the annual Yuletide fanfic exchange. It's fanfic in a rather impressionist style, mind you, because the source work is a comic: Click and Drag, the really big xkcd comic from a few months ago. How does that work? Go find out.

(Inform hackers may be interested in the source code, which I have also released. It's not pretty source code, I'm afraid. I did a lot of I6 hacking to set up the hyperlink interface. Then I didn't take the time to split it out into a clean I7 extension.)

On the other side of the fence, Hadean Lands now has a map, as expected. (Not quite as of New Year's Eve; I was working on it Tuesday and Wednesday as well.) The game objects are scattered around the map, and I am mostly satisfied with how they're placed.

Puzzle barriers are not yet in place, however. December turned into the usual holiday lunacy, and I didn't get that far with making the map work. All the doors are currently unlocked. This is great for walking around and getting the feel of the place -- finally! -- but not so great for puzzle-structure progress.

Then, today, I ran into one of those snags that makes one say "dammit". (Or such other word as appropriate to upbringing, disinhibition, and/or proximity to frangible glassware.)


See, in this game you can make things. Say, a gonk potion. But then maybe you try to make another gonk potion. I have only implemented one gonk-potion object, so this is a problem. Right now I have a bunch of comments in my code saying "TODO: check if you already have one", and the reason they're still TODO comments is that I don't really like any of the solutions.

In some cases, you can't make more than one gonk potion because there's only one batch of gonk ingredients. Great -- but that leaves all the other cases. (Indeed, some puzzles revolve around finding a second batch of gonk-foo.)

I could have the game flat-out refuse. "You already have a perfectly good gonk potion!" Well, sure, but it's pretty embarrassing to refuse when the player has just gone through this elaborate gonk ritual and is tipping in the last ingredient. Besides, what if the player really wants two gonk potions? The plot is set up so that you don't ever really need two of the same thing at the same time... but the player doesn't know that.

I could add a second gonk-potion object -- but then what if the player makes three? Besides, the Inform parser isn't terrific at handling multiple identical objects. It can do it, but I'd rather not subject the player to that in an already-object-heavy game. For added fun, as I mentioned last month, the game supports "CREATE GONK POTION" even when the thing is nowhere in sight. If there were two of them waiting off-stage... "Which do you want to create, the gonk potion or the gonk potion?"

There are ways around this, but what this game does not need is another layer of abstraction strapped on. So I need to come up with something clever. And I need to come up with it soon, because today I looked at my notes and realized the plot does need two gonk potions to exist at the same time. In one specific case. Dammit.

I would say "That's the plan for January!" but January is also going to be holiday lunacy, it looks like. (Also, it's already 6% over.) I've got a couple of non-game-related things I need to update this month, and then we run into the MIT Mystery Hunt -- the event of the year for any puzzle-person in the Boston area. (Or, really, the US.) I don't do the Hunt every year; I skipped it last year, for reasons of personal sanity. This year, I'm in. Can't apologize for that.

So, the HL plan for January is to make as much progress as I can on the map's puzzle structure. And think about the plurality problem. I will report back at the end of the month.


In other recent IF news...

Emily Short has released Counterfeit Monkey, a gigantic IF game with a word-puzzle theme. I have played just the first few minutes of it, so all I can tell you is this: you start the game with a full-alphabet letter-remover.

SPAG, the online magazine of interactive fiction, is back from hiatus with a new web site, a new editor, and a new issue. Dannii Willis (known to the community for Parchment and other IF services) has refocused the zine and pulled together a sterling set of interviews and articles.

Activision has re-released their Lost Treasures of Infocom collection for iOS. (Zork 1 is playable for free, the rest of the games are a $10 in-app purchase.) I could devote a good half-post to its good and bad points, but this isn't the place. Let's just say: lotta playable games, complete with maps, invisiclues, and scans of the docs and feelies.


I feel like I should do a retrospective of my work in 2012, but you've been reading the posts, right? I released two short new games, wrote a whole lot of code, updated several libraries, got my iOS IF framework up to speed, and shipped Pocket Storm. Made a lot of cookies and didn't exercise enough. There, retrospected.

In 2013, I need to... well. Keep working on Hadean Lands. That's easy.

I need to get Shade and Heliopause back off the shelf, and ship them as iOS apps. If I have a business plan as an indie developer (which you might reasonably doubt), it is to get a bunch of quirky apps out and see if any of them are successful. IF apps are on that list. So is the set of word puzzles I've been keeping in my pocket for the past year or so. And maybe another Boodler-based audio project. Or the nano-clockwork puzzle idea?

We shall see.

Happy already-begun year, everybody.

Posted in Zarfplan | Tagged , , , | 2 Comments

Zarfplan: And that was November

Plan for the month: get all the shortcutting code finished, before the end of the month. Result: it's 11:59 pm on November 30th. Drat! But it is finished. Pretty much finished.

Sometimes code is painful. Sometimes code don't want to be written. That is to say, sometimes you just don't wanna write it. I am no more immune to this than the next hacker. Maybe the next hacker has a better strategy, but I try to get some progress made every day, and not think about the looming mass of progress I haven't made. Eventually the looming mass shrinks, and that's what's happened this month.

Why was this painful? Just an annoying collection of cases, all of which have to be handled differently, with guards against infinite loops and other such game-creating failures. See, there are shortcuts for going places, finding objects, and creating objects. Sometimes finding an object means creating it; sometimes it means going to where it is. And then there's the distinction between checking if a goal is possible, and actually carrying out the goal. None of this is conceptually difficult, but I have to get the code structure right, which means some false starts and then rewriting once I have a clearer idea of all the requirements.

The "pretty much finished" qualifier is because I haven't polished the output of this module yet. I type "CREATE IONIZER", and the game replies:

You open the beta-door.
You make your way to the Maze-Alpha.
You take the phaser.
You shot the alien!
You make your way to the Maze-Delta.
You take the ion widget.
You tinker together an ionizer.

This is perfectly readable but it's inelegant. I'd rather display this in paragraph form, skipping the less-important details:

"You open the beta-door, shoot the alien, take the
ion widget, and tinker together an ionizer."

Stitching together sentence fragments in I7 is moderately tedious. The mutable-string operations you expect in a modern language are possible in I7, but inefficient. (The leaden weight of Inform's history, which dates back to Infocom's Z-machine, which had no dynamic allocation at all). So I prefer to avoid that and instead muck around with a lot of state variables: have we just had a period or a comma? Hokay, capital letter time. Tedious. Not difficult. I'll get it set up eventually.

All of that business with the ionizer and the phaser is a test case, of course. The system works for the actual game objects too, and I have a bunch of those implemented. But since none of the game locations exist, I can't finish those shortcut rules yet.

Thus, the goal for December: create the map. Scary! Of course I've had a map drawn out for months, but it's slightly abstracted. (I may wind up splitting some rooms to improve the pacing, for example.) And a lot of the less-critical game objects are vaguely labelled "in quarters" or "in one of the labs" -- these are things which are easy to find, but the exact location is a matter of pacing, not puzzle gating. So I haven't nailed them down yet.

December will be a month of nailing. Hopefully by New Year's Eve, I will have an actual game structure to walk around -- rooms, locked doors, and puzzle barriers. There won't be any descriptions or game text; that will take much longer. But, even walking around the house-of-cards will be exciting.

I have another secret IF-ish project which should appear December as well. It's very small, but hopefully will amuse some people. More news when it's less secret.

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

A question for Google people -- Usenet dump?

Here's a question for data-liberation people in Google. (I know some people who work for Google, but I'm not in contact with whoever can directly answer this.)

For some fifteen years, most of the online discussion about interactive fiction -- probably most of the IF discussion, period -- happened on two Usenet groups: rec.arts.int-fiction and rec.games.int-fiction.

We have archives of those discussions from 1992-1997 and some of 1999-2002. (See IFArchive directories for RAIF and RGIF.) Outside those ranges, we rely on Google and its Groups service -- as you can tell from my two links above.

Google Groups has historically been iffy about Usenet. It started by acquiring the Deja News post archive (which itself only started in 1995, and was not completely preserved). Google's Groups service was then built on top of that -- rather in the sense of a rhinoceros being built on top of an old rollerskate -- and its Usenet access dwindled in priority. Its indexing was famously gappy for many years, although Google fixed that a couple of years ago.

I could get into a long post about Google's treatment of Usenet and its long-term consequences, but that's not this post. My question: we, the IF community, would like to hold our own data here. What's the best way for me to get a complete dump of all messages posted to those two Usenet groups, ever?

Scraping through the Google Groups web interface is a way to do this, but it's not very good, for a couple of reasons. (a) Google tends to shut down automated trawlers after some number of requests. (b) I'd have to deal with an extra layer of content encoding, which is more room for encoding to go wrong. (c) I don't know if Google's indexing is really complete, even now.

So it would be way better if some nice Google person could tap it at the source and send me a tar file. Or a DVD, or a hard drive, whatever. Anybody?

The qualifications:

  • Obviously there's no such thing as complete. I'll take whatever Google has, and merge it with the Archive records.

  • I mean all posts with either rec.arts.int-fiction or rec.games.int-fiction in the Newsgroups: line. I also want all the crossposts, including the off-topic ones, the ones troll-crossposted to a zillion irrelevant groups, all of them. Think Newsgroups:.*rec\.(arts|games)\.int-fiction.*

  • I think I want spam, too. Probably. It depends on how much spam there is. (Google's index lets through a lot of spam, but maybe there's a thousand times as much which it doesn't show.) Tell me if it's horrible, we'll discuss it.

  • Original post file format, if possible.

  • My intent is to take whatever I get, ball it up, and stick it on the Archive. Then (at some point, not necessarily soon) I will go through, cull out the off-topic trolls and spam, and post it as a nice browsable web site on the Archive. Or maybe somebody else will do that part. Collect data first; massage later.

  • This is a one-shot request, as discussion on those newsgroups has mostly (not entirely) ceased as of a couple of years ago. A dump from beginning-of-time through this month is fine. (The community has shifted to intfiction.org these days. Archiving the web forum is a separate topic, which I also have feelers out on.)

If you can help, please comment here, or email me (erkyrath@eblong.com). Thanks.

Tagged , , , , , | 9 Comments

Zarfplan: October, more or less

Plan for the month: create a major new subsystem, supporting shortcut actions! Outcome: ...part of it. Sorry. This month was a "missed expectations".

What threw me off track was -- well, in part, I admit, The Fool and his Money. It came out last week, after ten years of development, and it's a heck of a game. (See my review from a couple of days ago.)

But that game was released on the 25th, so no, it didn't devour the entire month. The larger time-sucker was a series of improvements and bug fixes to the Inform 6 compiler. This is the IF development language that I started out using. (Well, really I started out using BASIC, and then got serious with Inform 5. But Inform 6 is an evolutionary improvement on Inform 5 -- it's still "the same language", whereas Inform 7 is a whole new deal.)

I6 has been largely superseded by I7, and development on it has mostly ceased, although it's still invisibly present in the I7 toolset. (The I6 compiler is I7's low-level code generator.) Nonetheless, some people still use I6 in its own right. It so happens that a couple of months ago, David Griffith picked up the thread of I6 development, and has been working on a new I6 release -- the first since 2004.

David's work required some new I6 compiler features. I've handled most of the (sporadic) I6 code work in the past few years, so I was in the best position to pick up those requests. While I was in there, I grabbed a bunch of other code cleanup I'd been meaning to do. There went the first two weeks of October.

These updates will primarily benefit I6 authors; most of them will not affect I7 authors. One exception: I added an optimization to reduce the game file size by omitting unused functions. Right off the bat this knocks 6% off the size of Hadean Lands. (The I7 compiler inserts some features that I'm not using, and is also imperfectly efficient about building support code for the classes in my code. Turns out that these total about 6% -- more for smaller I7 games.)

So, okay, this is not a crucial milestone in HL development, but it was important and I didn't want to roadblock David's work. So now it is done.

Returning to HL, I got through a chunk of the shortcut-action feature. The game can now track all the objects you find, and answer questions of the form "Where the heck did I leave X?" Not as trivial as it sounds: the answer might be "You transfigured it into Y, then hammered that into a Z, and then threw it into a furnace, so tough luck, buddy." If you type "RECALL X", the game will actually tell you all of that.

(Okay, it won't say "tough luck". That would be unkind.)

This sort of tracking is necessary, because you might type "CREATE FOO POTION" -- this being after you've learned how to make the Foo Potion and gone through the ritual at least once. So now the game is willing to do all the work for you... but it knows you need an X. Where the heck did you leave that? If X is in another room, you have to be able to get there; but if you've thrown X in a furnace, the game will have to explain why the Foo Potion is now a problem for you.

This is a fairly standard recursive-dependency problem, and it's not going to kill me. I just have to crank through it, and I have now cranked as far as "Where is X?" Cranking will continue.

I've started the next bit, the "walk to room Q (where X is)". But just like an hour ago, and only so that I can get up tomorrow morning in an already-rolling mood, rather than "Ungh, gurk, must start a major new feature, maybe after lunch." Always leave a sentence unfinished before bedtime, sort of thing.

I shall endeavor to get all the shortcutting code finished in November, and hopefully before the end of the month, so I can post a more encouraging update then. Merry Halloween.

As you are well aware, tomorrow is the second anniversary of the Hadean Lands kickstarter going live. I continue grateful to you all. While admittedly distracted by The Fool and his Money, I have taken some lessons from it. One: don't announce a release date that you can't make good on. Two: the game is finishable. No matter what anybody says. I'm really sure that it won't take me ten years.

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

Kairo, quick comments

Kairo was one of the two extremely abstract first-person puzzle adventure games that excited me at PAX this spring. (Is that an acronym yet? EAFPPAG? No? No.) (The other one was Antichamber, which I'm still looking forward to.) Kairo was just released for Mac/Win, with Linux and iOS promised later this year. I grabbed it on Sunday and jumped in.

Kairo is pleasant, but quite short; I finished it in two evening play sessions. Why evening? Because the stark architectonic worlds work better with the lights off. It's not exactly a beautiful game, not like Dear Esther or the highly-rendered graphical adventures of decades past. But the author chose his style and worked the living hell out of it. With little more than rectangles, distance fog, baked shadows, a little focus-blur, and a few concrete textures, Kairo builds an impressive range of architecture -- thematically unified but not repetitive -- and invests it with a startling sense of scale.

The puzzle structure is -- I guess "pleasant" is still the right word. Kairo is pretty easy. You have exactly one verb: walk. Walk forward, walk on switches, walk into buttons. (You can jump, but I believe nothing in the game requires jumping.)

Kairo's puzzles are self-contained; each room is a puzzle in its own right, or else a mere hallway. This means you never have to remember clues, or associate information from one part of the game to another. You will never discover a connection between two machines, or trace an interesting pipe or drive shaft through the game world.

On the one hand, this modular design is deliberate. Even if I hadn't heard the designer boast about it at PAX, I would quickly have picked it up from the game. It provides a good clean bracket for the solving experience. You never have to run around hunting for more information. (Running around can be a drag in any first-person exploration game.)

But on the other hand, the design sharply limits the kinds of challenges the game can offer. And I think the game could have done more, even within that limit. The puzzles don't make much use of the architecture. You are not challenged to find ways over, around, or through. And also: the architecture doesn't make much use of interactivity. Some areas transform, but mostly in decorative ways, or as rewards, or simply to open new passages or transporters. Impressive, to be sure; just not interactively impressive. Nor does the game do Rhem's trick (really I should credit it all the way back to Riven) of providing puzzle architecture, areas that move and transform in complex ways which must be understood and manipulated.

So, as I said, I got through the game in two evenings. I solved three or four puzzles purely by accident. In two of those, I don't understand what I did; I just hit switches (or a switch) until the right thing happened. Of the rest, a couple really made me think; the majority were fairly straightforward.

And then there were a couple of secret extras that I didn't work out -- rooms with no obvious purpose, hidden doors that I didn't open. Potentially nifty, but I haven't gone back to solve them.

None of this should register as a complaint. Kairo is being sold for a casual-game price -- eight bucks -- midway between a free-to-play twenty-minute Flash escape game, and an old-school full-price weekend-killing story adventure. The challenge is in line with that; I got my money's worth. And I'll never turn down a couple of nights' worth of charismatic megalithons.

If I were to level a charge, it would be that the game world never really coheres, beyond the visual level. An adventure can set up its narrative drive through discovered texts and journals (old gag though that is). Or it can build a narrative out of its artistic details, the discovered connections and implications hidden in the visual world. Or this structure can come from the gameplay itself -- the connections you discover between the puzzles and mechanisms that make up the game. By solving, you learn what it's for.

Kairo disavows each of these strategies: it chooses minimalist artwork, (nearly) textless presentation, and modular puzzles. They're separate design decisions, but together they more or less rule out the sense of a coherent narrative world. It's not a flaw in the game, but a missed opportunity, I guess.

I'll be interested to see how other, upcoming new-style adventure games handle this stuff.

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

Zarfplan: September work

A month not of dramatic improvement, but of improvement regardless.

Jumping in a pool now works. Jumping into various other infelicitous environments -- details elided for spoiler reasons -- all work. You can draw metal rods into wire, and pound wire back into metal rods. There are now four different ways you can set things on fire, with different responses. Some of these behaviors support puzzles; others are just to keep the world believably fluid. (If an object is described as "dusty", and then you jump into the pool, it should stop being dusty.)

Why four different ways to set things on fire? Basically, I wrote up one set of responses for the sort of "burn X with Y" action where you hold a match to X. If you hold a match to a candle, the candle catches fire. But then I set up the retort, a glass vessel with a bunsen burner underneath. That's a different situation -- if you heat a candle in there, the candle melts. Maybe now you have a quantity of wax to play with. If you stick the candle into a kiln, it vanishes completely, poof, gone. (I'll leave the fourth as a surprise.)

All of this is a parcel of work, or four parcels, but fortunately I don't have that many cases of heat-responsive substances. (I can ignore rocks and steel tools, for example.) Each rulebook only has to cover ten or twelve cases.

Then, as I work, I think of cases that run into each other -- for example, as I was writing this post, I realized that I have one object which gets damp in water but then dries off in the kiln. I added a rule to cover that. (Most dampenable objects just incinerate in the kiln, so there's no need for a special case there.)

All game design is exponential explosion -- but if you can keep the exponent down around -0.3 or -0.4, the series sums to a finite value and the process eventually ends.

(Or, I should say, the process eventually gets into alpha-testing. That will be another whole ball of melted wax. I know I'm missing things, but the important ones will turn up over time.)

Non-HL news: I released Pocket Storm! A meditative, procedurally-generated thunderstorm for your iPhone. (Based, as you might expect, on the Boodler sound engine.) I was also an exhibitor at the Boston Festival of Indie Games, where I stood and demoed Shade and Meanwhile for eight hours straight. Whew. (See blog post.)

On the technical side: this month I got the iOS Glulx interpreter polished up. Previously I had the iOS Z-machine interpreter working -- that's what I used to release Dreamhold. However, Hadean Lands will be well beyond the Z-machine's capabilities. (It already is, in fact.) Most of the iOS porting work needed for the Glulx interpreter was either easy or identical to the Z-machine work... but the last few percent was a bear, of course. The bear is now placidly licking honey from its paws.You can see the result (if you're into iOS source code) on GitHub.

This brings up a question, though. The same week I posted that source code, Apple released the iPhone 5. It also updated its development environment to support it -- but the oldest iOS devices are now not supported. (The original iPhone, iPhone 3G, and the first and second-gen iPod touch.) I believe it's still possible to build an app that's universal across all iOS devices, but it requires some finicky command-line work across two different sets of dev tools.

Does anybody care? When I launched this Kickstarter thing, the iPhone 4 was brand-new and plenty of people were still on older models. (I still had an original iPhone.) I intended to support all models; the interpreter code I've posted does support all models. (Albeit letterboxed on the iPhone 5.)

Obviously, time has passed. You don't need me to remind you of that. If I release the game with minimum specs of "iPhone 3GS and iOS 4.3", will that leave you out in the cold? Let me know. I am willing to do the extra work for back-support, but only if it benefits real people.

(Let's not get into the "Apple hates everybody" rat-hole. There are blogs for that. The situation is what it is, I have to decide how to exist in it.)

For October, I intend to design a major new subsystem for HL: shortcut actions. Enacting a detailed alchemical ritual is fun -- the first time. The second time, it's grinding; you'd really rather just type "create potion of foo". So I will support that! ...As long as you have access to all the ingredients. ...Some of which require other rituals to create. And -- this is the hard part -- without accidentally introducing any new solutions.

Yeah, headache. See you in a month.

Posted in Zarfplan | Tagged , , , | 1 Comment

BostonFIG followup

I was at the Boston Festival of Independent Games and it was pretty darn awesome.

(Photo credit to BostonIndies.)

I had Shade and Meanwhile sitting out on iPads, and people played both of them! It wasn't literally eight straight hours of IF demoing -- there were gaps -- but it's not like people ignored the IF in favor of the interactive comic, either. Several people played a significant fraction of Shade. One dedicated player ran through the whole thing. (With some nudges from me. The ending requires a certain degree of relaxed experimentation and persistence, which isn't easy to maintain in a crowded demo room.)

(Yes, I wrote down a bunch of synonyms and action phrasings that I forgot to implement back in 2000. I will add them to the game when the iOS version comes out. User testing!)

Naturally I had a stack of IF cards to hand out to Shade players. I also got to show off the XYZZY Award I won for it, way back. And the puzzle-key I designed for the MakerBot promo game. (In the photo, the puzzle-key is sitting on top of the XYZZY. Sorry, I would have arranged that better if I'd known. Also I'd have been looking at the camera.)

Meanwhile was also popular, of course. It demos very well -- hand it to someone, and they'll get the idea instantly.

(I also had Pocket Storm running on an iPod. You can see the headphones in the photo, but nobody picked them up. Oh well. The good news is, I now know that an iPod can run PS for eight hours without recharging, even with the screen set to stay lit.)

I did not get much chance to look around the rest of the show, because I was standing and demoing for eight hours. That laptop in front of me? Didn't open it once. I thought I would be able to work on some HL code during slack time in the show. Ha ha.

But I could see some very nifty first-person 3D exploration games running across the room, and hear the shrieks of Conway's Inferno. (All my puzzle friends noted Conway's Inferno as a clear puzzle hit; I agree. When the iOS version ships, buy it.) And I got a few minutes to chat with Jason Scott before he showed his movie. I hear Peter Molyneux dropped by, but if I saw him, I didn't know it.

I did not win one of the show awards, which were voted by the crowds. (Didn't expect to.) You can see Shade got a string of yellow dots -- votes for "best narrative" -- although, to be fair, I think a couple of people were voting for Meanwhile. I don't see the winner list posted, but I know that the Best Narrative trophy went to Resonance, so congrats to Wadjet Eye.

Conclusion: this festival was a big success. It was an excellent way for crazy small-time developers like me to show off games, talk to people, and generally demonstrate our existence. Many people tried my games; more people watched the documentaries. I pushed the PR-IF link on anybody who expressed an interest in IF, so I expect we'll have a packed meeting in October. (Not yet scheduled, sorry.)

The show will happen again; it will be bigger next year. If you're a game maker in the New England area, and you're not big enough to set up a gigantic booth at PAX or GDC, you want to be at BostonFIG in 2013. I will be.

Posted in Boston | Tagged , , , , , , , | 2 Comments

Zarf at BostonFIG

I am happy to announce that I will be showing off Shade for iOS at the Boston Festival of Independent Games, at MIT next weekend. I will also have Meanwhile, Pocket Storm, Fealty, and the rest of my iOS portfolio ready to demo.

(BostonFIG: Saturday, September 22, 10 am to 10 pm, MIT buildings 34 and 26. Free and open to the public.)

More IF stuff at FIG: Jason Scott will be a keynote speaker, and he will be showing Get Lamp at some point. Plus there's this whole showcase of other indie games. It'll be cool.

What, you ask? Shade for iOS? It's still in development -- don't go running off to the App Store to find it. As with Dreamhold, I'm planning to leave the game file unchanged from its circa-2000 release, but I will add in-game feelies of some sort. Only not a map. A map of Shade wouldn't be very interesting.

Posted in Boston | Tagged , , , , , , | 2 Comments

Zarfplan: On through August

Last time I said, "I can confidently say I'll finish the alchemical ritual code in August." Which I did! Barely. (I just finished the last unit test, at 8:30 pm on the 31st.)

I now have 34 alchemical rituals working. And 265 unit tests, which demonstrate that they're working. I'm feeling a little dizzy, honestly.

You'll recall I said something about "burning bits of wood and an alchemical retort" being the last bits of infrastructure. Well, inevitably, those were a nightmare. Burning things is one of the archetypical Hard Things To Do In IF. The other two are mixing liquids, and rope. Well, I implemented all the liquid-mixing back in July... and this game is not going to contain any rope.

(There's a silk cord, but you can't tie it to things.)

Long story short: I now have a setting-things-on-fire engine, to go along with the liquid-mixing engine and the ritual state machine. This is where I get very grateful for Inform 7 and its rulebook architecture.

Quick example (you want a quick example, don't you?): the general command is "BURN X WITH Y". (There are many synonyms, of course.) So I set up a rulebook, and start filling it in with both general and specific rules.

  • burn (hardwood) with (burning softwood): The fire isn't hot enough for the hardwood to catch.
  • burn (softwood) with (burning magnesium): The wood burns away instantly.
  • burn (burning magnesium) with (burning softwood): The wood burns away instantly.
  • burn (wood) with (anything burning): The wood catches fire.
  • burn (anything burning) with (anything burning): "That's already on fire."
  • burn (anything) with (anything burning): "Randomly settings things on fire won't help."

These are not straight out of the game -- I don't really have magnesium -- but they give you the idea. It doesn't matter that some of these rules overlap; I7 arranges them from most specific to most general, and finds the first one that covers the situation. This means that I can start with some broad cases, and then add details until I'm satisfied. I don't need to plan the whole matrix from the beginning.

Which is good, because there's no way to think of all this stuff from the beginning. That case of "BURN FLAMING MAGNESIUM WITH BURNING SOFTWOOD"? I didn't realize until I tried it that it needed its own case. Sure, I could have let the "already on fire" case cover it -- but that wouldn't be satisfying.

(Then I built the retort, which has a sort of bunsen-burner arrangement, and realized that requires a whole new set of mechanisms. That took four days right there.)

Anyway, that's the war stories for August. What's up for September: a lot of little mechanisms and transformations which are needed for puzzle-solving, even though they're not rituals in their own right. For example, drawing a gold bead out into gold wire. Or jumping into a pool, and finding that all your possessions get soaked. (I'd say this is the easy stuff, but, well, liquids and fire. They're always extra work. Stay tuned for more war stories.)

In non-IF news: keep an eye out for another secret iPhone project! It should hit the App Store next week. This is an audio project, and if you're a long-time follower of my work, you might be able to guess which audio project.

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

Interview about IF in Giant Bomb

Patrick Klepek of the gaming-news site Giant Bomb interviewed me last month about modern interactive fiction in general and The Warbler’s Nest in particular; the resulting feature story is now online. The article ends with an exhortation to play through PR-IF’s curated starter-games list, which is nice to see as well.

While I do wince a little at yet another Adventure games are not dead after all! headline, I can’t help but think to myself: Well, it beats the alternative. And when it sits atop thoughtful articles whose comments sections quickly fill with self-styled gamers enthusiastically recommending IF works at one another, that gives me even less reason to complain.

Tagged , , , | Leave a comment

Zarfplan: On through July

At the beginning of July, I had three rituals implemented in my game engine. I now have seventeen. Plus their unit tests (130 tests in total!) That's pretty much my July, as far as Hadean Lands goes.

I had hoped to finish all thirty-odd of the game's alchemical rituals. But it turns out that the ritual engine isn't as separable from the rest of the game as I'd thought. For example, some of the recipes include mixing chemicals -- pouring one substance into a beaker of another substance. Well, that means I need a chemical-mixing engine, distinct from the ritual engine. (The player might go pouring acid into water, or vice versa, in any situation.)

So I had to spend some time setting that up. And then some rituals create potions, so I need to implement potion-drinking; some rituals create lenses, so I need to implement a "peering through" action; and so on. All of this infrastructure is still base cases -- none of the potions do anything yet -- but IF infrastructure is always harder than the specific cases that will make use of it.

Given the rate of progress, I can confidently say I'll finish the alchemical ritual code in August. (The remaining bits of ritual infrastructure are: burning bits of wood, and an alchemical retort. The glassware kind, not a smart remark.)

In other news, I released a Dreamhold bug-fix update, and have made excellent progress on the secret project. Hopefully that'll show up in August as well.

More July news: we had an IF meetup at NoShowConf, a new game-dev conference here in Boston. In the course of that weekend, I unexpectedly wound up sitting in a panel discussion next to Jim Munroe (IF guy and filmmaker) and Randall Munroe (xkcd guy, no relation to previous). You can find a link to audio of that discussion in this blog post. The rest of NoShowConf is also streamable online. None of the presentations were specifically about IF, but various IF-known people were among the presenters. I intend to plan IF events at next year's NoShowConf, so stay tuned.

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