Tag Archives: os x

My topic: analyzing and extending Frotz

Ah, Frotz. The most popular Z-machine and now glulx interpreter out there… Let’s back up for a while.


The first commercially available text-based adventure game was Zork I by Infocom in 1980. It was based on its almost-namesake Zork, that was made at MIT and only ran on big mainframes. For the commercial version, Infocom needed a very simple and versatile format. So they created the Z-machine format. Its only output was text, so interpreters for it could be made for pretty much any platform — and it was.

After Infocom

To my knowledge, the last commercial text-based adventure game was Eric the Unready. After that time, a new interpreter for Z-machine files ended up being necessary. A few appeared. The most popular ended up being Frotz, a command-line tool for Unix. Frotz was eventually ported to many systems, including Windows and more recently iOS.

Adventure games are not dead. Well, maybe not

Even though the number of people who play adventure games has shrunk and the number of people who play text-based adventure games or “Interactive Fiction” or simply IF is now tiny, a small community remains. New tools were made for creating new pieces of IF. Some were brand new, some compiled to the old Z-machine format. At the forefront of that latter category was the Inform programming language and its accompanying system, both created by Graham Nelson, a British poet and mathematician.

As the Z-machine had never been meant to be used by the public before, there was never a standard for it. Graham Nelson established one, aptly called the Z-machine standard in 1997. It has been updated since to version 1.1 in 2004. These standards are now used by most Z-machine interpreters.

A short note about Inform

Graham Nelson’s Inform language was very simple up to version 6. What made it a very powerful tool is that it came built-in with IF-specific rules. IF does require many rules to for the world of the story to behave in the way we as human players expect. These rules could be overwritten, but Inform did not require the programmer to write them. Example of rules could be that if an object is marked as being a container, it can contain other objects. However, an object cannot contain itself. This seems obvious to humans, but has to be coded in order to be in the world. Inform 7 goes much further and actually reads like English. It can still compile to the Z-machine format.

What I intend to do with all that

My independent study this semester will be the following:

  • analyze the Z-machine, using existing interpreters as well as Graham Nelson’s standards,
  • expose parts of the story inside the Z-machine and
  • display the information I gathered in the Windows interface in the Frotz for Windows interpreter.

I don’t know for sure how much of these I’ll be able to do, apart for the first one. But the Z-machine has such a reputation for being a very simple virtual machine that I hope I’ll be able to do all of them.

I, consumerist

It’s been about ten years since I’d lived in America since I moved back here ten days ago. Oh, I’ve visited many times since, but things are slightly different when one lives here. Here are a few poins I thought are worthy of note. They are personal observations about my first ten days in Pittsburgh, not an ideological primer.

  • Coupons are worth it. I saw a lady at the supermarket shrink her checkout bill from $50 to $35 with coupons. Also, the checkout lady refered to them as “cue-pons”, like Mel Brooks’ character in Mad About You. I liked that touch. I’m starting to look into that whole coupon thing. Yes, I am now officially an old lady.
  • My Mac, my internet router and my debit card all arrived early. In the case of my debit card, it was early by several days, and it had a PIN that had been preset by me. Toto, we’re not in Europe any more.
  • I like root beer. I used to confuse it with ginger ale, which is to “ginger-y” for me. But root beer, I like. I also like creme soda, though creme soda tends for suffer more when it’s in its “diet” version.
  • The lady at the pharmacy remembers me and reminds me to take my loyalty card. It’ve lived here ten days. After ten years in London, not a single person behind a counter knew who I was.
  • Verizon’s help desk is well-meaning but not really motivated. Not that I can blame them. When she asked me to open Internet Explorer on my Mac, assuming it was running Windows, I quietly stayed on Chrome. A good thing I was not running Linux. (This last sentence is so going to get quoted out of context.)
  • Pittsburgh is not Manhattan. It’s not easy to find a breakfast with eggs on a weekday in Shadyside. Pamela’s the only one I found so far.
  • The food is healthy. I’m sorry to all of those who assume otherwise, but in my experience it’s true. Don’t get me wrong: unhealthy food is available, and quite easily, too. But on average, I’ve felt well fed without taking huge amounts of insulin without eating at home much more easily than in London or Paris. It’s just that here, when you order a salad, you actually get some greens. Same thing with vegetables. It may be because I eat at CMU a lot, but today, my taco salad had a few tacos, but it was mostly veggies and salsa. And the egg and ham breakfast I had earlier was just that: eggs, ham and a hash brown. No bread, no butter, no baked beans, no croissant, no fried slice, no pastries, no “are you sure you’re sure you don’t want a pastry with that? You can always eat it later.”
  • The buses work better than in London. Now, the buses in Peru worked better than in London (really; I was there and tried them) so it’s not really that much of a challenge. But it’s nice to see that some cities outside of New York in the U.S. have good public transportation. Everything is still made for people with cars, though. But it’s possible to deal without a car.
  • I found generic sucralose (Splenda).

On the whole, it looks like this country is every bit the consumerist’s heaven it’s depicted to be. But I’m really not sure it’s a bad thing. After all, in Britain and France, the main reason we don’t get those sort of things is because we teach the consumers to lower their expectations. That is my experience, at least. (“Well, yes, the train is going to get there four hours late, but you can’t expect it to be on time every time.”)

The U.S., like every country, is not without problems. Actually, it has problems galore. Just look at the news is you want a comical version of the situation and to the Daily Show if you want a soberingly accurate one. But I’m not sure its consumerism is really one of them at all. The people at che checkouts who remember my name seem happy because they’re doing their job well by remembering who I am. That’s nothing to shun or sneer at. If anything, it brings them job satisfaction, which in turn might contribute to some measure of happiness. And I am told by some people who are more learned than I am on the matter that happiness is a very pleasant thing.

Reminiscing about Buzz and Wave at the birth of Google+

It’s not a secret that I love Google. I love their original web search service, I love Gmail, I love Google Docs, I love Google Maps, I love that they use Linux, I love that they use Python, I love their products.

Still, like more or less everyone, I hated Buzz and I got very disillusioned by Wave very quickly; though I probably held on to some hope about Wave a bit after most people had given up on it.

It would be very easy at this stage to make a list of why I think Google Wave went meh and Google Buzz went bust. Today, as Google is trying to keep their new service, Google+, from going down in flames the way Buzz and Wave did, that list is what I’m shamelessly about to do. That said, it’s not really a list: all the items on it can be rephrased as, “The problem was that it was more about Google than about its users.”


First, Buzz. It never bothered me that Buzz disclosed users’ locations or that it peeked into their contact lists. I never let Google know about my location at the time and I never actually went so far as to give Buzz a serious try. And here is why: what bugged me was that Buzz wanted me to change all of my friends or maybe even get new one. Let me explain. I have one general-purpose microblogging system I use: Twitter, like pretty much everyone. There are two main places where my Tweets show up: Twitter and Facebook. Actually, when people see my Tweets, most of the time, they see them on Facebook.

If Buzz had seamlessly let me pick up Buzzes from Twitter or let me send Buzzes to Twitter and Facebook, I would probably have given it serious consideration. But that’s not how it went. Buzz was, at its launch, a completely independent service that required everyone who used it to get everyone they knew to switch to it. According to Google, if you wanted to stay friends with me, you’d have to give up Facebook and Twitter for Buzz. But why would I inconvenience everyone I know plus myself in that way when not switching to Buzz and keeping Facebook and Twitter was so much easier?

But Buzz didn’t stop there. It nagged. Oh, how it nagged! My main email interface is web-based Gmail. Google put a link to Buzz in the main Gmail menu, as if it were part of Gmail. But following the link opened a new window making it a double annoyance: adding a link where it did not belong and opening a window unnecessarily. Then, they did the same with iOS interface of Gmail. The there is very little available space at the top of the screen of the iPhone and Google put not one but two links to Buzz there: a text link and a horrible, nagging little Buzz logo. I thought of leaving Gmail. Then, when users were trying to read their mail, a nag screen prevented them from using Gmail in order to urge them to try Buzz. I almost left Gmail at that point.


Wave was a sad, similar story. It reminded me of how brilliant Gmail was. Gmail added so much to the existing concept of email and did it all by staying discreet and in the background. Wave could, technically, have done the same thing. You could have sent a wave to someone on Google and if they only had Gmail, they would get it as a an email and if they also have Wave, they would get it as a wave. Sure, there might have been a few issues, mostly that Wave-specific features would not have gone through by email: the then famous Wave apps would not have worked and the conversation could not have continued as a Wave, but it would have been smooth and easy to use and, most of all, non-intrusive. It would not have mattered whether people had Wave or not to just use it and it would have encouraged them to switch to Wave if they had received a wave as an email. The focus would have been the users, the people, and not Google.

Instead, just like with Buzz, in order for Wave to work, everyone had to stop using email and start using Wave. This, of course, did not happen. If I know someone, let’s call him E Maginary, and I’m not sure if E has Wave, it’s much easier to send him an email. If E does have Wave and I send him a wave, that means that for me he has to check his waves and for everyone else he has to check his email. Even if more than one person sends him waves, it’s still an annoying extra step until more people use waves than email. And that annoyance is exactly what makes such a tipping point impossible to reach. So E is going to find it annoying if I send him a wave. And honestly I sympathize with him. Had it been possible to receive a wave as an email, this would not have been the case.


Now there is a major difference between Wave and Buzz. Buzz had pretty much no reason to exist rather than profit Google. It tried to become popular almost exclusively by nagging Google’s users. Wave, on the other hand, was a fantastic product with potentially unlimited potential that got destroyed by putting Google first and Google’s users last. I won’t hide the fact that I’m still angry about that.

Some great ideas that were made unusable by a few big flaws can be fixed and changed into amazing stuff, even after a long time has passed. Apple users know that. The G4 Cube led to the Mac Mini; the Newton led to the iPhone; and what is probably still Steve Jobs greatest technical accomplishment, NeXTSTEP, led in great part to the creation of Mac OS X. For some of these, particularly the Newton and the iPhone, I still think that despite their difference in success, the first one is more worthy of praise than its successor. But that’s just me.

Maybe Google+ will have something genuinely useful to offer, maybe not. My main hope for it is not really that it’s good (I’m not part of Google, so I don’t really care) but that if it is good, its greatness is be unencumbered and unrestrained by anything around it.