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.

This entry was posted in Zarfplan  and tagged  , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>