Search Results for: zarfplan

Zarfplan: June is getting there

Happy Canada Day (and pretend I said that in French). 82 out of 90 rooms complete.

I'm not really measuring progress in rooms any more. There were only a few days this month that I'd mark as "wrote some rooms". June was mostly spent on underlying mechanisms which are not located in specific rooms; they're spread through the game. I don't want to get spoilery at this late date, but I have implemented large swaths of code for:

  • dragons
  • human figures
  • shadows
  • doors that change state
  • progressive starting conditions
  • ritual environments
  • looking through magical lenses at all sorts of things
  • the alternative to sheets of paper
  • the problem of trying to create two doses of some potion when I've only implemented one
  • a cigarette lighter

The cigarette lighter was a late addition. Some rituals require you to set stuff on fire. There's a couple of fire sources in the game, and you can light a bit of wood and carry that around, so it's all workable. But carrying around flaming bits of wood turned out to be annoying. They burn out. You have to get more. It felt like an imposition. So yesterday morning I said "Why doesn't this chem lab have handy butane lighters, anyhow? Real labs do."

(I don't call it a "butane lighter", or a "cigarette lighter" either, but a pocket flame source is a pocket flame source. Perhaps you have fond memories of So Far.)

So I can't put the nail in the room-list this month, but I have checked off lots of the game's remaining tasks. I am still fairly confident that I will have a complete, testable game at the end of July. That could slip partway into August, because every task list has a "last 90%" that trails off into infinity. But the game is filling out fast, and it feels like I finished half of the remaining job last month.

I am excited. And nervous.

Again, there's a chunk of work to do after the "complete game" milestone. I'll need to polish the iOS interface and build its eccentricities. (I'm thinking a tappable encyclopedia of rituals, which updates as you discover them. That will save a lot of "RECALL TARNISH RITUAL" commands. And then there's the tappable map, of course.) So August at least is scheduled for that stuff. But I will have beta-test reports coming in as I do the iOS work, so I can parallelize.

Other June news:

For the first anniversary of Seltani, I posted a little puzzle Age called Salvanas. (That link will take you straight into the game world, although you'll have to sign in to solve everything.) No story, just a collection of Myst-style puzzles -- only in text, of course. Statistics indicate that only seven people have completed it to date! Surely this can be improved.

I also got my butt in gear and posted the source code for nearly all of my Inform games. I've always had the source for Hunter, Shade, and Heliopause on my web site; I've now added Dreamhold, Spider and Web, So Far, and several others. (All are under a "for educational/academic interest" license rather than an open-source license.) If you're curious about Inform 7 source code -- or Inform 6, or actually Inform 5 for the oldest ones -- dive on in.

I've been taking a look at new distribution platforms. If you saw Shade on itch.io for pay-what-you-want, would you pay a dollar? I could set that up. There's also the Humble Store, although that's got an application process and their developer FAQ is a bit thin.

And finally, the 2014 Interactive Fiction Competition is open! Gaze in awe at the brand-new web site, built and run by our blog-host Jmac. Sign-ups and prize donations are now being accepted.

See you at the end of July. With a little luck, I will be into the final stage of development by then.

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

Zarfplan: May report, counting down

Last month: 45 out of 86 rooms complete. This month: 65 out of 89 rooms complete. I did twenty rooms in the past month. The total grew because I decided to split one room in half, and then added two tiny closets.

This covers most of "chapter 1" of the game. In exploring this far, the player can reach 66 rooms and nearly all of the rituals of the game. (It's the tool-collection stage of the story.) Figuring out how the tools fit together is "chapter 2", and that's how you reach the last 23 rooms -- the tricky ones.

It's not all about reaching rooms. There's a lot of... unlocking cabinets? Okay, cabinets aren't much different from rooms. No, the fun of the game (I hope) is in trying to reach certain locations with certain items. It's fairly easy to enter room X if you use up resource R, but to bring resource R into room X is harder. That sort of thing is "chapter 3".

So the game will involve a lot of backtracking. (Yes, I've implemented a "go to room X" command.) This is why I can't just say "I will implement 24 more rooms and be finished." I will probably implement 20-ish rooms in June, but there are several crucial rituals which occur in existing rooms, and I've been saving those for the end. July is for those.

I still expect to move into testing at the end of July.

Then I have to draw a map, polish the iOS interpreter, and work on other presentation issues. But hopefully I can do that in parallel with testing.

Other news...

The new Inform 7 release arrived on May 7th. People leapt on it with gusto. It's very nice. I've decided I'm not going to shift HL development to it, though. It has no features that I need, and while it's faster in some ways, it's slower in others. Plus -- the time factor. I could easily blow a couple of months updating all my code and validating that it all works the way I expect in the new system. That would be a bad use of my time at this point. So I'll stick to the compiler I've been using.

I have been playing around with an in-game debugger for Inform 6 games. (Built into the Glulxe interpreter, actually.) This is not very useful for I7 games, because it only tells you about the fiddly I6 internals. But it's already helped diagnose a few fiddly bugs. See this source branch and this file if you're interested.

The one-year anniversary of Seltani is coming up soon. I can't let that slip by unobserved, so I'm cooking up a small set of puzzle Ages. Should be fun.

I went to Balticon! It was a fine (working) vacation. (I didn't implement any rooms while away, but I did implement two cabinets.) There was no Lost Pig, but I took part in a handful of panels about IF, narrative game design, and so on. All went well. (Okay, three of them went well. The one on mobile app development fell kind of flat. Next time, I'm sticking to narrative/game topics.)

Speaking of conventions, BostonFIG is coming up again in September. The Boston IF group plans to host IF events there, like we did last year, but we haven't gotten down to specifics yet.

I briefly considered demoing Hadean Lands at FIG. However, friendly voices (thank you jscott) pointed out that it would be tacky to demo the game in public before my backers have seen it. True! So I'm thinking about other game ideas I might whip together by September. The entry deadline is June 20th, so I'd have to whip rapidly, but it might happen...

See you in a month, with -- I hope -- the last room-count progress report.

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

Zarfplan: April only it still feels like March out there

Seriously, it was 45 out today. Now it's rainy, but that's good news because it's a warm humid front coming in and we should get a May that feels like April, at least.

It's weird looking back at earlier updates. Last month I was pleased because the tutorial was finally done. In February I was pleased because I had finally started writing some rooms. Now the tutorial feels like it's ages past, and I have 45 rooms nailed down. That's 45 out of 86 total. We are past the halfway point, area-wise.

(Yes, I originally estimated 82 rooms, but a few more tiny ones have slipped in.)

So I did... (quick subtraction)... 23 rooms in April. Plus all the associated furniture and recipes and puzzle elements found in those rooms. Also I hammered in some optimizations that speed up large I7 games considerably (see here if you're interested), and added one of the two special viewing tools. And fixed a typo that's been staring me in the face for about a year and a half.

I have been informed that my last couple of update posts sounded disconsolate and defensive. (Not that you folks aren't supportive.) I really didn't mean them that way! This is the home stretch and I have been accelerating down it. I am aiming to do twenty rooms per month for May and June, and that will carry me to the end of HL's physical area. I'm excited.

The game will not be absolutely done at the end of the 86th room, because there is a final puzzle and some final scenes. (Associated with an existing room, but I will write them last because that's how I work.) Throw in some time for writing tests, and I can reasonably say that this thing will move into testing at the end of July. In fact this is so reasonable that I have now said it to you folks, out loud.

Wacky, huh?

The other news of the day was supposed to be the new Inform 7 release. This has slid a bit but should be out in a few days (see this post). I did a bit of final index-polishing last week, so you have that to look forward to.

Onward.

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

Zarfplan: March update

I will keep this short, because I just noticed that I have to run to the Boston IF meetup soon, and I want to get this post out before then. (A late-night blog post would wind up dated "April 1", and do any of us need that additional cognitive stress? I think not.)

In the past month I have completed thirteen rooms, with all the objects, descriptions, recipes, and messages that appear therein. As usual, some of these rooms are fairly bare (corridors) and others are crowded with stuff.

I have also completed the tutorial -- which took nearly two weeks on its own. The tutorial is intended to hold your hand through the first room. That's basically the content of the teaser game. It requires more code than you might expect. It's done, though.

I have mapped out the "environmental spell component" that I mentioned last month, and started coding it up. That's not a huge task; it was just a corner of planning that I kept sweeping around, and now I've gotten to it.

I did not put in any time on the Edifice Gumshoe project idea. I still have hopes for it, but it wasn't gonna happen this month.

I have finished up some infrastructure work (bug fixes and feature requests for the Inform 6 compiler). These will someday enable bigger and better IF games. They may enable Hadean Lands to be more memory-efficient, but that wasn't the primary goal -- I just wanted to keep the track clear ahead, as it were.

Speaking of bigger and better IF: Graham Nelson has publicly admitted to a planned release date of April 30 for the next release of Inform 7. This is very exciting; the current release of I7 is three years old and the bug list has been building up.

One of the lines in that post mentions "a full index for the documentation." I cheerfully claim responsibility for that one. It's a complete rewrite and update of my old I7 index page. I worked very hard on this in January and February of 2013. Soon it will be out in the world, fully integrated with the I7 IDE.

Am I going to update HL to use the new version of I7? I haven't decided yet. I'll give it a shot. But I've got a lot of code written for the current version. Even if it all compiles with the new version (which it might not; I use a lot of low-level hacks) it might not work exactly the same. And I'd rather not spend a lot of time re-testing existing code, when I could be writing new code. So we'll see.

Upcoming Zarf events:

I will be at the MassTLC Made In MA party on April 10, demoing Seltani. (Also Meanwhile, Dreamhold, and the rest of the iOS demo pack.)

I will be at Balticon in May. I will be on some kind of IF-related panel but I don't know the details yet. (There just might be another Lost Pig run.)

I have made plans to attend Dragoncon for the first time. As usual, watch for the hideous plaid jacket.

And that's it for the month, I guess. See you at the end of April for... more rooms. Probably a lot more rooms, now that the tutorial is all hammered in.

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

Zarfplan: February was kind of nuts

I suppose you want the room count, don't you. I will give it to you. When? Now, I should think. You look forward to it, do you? I think you do. ...Nine rooms, I got done this month. All clues, all descriptions, all scenery, all actions handled. I can play through those nine rooms and it is a solid, playable IF game.

This is most of what I call "chapter 0" in my notes. After another couple of puzzles, the player transitions to "chapter 1". That's where most of the game opens up, at least a little bit.

But how many rooms are there in this game? I hear you cry. Okay, that's a fair question. There are 82. So you might conclude that I am 11% done with this thing and have eight months of work remaining. And that's... not a completely terrible estimate.

I don't mean that it's my estimate. Or that it's accurate. Rather, I guess, that the possible errors fall in both directions. So I can't say it's definitely too long or too short.

Not all rooms are created equal. Laboratories and storage rooms are packed with exciting objects. Hallways are fairly boring. (They have just a couple of exciting objects that I moved from the storage rooms to even things out.) Maybe 25% of the rooms are hallway. They go by quickly.

Some of this month was spent constructing scenery classes which I will reuse throughout the game. That will save time later. On the other hand, I didn't have a chance to start the tutorial, which will run throughout the actions in the first room and then mostly drop out. A tutorial is hard work and may chew up a couple of weeks of March on its own.

I still haven't tackled the "monocle" plan (changing how some bits of paper are presented), nor one of the environmental spell components. (Neither appears until "chapter 1".) There's some planning to do there.

Some of this month was spent profiling the HL code, just to see if there were any horrible inefficiencies. Of course, there were. So I dug into a little low-level hackwork to speed up certain I7 activities. I will have to do more of this in the future.

So I add all those factors up and shrug. I got a lot of implementation done in February. It was a good month.

What else happened in February? I worked some on Project Edifice Gumshoe. I got as far as an iPad prototype, I showed it to people... total flop. The puzzle mechanic is simply opaque to players. Yay prototyping! I have some ideas for starting over. Boo starting over! Depressing even when it's necessary. But the code from the prototype will be recycled into something. I got clever with iOS animation transitions, and the result is very tactile.

I helped out with an effort to update the Z-machine specification documents. This is not strictly in my wheelhouse -- Hadean Lands runs on Glulx, my successor to the Z-machine. But David Fillmore decided to clean up a bunch of unfinished editing and error-correction from the old days... by which I mean 1997... and that turned into a bunch of online discussion. Plus I have the keys to the web site. So I put in some time on that.

There was also a proposal about adding text captions to IF cover art, and in general to images in IF data files. (For accessibility, like alt tags on web images.) This is in my wheelhouse; I proposed the IF data file spec so I get to organize updates to it. Then we looked at the IF Babel site (covering bibliographic information, including cover art) and realized that nobody was in charge of it; it's just been sitting untouched on the Archive since 2006. So I cranked up a mailing list and got that side moving. (The Blorb side is awaiting comment; I'll add it to the site next week.)

And today I dug into a completely tedious idea about adding more boolean flags to the Inform 6 object structure... which I thought I implemented in '98... but it turned out I forgot. Result: a completely tedious patch to the I6 compiler, which works great. (Unit test!) Only my clever optimization idea of '06 didn't take this into account, so it breaks when you run it. I'll have to update the Glulx spec too.

Will Hadean Lands benefit from more boolean flags? Probably not! Because even if I get the interpreter fixed, I7 doesn't know to take advantage of it! Yes, IF is still software engineering: messy. But I move my parts forward one step at a time.

And I played the new RealMyst update, and some of the Dishonored DLC from last year. Gotta finish that this weekend.

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

Zarfplan: Welcome to the new age

(I have that song stuck in my head, sorry about that.)

It is the end of January; it's been six weeks since my last update. Merry 2014! The holidays are over and I ate a lot of cookies. You've probably forgotten what my voice sounds like. Welcome back. Or welcome me back, I'm not sure which way it runs.

January was a weird month for Hadean Lands development. I said it would be "story bits". What does that mean?

Way back when I was sketching out this storyline, I outlined a set of characters who would appear throughout the game. I sketched out their roles, and how they would relate to each other and to you. One appears at the very end of the teaser, if you recall back that far:

You can see a figure caught behind the fracture. You peer closer in the gloom... That's Lieutenant Anderes, apparently frozen mid-step. What's she doing down here? And why is she carrying a crumpled alchemical recipe?

My reputation is for not writing games with a lot of interacting characters. It's just not my thing. I suspect it will never be my thing, but I keep trying to put them in, and they keep winding up... heavily constrained. The interrogator in Spider and Web only permits you to respond "yes" or "no". The NPC in Dreamhold is only seen in flashbacks.

I've gone through the same cycle with Hadean Lands. As you see, the character above is "frozen" in a splinter of cracked space-time. Not exactly Floyd the chatty robot. Don't get me wrong: these characters will be woven into the story progression. Their positions and situations will not be fixed throughout the game. I have some ideas on non-traditional interactivity, which I think will be nifty.

On the other hand, they're not as deeply integrated with the puzzle-based storyline as I'd like. (Some critics would say Dreamhold had the same problem.) I've had this outline sitting in my notes for... way too long... and this month I just sat down and crunched out the text. If I had written it in parallel with the past three years of puzzles and map code, it might have come out smoother. (If I hadn't seen it as scary Character Writing to be procrastinated... oh well. Like I said, it's not my thing.)

Anyway, it's done. I now have a text file with N characters, described differently in M stages of the game, with X variations for branching possibilities. It's not a big text file, but it covers all of the game. And that's a task checked off. Victory!

As you can tell, I have reservations about this stuff. I had reservations about the flashbacks in Dreamhold too. Should I let that slow me down? No; I should get on with writing the game.

The good news is that this text was the last scary part. Now I have the map structure, and the puzzle mechanics, and the story bits, so I can dive into my usual IF-building plan: start at the beginning, implement until the end.

Thus: tomorrow, I will sit down and re-implement the beginning of the teaser. (It's changed somewhat, so I can't just copy the code over.) I'll start setting up the first room, just as the player will see it. I'll build all the scenery. Then I'll hook in that first ritual. Then I'll move on to the second room...

I still can't say how long this process will take. I won't finish it in a month. But it's the last stage of implementation. When I reach the last room and the last puzzle, I will have a playable draft of Hadean Lands. Scary, eh?

Quick note about related IF work:

  • I've updated my IF test tool to handle "include" sequences. (This will become critical for me, as HL proceeds.) It can also now test the contents of the status line. (Totally unnecessary for me, but I've been meaning to add that feature. Somebody must want it.)
  • I have planned out a wacky little iPad text game, which currently bears the code name "Edifice Gumshoe". (Inelegant, I know.) I've started implementing it, in spare hours. I'd like to ship it in the next couple of months. Just so that the world doesn't forget my name.
  • I'm making tentative plans to attend Balticon again; I might even appear on some panels about interactive narrative.
  • I've hung up a Heavenly Shining Beacon of Hope in my computer room. This has nothing to do with IF. I just like it.

I'll see you at the end of February. I'll tell you how many rooms I implemented in a month -- and with that, I might even have an estimate for finishing the thing.

Posted in Zarfplan | Tagged , , , , | 3 Comments

Zarfplan: Mid-December

Yes, it's early. No, it's not the Ides of December yet. That's tomorrow. Good thought, though.

I said that I wanted to place the final rooms and cabinets. That's now complete. With all the locks, navigation, and goal-traversal that they required.

I also decided to implement a lot of bits of paper. You'll recall that over the past two months, I chose locations for all the "magic words and recipes" to be found in the game. (Physical objects were basically all nailed down by November.) This information would appear on sheets of paper that you'd collect as the game went on. The first such sheet appears in the HL teaser.

So I decided, what the hey, I'll implement all of those objects. Not their text -- I mostly haven't gotten to scenery descriptions yet. But I wanted to create the objects, place them in the game, and assign their effects: what rituals and formulae do you learn from reading each one? This is all scutwork; I have all this information in my notes, I just have to crank through them. It'll maybe take me one day. And then that'll be done.

Well, it's done. You want to know how many pieces of paper I wound up with? Forty-three, that's how many. I've spent the past five days on this. (Admittedly, mixed in with some of the more recalcitrant cabinets.)

I intended a play experience rather like Infocom's Enchanter: you explore an area, and every once in a while you find a piece of paper! New recipes! Yay!

Forty-three pieces of paper is not that joyful experience. It's more of a burden. It's "Argh, more paper, what have I done to deserve this?" It's a tornado in a sticky-note factory.

Something is going to have to give. I will need a new game mechanic or two -- some way of discovering information in a location that isn't "See paper, pick it up, read it." The game doesn't need to be any more complicated, but it definitely needs some more variety.

I am not short of options here. There's books; books are always fun. (But I'd have to chain them down, because otherwise players would be juggling twenty books in the inventory, which is zero fun.) (Bits of paper, I can discreetly vaporize after reading.) (Yes, there's a REMEMBER command which gives you access to everything you've read.)

There's the old memory-flashback gag. Walk into a room, remember a lesson... or maybe it happens when you touch an object. Too cliche? I'm not thrilled with it. Maybe I'll have a special monocle you can peer through. I know, Counterfeit Monkey did it, but...

Well, something will turn up.

It will not turn up in 2013. On vacation now. Cookies are planned. Videogames are purchased. (Videogames are already started, to be honest.)

This is not to say that I'm off hacking for the rest of the month. I've done a draft of my other iOS text game idea, but it doesn't exactly work as-is, so that will get some more pounding. I will probably mess around with some Seltani features.

My next update will be at the end of January. Plan for that month: story bits.

Posted in Zarfplan | Tagged , , , | 4 Comments

Zarfplan: November

I am happy to report that all the items are placed. Every line in my recipe chart has a "found in" notation! ...I'm telling this out of order.

The first half of the month, I caught up on the implementation that I planned last month. That is, I created the ten new rooms (plus some cabinets) that all of October's placements required. And the navigation between them. And the locks on their doors, where appropriate. And the goal-tracking to open the locks.

In the second half of November, I decided all the placements for the latter half of the game. (Two "chapters", but as I said, the chapter numbers do not reflect either game pacing or numbers of objects.) The map grew another couple of rooms, and several more locked cabinets, but I have not yet implemented these.

You might think that the first half of the month was difficult coding work, and the second half was lazily scribbling in locations on a chart. Ha. No. Code is easy. Decisions are difficult.

Every decision is wading into a hazy cloud of "this will probably be okay" and throwing away 99% of it. Most of the possibilities that I discard are fine. Some look fine, but will trip me up later. I have to make sure that the one I keep doesn't trip me up. And then I have to make sure that I like the pacing -- where it shows up in the player's run-through. Or rather, the range in which it might show up. Too soon? Too much confusion early on? Might the player run into the hard-but-correct solution to a puzzle before the easy-red-herring solution? That would be embarrassing.

And then I do it again, and again. I've been doing it all day. My brain hurts.

(Yeah, I'm writing this on the evening of Dec 1st. Procrastination struck after Thanksgiving. I caught up.)

So, okay. I have (nearly) hit a serious milestone, and I am declaring a (sort of) vacation month. My brain needs to stop hurting for a while.

In December I will implement those last rooms and cabinets, so that I can say I've actually placed everything in the game. But I'm not going to work on HL otherwise. I will do holiday things. I will bake a lot of cookies. I may play the latest Bioshock.

I have a sneaky idea for another iOS text game, which I might try to crank out by the end of the year...

Posted in Zarfplan | Tagged , , , | 2 Comments

Zarfplan: October -- goodbye sunlight

Not goodbye forever, or even for the rest of the year. But it's Halloween; it's been damp and grey all day; and I just returned from the annual Somerville Anti-Morris Dance. Feels like putting the sun to bed.

I spent the first half of October dealing with the remaining major puzzles -- the ones outside the starship. Naturally, this was more work than I expected (it's always more work than you expected) but I got it hammered out.

Then, on to the map! This was more than just adding rooms -- it's about positioning objects and clues.

I've long had a list of important puzzle elements, and a sense of where they appear in the storyline: these in chapter one, those in chapter two, that one behind locked door X, and so on. But most of them weren't actually present on the map. So for the past week, I've been going through the storyline, chapter by chapter, and marking down locations for absolutely everything.

This task is still in progress. I've gotten the first two chapters nailed down. "Out of how many chapters?" you ask! Well, that depends how you count. There are four major plot stages, which I've been calling "chapters", but I suspect that they won't appear as such in the final game. The player will see significant breaks, but perhaps not the same division points. Maybe six of them?

That's not a useful statistic. Here's a better one: 60% of the magic words, 40% of the recipes, and 95% of the physical objects are now located on the map. (Yes, all that stuff appears in the first two chapters. These include many common items which will be reused throughout the game. The later chapters introduce rarer and more powerful items -- thus, by definition, fewer of them. Hadean Lands is front-loaded with toys; that's just how it came out.)

The map grew ten new rooms in the process. This was expected; I've always had a vague scribble off to the north marked "crew quarters, more stuff". That's now filled in. Bonus: I've sketched out the first two chapters in my PlotEx constraint tool, so I know the game is solvable that far. I haven't put a key behind the door it unlocks, or anything dumb like that.

The down side: I haven't implemented these new rooms, or the bits of paper with all those magic words and alchemical recipes. They're still just notes in my files. And of course I have two chapters (40% of the words, 60% of the recipes) still to go. So November's work is laid out for me.

As you know, tomorrow is the third anniversary of this Kickstarter's launch -- and the third anniversary of its funding goal, since your generosity cleared that on day one. I never anticipated this long a road, and it's not done yet. But we're moving along. I appreciate your patience.

If I may indulge in hindsight: a year ago, my update post was all about the goal-shortcut system... which was partially done, but included no puzzle goals yet. And I was getting ready to start implementing the map.

Two years ago I was staring at a huge stack of disparate puzzle and story ideas with a panicked expression on my face.

So, while I'm not thrilled with my progress rate, I don't think I need to be ashamed either.

Enough of my self-regard. More IF news:

I will be attending the Practice conference at NYU in mid-November. I'm not speaking, but Emily Short is. Should be a fun weekend.

The People's Republic of Interactive Fiction now has a twitter account. If you're in the Boston area (or are generally interested) follow away.

Finally, a bare-faced plea! As you may be aware, Cyan Worlds has launched a Kickstarter: Obduction. This will be their first major new game since Myst 5 in 2005. They have set a high goal -- over a megabuck -- and they are currently about 60% of the way there.

As you know, I'm a big Myst fan. I want to see Obduction get made. It's not Myst-related, and that's good: this is Cyan's chance to break away from the long decline of Myst Online, and start something fresh.

The Kickstarter is cranking pretty well, for the mid-project trough period. I'd still like to see it closer to the goal before the frenetic final weekend hits. So: please consider a donation. If you glanced at the Kickstarter when it launched, it's worth reading the updates; Cyan has added a measured dose of detail about the game's background and storyline. Also: Oculus Rift stretch goal.

And now I must digest Halloween candy and get over the sugar rush. Next month.

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

Zarfplan: The eidolons of September

Gasp. Late, but triumphant. It's October 2, but I've just finished the last major puzzle item... if, okay, I fudge a little on "major".

All the horrible details with lead weights have been resolved. A puzzle with elemental fire which I completely forgot about until this week: implemented. And I've beaten out nearly all the quirks of map navigation which I was worried about. (There were a lot of quirks. Really it's the majority of what I've done this month.) (Because I was procrastinating on the lead weights, that's why. Every time I looked at the lead weights, I'd say "Hey, how about I polish off another map route instead?" And I'd do that! It's the good kind of procrastination.)

So yeah, all the major puzzles, except the "outside the starship" ones which, okay, I haven't gotten to yet.

You can count that as a miss, but it was a lot of map quirks. Anyhow, I get to declare a new milestone. End of October: outside-ship puzzles, and add all the little detail rooms. That is, all the locations which are currently globbed on my map as "player reaches here chapter 2". There's no puzzle involved in reaching these locations, which is why I've glossed over them until now; they're for realism (what does an alchemical starship require?) and pacing (is the player's rate of exploration smooth? Are objects too bunched up?) Not really hard work; but annoying work, because I have to make decisions and think about the high-level game structure. It's a big structure.

Other IF notes for the month:

The annual IFComp has begun! 36 short text games. That's way more than last year. The growth is primarily in the choice-based sector; the Twine community has more links to us old-school IF folks these days, and apparently they are paying more attention to IFComp. Anyhow, anybody can vote, so try some games.

A nifty article appeared on teaching English composition with IF; specifically, with my game The Dreamhold.

And finally, I'll be showing off Seltani at a demo night of the Conference on Artificial Intelligence and Interactive Digital Entertainment. That sounds daunting, but I'm not part of the conference per se; it'll just be a bunch of game developers and academic folks hanging out, demoing projects, and talking about them.

That, I guess, is all the news for September. See you Halloween-ish.

(No, "eidolons" has no significance in this post except that it sounds good.)

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

Zarfplan: August report

The holiday weekend is over, so it's September by anybody's definition. Where are we?

I got one of the lead-weight puzzles hammered into shape. (Not a pun, it's not a hammering puzzle.) I implemented the alchemical effects that deal with the lead weight -- and some other lead objects lying around, of course, because you gotta acknowledge consistency. I put in some common verbs ("free", "release", "unfasten") which I've been meaning to do for months. I dealt with several irritating map-navigation cases.

Not done: the other major lead-weight puzzle; the puzzle elements outside the starship; more map quirks. Since that's roughly equivalent in scope to what I did this month -- and half of what I described as "remaining major puzzle items" last month -- I'm happy to say that September should cover them.

Once again this is a short update, but you get a September milestone out of it, at least.

My non-HL milestone for the month was presenting Seltani at a Myst fan convention (at the beginning of August) and then to the rest of the Internet. You can read the introductory talk on my web site, if you haven't already. Try it out! Ages are being added nigh-daily, at this point.

I haven't been working on Seltani intensively -- that was May and June -- but I've been bumping the features and bug fixes forward, with the help of the first wave of dedicated users. (Thanks, users!) I will continue to push on it in combination with all my other crazy projects, because I believe in it.

And I will see you all at the end of the month.

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

Zarfplan: summer, July, occasional rainbows

The weather has been awfully nice around here. Not the ridiculous 95-degree weather, not the equally ridiculous wave of 50-degree drench that followed it -- but strong sunlight and rainclouds, silhouetted against each other in layers. The full Spiral celestial archipelago, for those of you who remember Michael Scott Rohan.

Sorry, slightly euphoric.

HL got cranked firmly along this month, so you can go home and reassure the cats that June was just a temporary aberration. Number of puzzles implemented... I think the correct count is five, although things are getting complicated and it felt like more work than that.

The situation I dealt with (just to give you the idea) is "getting outside the starship". This is a minor complex of puzzles in its own right, with two different external areas, three access points, two magic items, different possibilities at different stages of the game -- you get the idea. As I said a couple of months back, I am implementing everything twice and the specter of untested plot combinations looms over me like, like a specter. Spectrally. It's somewhat exhausting.

But now you can get outside the starship, in all possible ways and by all possible means. Unless I decide to implement that sixth red-herring option. That'll be extra work.

Otherwise -- taking breaks from the airlocks -- I made some progress on the iOS board game that I've also been putting off. And I pushed the Seltani project a ways forward, although I managed to keep my hands off it for the latter half of the month. (I do well juggling two big projects at once. Three, not so well.)

What remains on the puzzle list is... hm. Surprisingly few major items. Several ways to mess around with lead weights. Some hijinks outside the starship which I will not detail. A lot of irritating map-navigation cases. (You acquire shortcuts as the game goes on, which complicates the automatic "go to X" code.)

I won't claim I'm getting near the end of mechanical implementation, because there's an inevitable shedload of minor game reactions and interactions too minor to be called puzzles. (Unless I'm in a mood for academic discourse. But that's not this post.) But I can hope to have those major items done in August. That would be good news.

So, short update for the month, but encouraging, I hope.

Reminder: Sept 14-15 is IF meetup weekend here in Boston.

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

Zarfplan: Seltani, or what I did in June

Up front, here: what I did in June was not work on Hadean Lands. The secret project ate my soul and my life.

This will happen sometimes. I spent a bunch of 2011 working on Meanwhile and other early iOS projects. In 2012 and 2013 I have made steady progress on HL but not daily steady progress, and this is because I am balancing the usual large number of things. In June I got obsessed and the balance went sideways. In July I will drag it back.

(I could make myself look better by pointing out that this idea clobbered me in February, and I managed to put off starting it until May. Okay, that doesn't make me look good, exactly...)

Shall I leave the post with that? No, that would be tacky. If I'm going to foist you off with this "secret project" excuse, I should pull back the curtain and give you a look. Behold -- (shwoooosshh) Project Seltani.

Seltani is interactive fiction -- but not traditional, parser-based IF like HL. It's... sort of the love child of a text MUD and a CYOA engine, conceived in the stairwell at a Myst fan convention...

This metaphor, it has failed. Let me start over.

I'm not a hardcore MUD person, but I've been on a few, starting with the classic TinyMUD at CMU. The TinyMUD family are social text environments. They were supposed to be like interactive fiction, but multi-player and real-time.

It never exactly worked that way. I've never been on a MUD that had a real, Infocom-quality (or Inform-quality) parser. It's not a technical problem -- zog knows all these parser libraries were cobbled together by the same sort of hacker geeks. It's a design problem. In good parser IF, everything the parser tells you is tuned to the particular game -- that's how you learn how to play the game. Even though most of the IF commands are pretty standardized, there's always some give-and-take. You type "WEIGH ANCHOR", and the game responds "I don't know that command," or (in a pirate game) "You're not on a boat!" So you learn. Even a simple response like "What do you want to unscrew the screw with?" points at a potential puzzle -- and if the game doesn't ask that, you probably aren't looking for a screwdriver.

This whole model falls down in MUDs, because MUDs are (in general) extensible by multiple authors. Every area in a MUD could have different potential actions. So there's no way to learn them. TinyMUD's model was to have different actions for every object. Even a simple command like "push" wouldn't be recognized if it was applied to a random bit of scenery.

That was frustrating. I did a little bit of MUD building, but it wasn't really up to what I wanted. And that stayed in the back of my head for twenty years.

Second angle: Twine. This is a hypertext-style game system -- that is, choose-your-own-adventure -- which has gotten a lot of attention recently. (Credit to indie designer Anna Anthropy for getting that ball rolling, and old-time IF guy Chris Klimas for the Twine engine.) It's got a really smooth learning curve. Twine isn't a programming language optimized for text games (like Inform); rather, Twine is a wiki optimized for text games. You write passages of text, and link them together. It's a very simple model that gets the job done.

I'm a programmer and code doesn't scare me, but I can see how a wiki is way more approachable than a compiler. So I started thinking: does it make sense to build a multi-person, wiki-style text world?

Third angle: Myst Online. I don't post much about it here, but I used to be active in Cyan's abortive attempt at a Myst MMO. It sorta-launched several times from 2003 to 2007, and now hangs on as a free service kept alive for the fans.

Fans being fans, there's an ongoing effort to mod in new content. It's a very slow effort, because 3D modelling is an infinite abyss, and (obviously) the codebase is getting antiquated. People have built some cool stuff, but it's still a trickle, and there are way more ideas than there are finished areas.

So now I start thinking: does it make sense to built a multi-person, wiki-style, easily-extensible, all-text Myst fan MUD? Project? Thing? I know that people want to build worlds, and some of them are programmers but some aren't. And there are plenty of MUDs out there, but they all seem to be bogged down in this half-baked command-line model; they're hard to play and they're really awkward to build in. And there are plenty of Twine games out there, but only a few of them have any notion of multi-player, and those aren't the sort of hang-out-with-your-friends social environment that MUDs provide.

There must be something at the intersection, I thought. I could see it; and nobody was doing it.

Reader, I had to do it.

Seltani is not yet public. (Although you'll see the teaser page at http://seltani.net/, and you can find the source code on my Github page if you really want.)

The engine, and my first few worlds, have had some very limited testing. I struggled to finish the world-building interface by the end of June, so that I could push it out the door... and I did, but I haven't finished writing the documentation yet. Hopefully this week I can invite in a few alpha world-builders, and then the server will crash a lot and I will rend my garments and howl at Jupiter's moons. After that...

I think this is important. It's a new style of MUD, it's never been seriously tried -- as far as I know -- and I think it could turn big very quickly. Or not! If I were reliably right about things turning big on the Internet, I'd have a gold-plated sofa. But I need to try it.

In the meantime, July will be back to HL progress, as well as the April secret project (which has not advanced beyond its last milestone, argh). I will certainly lose some time to fixing Seltani bugs; this is inevitable. But life will go on.

Posted in Zarfplan | Tagged , , , , , , , | 5 Comments

Zarfplan: May (plus a little) progress

Yes, I'm late. Sorry -- it's still the weekend, isn't it?

Six puzzle barriers, and the map traversal code that goes along with them. As I said back in... when was I working on ritual shortcut code? November? Anyway, a lot of this game has turned out to be "Implement a thing! Now implement it again, in the more-convenient shortcut which is available once the player knows how to do it!"

Then, in some cases, you implement it a third and fourth time, for when the player discovers an alternate solution and starts using that.

I am moderately terrified of bugs -- any mismatch in the implementations is going to cause plot holes. In normal programming, you'd have a single implementation underneath and call it from two (or four) places, but sadly that approach doesn't make sense here. So I do acres of testing and sweat a lot.

(The latter only slightly because the temperature in Boston zoomed up to 90 this weekend. Cold front tomorrow, which should help, if the accompanying thunderstorms don't knock over my power.)

I'm afraid I don't have any other exciting news for May. I spent a lot of time on Secret Project STW-5, which is just the coolest thing in the world but not ready for any kind of public display yet. (It is IF of a sort, but not parser-based.) I am hopeful that I can start limited alpha-testing in the next couple of weeks, so I may have more to say about it next month.

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

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

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

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

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