27

Pushed through another five or six testing transcripts today. I am always freshly stunned by how much time this takes, even when most of the bugs/missing features are not really that dire.

However, it was worth doing. Sam Kabo Ashwell found another Horrible Bug — he has a gift for this, I feel — by means of which it was possible to put the hart’s conversation into an unrecoverable loop and stall the whole scene. I think this is now no longer possible in version 27. Sobering that these things are still being found, though. Ugh.

Also, added quite a lot of new dialogue; we approach 400 quips, and will probably top that by the time all is said and done. Happy in particular needed a bit more fleshing out, especially on peripheral topics.

Thanks again to everyone who has contributed testing transcripts so far; I imagine that human-based testing will continue through the weekend.

Partway through the evening I had had enough of staring at Inform and decided I would prefer to stare at Adobe Illustrator instead; so I have given the website a makeover. This mostly involved designing a new template file and then spending a while fiddling around with CSS in the amusing fantasy that I know what I’m doing with CSS. My CSS projects always begin with me looking at csszengarden and having Coleridge-on-dope-style dreams about being the Kubla Khan of web design. They always end with me having composed another identikit webpage with links down one side and a banner along the top.

Version 25

Uploaded release 25 of Alabaster, after working through some more beta transcripts. The most notable changes were

  • systematically added handling of “maybe” and “I don’t know” as responses to most yes/no questions; sometimes “maybe” moves the conversation forward, sometimes it doesn’t, but it should now always be recognized as a reply.
  • went through and made sure this time that quips starting with “if” also recognize “whether”. (I know, I thought I had already done that, but apparently not. Probably I need to set up some systematic way of testing synonyms in quip names.)
  • fixed a stupid error that prevented some quips from being recognized under some circumstances, and particularly messed up elegant responses to the riddle. (They were recognized if phrased with ‘ask about…’ but not if the answers were phrased as ‘guess blood’ or ‘suggest blood’, which are more elegant possibilities really.)

Testers report that even the fairly advanced endings are not hard to reach. This doesn’t bother me especially, as I had never envisioned the game as being all that hard.

Meanwhile, OmniGraffle is completely choking on the .dot file now — I think it has just gotten too long — so I haven’t generated an up-to-date conversation graph. This is vexing. Good thing that the project is nearly done.

Alabaster Continued

Added a new “autopilot” testing command that plays through the game on its own by selecting randomly from available quips (though on average preferring ones that belong to the current conversation thread). Ran the game through it a number of times.

As tests go, this is merely mediocre — it doesn’t really simulate the behavior of a real player, but it also isn’t as thoroughly systematic as automated testing sometimes can be. Still, it did expose several bugs and infelicities, so I guess it was worth doing.

Things I still need to do before official release:

  • figure out why the game sometimes hangs under Filfre (what do we know about Filfre, anyway? Is it fairly reliable? I have reports of it failing consistently in one place, but I can’t reproduce this under Zoom.)
  • do some profiling and streamline the performance
  • get a few more human beta-testers through the thing (will look some up if no more volunteers appear on their own)
  • (most vexing): figure out why sometimes, apparently randomly, I get a runtime “too many activities” error after printing the name of a fact

Grrr.

Fit and finish issues: disambiguation

One of the fun (or, depending on how you look at it, annoying) aspects of polishing an IF game is working on the disambiguation. This usually involves combing through beta transcripts and seeing where the tester plainly meant X and the game instead understood Y. Sometimes the fixes are trivial things — you left out a synonym, you didn’t set a pronoun at the right time, etc., so the code didn’t have all the information it needed to make the right determination.

The more interesting cases are the ones that challenge you to think more deeply about how language normally works, though, and come up with sensible working rules about what the player probably means.

Alabaster spoilers after the cut.

Continue reading “Fit and finish issues: disambiguation”