Posts Tagged Interactive Fiction

Keyword Interface for Conversation Package

Following up on my previous articles on integrating Aaron Reed’s Keyword Interface extension with Eric Eve’s Conversation Package system for conversations (part 1 and part 2), I’ve packaged up the interface code as an extension and submitted it to the archive, so it should be showing up there shortly.

The code is a bit different from what was presented in the articles, due to some changes required because of minor issues with new versions of the extensions it builds upon.  The extension should support both Glulx and Z-code text coloring.

Thanks to Strainer for providing me the kick in the pants I needed to get this done!

Edit:  Due to an apparent bug with the OS/X version of Inform where it perhaps adds the author’s name and the extension name together before comparing against the 51-character limit, I’ve changed the name to “Keywords for Conversation Package”.

Tags: , ,

Hoosegow Wins!

Congratulations to Jack and Ben for another win!  The excellent Hoosegow defeated a deep and strong field to take the $1000 prize in the JiG Casual Gameplay Design Competition.  Congratulations to the other top finishers as well!

The top 4:

  1. HoosegowBen Collins-Sussman and Jack Welch
  2. Fragile ShellsStephen Granade
  3. Dual Transform — Nigel Smith (actually Andrew Plotkin)
  4. Party FoulBrooks Reeves

Tags: ,

Hoosegow

If you’re interested in one-room escape games, JayIsGames is hosting a competition for them.  One of the entrants is Hoosegow, an interactive fiction game by Ben Collins-Sussman and Jack Welch, the team behind this year’s IFComp winner Rover’s Day Out.

I did some design review on this game, although I wasn’t able to beta the finished product.  It’s another well-written, fun little adventure with a tongue-in-cheek Western style that should have wide appeal.  I was very impressed with it.

It doesn’t look like JIG is showing the contest details at the time I’m writing this, but it should be up soon.  Check it out when you get a chance!

Tags:

Inform 7 Development: Implementing Single-Keyword Conversations

This is part 2 of a series.  If you haven’t read the first part, you might want to start there.  In that post, I describe how to use Aaron Reed’s Keyword Interface extension alongside Eric Eve’s Conversation Package family of extensions to implement highlighted topic lists for Inform 7 conversations.

In this post, I’ll share how to implement single-keyword conversation analogous to what Aaron Reed does in Blue Lacuna, and also share a few bugfixes for the code from the first section.  By the end of these two posts, you should have the tools you need to integrate these two extensions and implement a robust, TADS 3-like conversation engine using highlighted topic keywords and a single-keyword user interface, with surprisingly little work.  Of course, coming up with good content is another matter…

Read the rest of this entry »

Tags: ,

Inform 7 Development: Integrating Aaron Reed’s Keyword Interface and Eric Eve’s Conversation Package by Way of Emily Short’s Complex Listing

Eric Eve has provided a wonderful conversational extention for users of Inform 7. Called “Conversation Package“, it uses a number of his other extensions to wrap up as full a TADS 3 conversation implementation as he could put together.  If you are curious as to why that’s so great, I encourage you to read the essay by Mike Roberts, the author of TADS 3, that covers his analysis of conversation methods in interactive fiction.  I’m pretty thoroughly convinced by his arguments that an ask/tell conversation system with topic prompting is the optimal way to implement conversation in a game where it’s going to be more than trivially important to the gameplay, and where there’s no pressing reason to handle it differently.

Likewise, Aaron Reed, author of Blue Lacuna, has published an Inform 7 extension called Keyword Interface.  Blue Lacuna uses a very user-friendly system whereby the user can perform certain actions by simply typing highlighted keywords — specifically: examining items, moving to different locations, and selecting topics in conversation.  The Keyword Interface extension provides drop-in support for examining and moving as in Blue Lacuna, but requires significant user implementation to make topic keyword highlighting work in your game.

In this article I’ll detail the steps necessary to make Aaron’s topic keyword highlighting work in the context of a Conversation Package implementation.  I’m not addressing what you would need to do to get one-word keyword conversations actually functional (mainly as I haven’t gotten around to that yet — when I do, I’ll post it) — this is just to get the highlighting working.

With that said, let’s get started!

Read the rest of this entry »

Tags: ,

“Good Eats”

alton_brown_geek_motivator[1]OK, this will be a special early post so I can get the link out there.  This month we’re hosting Dinner Club, and rather than our usual Iron Chef-style theme ingredient, we decided to go with an Alton Brown theme.

Part of the reason is that we’ve been watching a lot of Good Eats lately in the evenings after the two older kids are in bed but while Jonathan is still active.  Usually the choice is between Star Trek TNG and Good Eats as to decent shows to watch, and Alton has more… general appeal, shall we say.

So we came up with a comfort-food menu based on Alton Brown’s recipes, but I had a brainstorm after finishing the menu:  I’ve been working on interactive fiction lately — why not make an interactive menu?

I didn’t have enough time for that, but I did put together a short, themed interactive fiction work, loaded with Alton Brown quotes and quote-look-alikes, to serve as a companion piece — an appetizer if you will — to this month’s dinner club.

I used a couple of 3rd-party extensions and the core of one of my own proto-extensions to speed development, and after about 3-4 hours of work I ended up with “Good Eats”, an interactive menu.  Click on the link to run it directly in your web browser through Parchment, a Javascript interpreter.  The reason you can do this with this game and not with my competition game is because this one is small enough to fit in the old Infocom Z-machine format, which is the only one currently supported by Parchment.  You can, of course, also download the file directly and play it on your favorite standalone interpreter.

I hope you enjoy “Good Eats” as much as I enjoyed making it!  It was a nice break from longer, more involved projects; I now see the appeal Speed-IF has for participants where I didn’t before.

Tags: , , ,

New IF Links

infocom[1]I’m adding several of the better IF sites to my blogroll.  These are good places to get IF interpreters, IF games, information and reviews about games in the genre, and, in some cases, lively discussions about the current state of IF and directions it can be taken.  Check them out, and let me know if I missed any good ones!

Tags: ,

IFComp 2009 Overview — Grounded in Space Postmortem

pcm_trophy_lrg[1]The Rule 5-induced cone of silence has lifted, and the results are in!  Grounded in Space did reasonably well, placing 10th out of the 24 entries, very close to where I expected it would be (I had mentally blocked out 8th to 14th as the range I was expecting, based on reviews and my own experience playing the competition games).  I learned a lot and met a lot of cool people participating in this year’s competition.  Here are some of the major lessons I took away:

1.  I probably wasn’t ready to release Grounded in Space.  I vastly underestimated the amount of work required to make the game release-quality, especially post-beta work.  And I definitely did not know Inform 7 well enough to accomplish everything I wanted to; the triage required on the design to get the game playable was pretty severe.  Many of the cool parts of the original design ended up on the cutting-room floor, due to either lack of facility with the language or a self-inflicted lack of time.  I slacked a bit in the middle where if I’d put in more effort I might have accomplished quite a bit more.

2.  I’m glad I did release.  The experience of competing in IFComp ‘09 was invaluable; there are things I learned from the process, from the other games in the Comp, and from the discussions on the authors’ forums, that I probably couldn’t have learned in any other way.  In particular, I believe that I could not have learned the final process of making a game releasable — the testing and tradeoffs required in the end stages of development — had I not forced myself through it, even with a game that ended up deficient in some ways.

3.  Reviewers are all over the map in terms of what they like or don’t like.  I was pretty unlucky in that the first few reviews all either said or implied “I don’t like Heinlein.”  Well, that pretty much meant those reviews were going to be bad, since Grounded in Space is directly patterned on Heinlein juveniles to the best of my ability.  Later reviewers were more kind in that respect; there are some Heinlein fans out there after all!  Similarly, some folks liked complicated puzzles and some probably would have punched me if I’d been to hand when they got to the engine console.

4.  Notwithstanding #3, there were a number of valid criticisms of my game that were widely given:

  • The premise was really off the wall, and a lot of reviewers bounced off of it.  Sam Kabo Ashwell was very insightful here — it really was the result of me taking the shortest distance between two plot points.  Even a little more thought and effort here would have lowered the suspension of disbelief bar substantially, I think.
  • The introduction lacked interactivity — some objected to this and some didn’t, but there were certainly ways I could have improved interactivity in this section, and I simply didn’t have time to do so.  That was the first section I coded, so it was the one with the least language facility backing it.  I wanted to rewrite it, but bugs with the engine puzzle kept me busy right down to the wire, and I didn’t get the chance.
  • I got criticism that the engine puzzle was not suitable for the text format.  I disagree with this somewhat; I think that with a better text interface I could have made this more palatable for a lot of people.  But a subset of players was never going to be happy with a puzzle that required you to SET THETA DIAL TO -1575, and I didn’t realize quite how large that subset was.

5.  The game is likely unsalvageable.  At this point there are enough flaws baked into the design that trying to improve the game experience would require gutting and rewriting large sections of it, and I’m not going to do that.  I started on another work the day I submitted this one, and I’m planning to move forward with that instead.  There will, however, be a sequel to Grounded in Space at some point in the future.

6.  Inform 7 is awesome.  The learning curve is… interesting — you can get off the ground quickly, but getting really good with it requires you to cross the natural-language equivalent of the “uncanny valley”.  But the expressive power of the language is amazing, and I’m sure the pleasure (and it is, truly, a pleasure) of developing in Inform 7 is one of the main reasons — along with the great people in the community — that I’m so excited about continuing to write IF.

7.  Develop like you were developing any other kind of software.  I didn’t do this at first, treating it as if I were typing up an email.  Oh, I designed up front, of course, and had plenty of design documentation.  But I didn’t have source code control, nor any kind of issue tracking/prioritization system, and so I found myself wasting time on trivial issues or, worse, fearing to make changes in complex code (the reflectors, anyone?) for fear of breaking more things than I was trying to fix.  For my next project, I’ve addressed this; I’m now using Perforce for source code control and I already feel more fearless, comfortable, and productive as a result.

8.  Some of your beta testers should be from the IF community.  I used exclusively non-IF friends for testers, and although they found staggering amounts of bugs, helped me with aspects of the story, gave me a great insight into how newbies might interact with the game, and really got me to widen my net of synonyms, a few IF vets in the mix would probably have latched on to the more structural shortcomings of my work and made suggestions early on that might have helped me avoid some of the big design/architecture pitfalls I stumbled into.

9.  The whole experience was great, and an encouragement to proceed.  Even the negative reviews usually had something nice for me to take away.  The good ones (and there were more of these towards the end of the Comp, for some reason) were extremely encouraging.  Knowing my work clicked in a good way for some people, no matter how few, is a very powerful motivator to continue, and I will certainly be writing more IF and entering the Comp again.

So thanks to everyone who played the games this year, particularly to those who took the time to write reviews and let us know what you thought of our works.  I enjoyed writing for you and hearing both what you considered good about Grounded in Space and what you considered bad.  Next year I hope to improve quality on all fronts and produce something that will knock your socks off!

Tags: , ,

IF Development Tools

Christopher2[1]

Chris Doesn't Use Source Code Control...

Although Rule 5 is still in effect, so I can’t discuss my IFComp-submitted work, I’m still working on IF.  I’ve started two new projects which will share a bit of infrastructural code.

This time around, I’m improving my processes.  As a professional software developer, I wouldn’t dream of doing a project at work that didn’t use a source code control system.  In my previous IF work at home, however, I didn’t bother to set one up in the beginning.  While I was just dinking around, it wasn’t a problem.  However, once I got serious about a project, the closer I got to completion the more nerve-wracking it was making changes, for fear I’d blast something and have to laboriously reconstruct it.

Source code control protects you from this single-point-of-failure problem.  With an SCC tool, you check out and check in versions of the source code, so losing your current copy only loses you the changes since your last checkin.  In addition, a centralized SCC gives you a repository, so there are multiple copies of your file in the event of a catastrophic disk failure (of course, you should have a backup strategy as well; that’s orthogonal to the SCC issue).

I resolved that I wasn’t going to walk the tightrope without a net again.  The question then became which SCC system to get.  There are several good choices:  Subversion; Mercurial; Git; and Perforce, to name the top contenders.

I didn’t want to spend any money, but I’m not particularly ideologically wedded to an open source project.  I also use Windows, which affects the types of UIs available for OSS systems like Git, where the primary focus is on Unix-based systems.  What cinched it for me in the end was that Perforce, the system we use at work, apparently offers a free, non-expiring download of a 2-person maximum server, which is full-featured and supports all of their client apps.

I downloaded it and fired it up, and it was perhaps the easiest setup and configuration of a software package I’ve had to date.  No more than 5 minutes and the server was up and running, configured as a service.  3 more minutes and I had P4V running on my development machine and was importing my files.

Everyone has their own taste in SCC, but if you haven’t tried one yet, and if you’re working in a Windows environment, you could do far worse than to use Perforce.

Tags: , , ,

IFComp 2009 Final Pre-Submission Update

The “last” bugs have been squashed.  The walkthrough is written.  BB1162-002The beta testers have been credited.  The file is uploaded.

Grounded in Space is finished.

You won’t hear much from me on the subject until November 15th, when the judging is complete.  As per Rule 5 of the Interactive Fiction Competition, I cannot comment on my game or respond to reviews at any time during the judging period.  I do hope to have an extensive postmortem after that point, where I go into detail about what I learned and what I’ll do differently next time.

I will say that I’m already planning at least one new project; this one was so fun, challenging, and rewarding that I’m sure I’ll be motivated to try again at least one more time.

I’ve put a lot of time and effort into this, but it’s absolutely been time and effort well spent, no matter how I do in the competition.  It’s helped me to learn a new programming language and practice my writing, exposed me to some excellent interactive fiction in a community that I had no idea even existed before, and motivated me to follow through and finish a fairly large project purely on my own, with my own willpower and resources, giving me confidence that I can handle a project of this scale outside of the confines of work.

This last week was a doozy.  At the very last minute, one of my testers found a couple of issues that exposed a whole class of bugs that neither me nor my testers had found previously.  I spent Saturday evening frantically rooting them out, prior to bringing my wife home from the hospital with our new son on Sunday.  I’m pretty confident the bugs are cleaned up.  Of course, I’m also fairly confident there are others, and that there are weak spots in my writing that another pass might have addressed.

In the end, though, you have to call it a day sometime, and I choose now.  Play it and enjoy it; it’s yours now.

Tags: , ,

The Quern is Digg proof thanks to caching by WP Super Cache