Monday, November 06, 2017

First-timer Foibles

My old web-page at MTS has come down and as this is linked in a few places on-line, I thought I'd archive it here. Google never deletes anything, right? This is not perfect as the only place I could find it archived was the original Usenet post, when it was called "Amateur Author Annoyances." I've gone through the suggestions after the post and tried to re-incorporate suggestions I likely incorporated at that time but it's likely not exactly the same as it was.

* * *

I decided to jot down a few things I've noticed in a lot of the amateur games I've tested or tried out. I've tried these games for reasons I can't entirely fathom; admittedly, it's easier and leaves fewer disfiguring scars than self-flagellation. It is not necessarily any less painful though.

This is not intended to be a "You know you're dealing with an amateur IF author when..." list. It is intended to be useful to new writers, to know some of the things that scream "WARNING: Amateur author ahead, proceed with Caution." I have also, in a couple of spots, mentioned ways to avoid the behaviour in question or even how to specifically avoid it in your game code. I've mentioned Inform only because it's the IF-programming language I'm familiar with. I don't claim any special knowledge of amateur mistakes.

Also note that I have used the generally accepted practice (at least by me) of using the words "he" "him" and "his" in a gender-neutral fashion. I'm fully capable of wasting enough space as it is without the added weight of fussing about typing 'his or her' every time.


For some reason, amateur authors like to have games with absolutely massive numbers of points. I'm not sure whether this is because it makes the game look bigger or better or what. It strikes me as very adolescent: "My game is so awesome!!! It has ten times as many points as Zork II."

Rather than have a game with 100 points maximum, the amateur will have the number of points be, say, 10000, and every time the player does anything he receives 100 or 500 or 1000 points.

SOLUTION: If you never award < 100 points for any action, follow this algorithm:
- take your maximum score and divide it by 100.
- take your awarded points, and divide them all by 100


a) Lack of synonyms for objects mentioned as being present
b) Objects mentioned but given different 'name' properties, eg. "You can see a toolbox here", but 'tool' and 'toolbox' don't work to refer to it, only 'box'.

MINIMUM: the name used to describe the object to the player MUST work to refer to it (e.g. the toolbox above)

BETTER: all the words used to describe the object, including adjectives, should work, e.g. 'shiny red toolbox' should generate matches for 'shiny', 'red', 'tool', 'box', 'toolbox'

BEST: you should also match reasonable synonyms that you DON'T mention in the text (e.g. 'chest' 'tools'). Use a thesaurus and check for synonyms. Of course, don't overdo it if you have multiple items that are similar, e.g. a leaflet, a pamphlet, a letter and a notebook. Overloading all of these when you have several of these items can lead to parser difficulties.

> take book
Which book do you mean, the spiral notebook, the small pamphlet, or the encyclopedia?

In this case, disallowing 'book' from the notebook and the pamphlet is better.

ABOVE AND BEYOND: If you're really feeling generous, you'll make sure that words that are complicated to type in your game (e.g. Montagnolo) have commonly misspelled variants in their list of matches and maybe some short forms as well.

3. TEXTUAL TRUNCTIONS (a.k.a. hard carriage returns in displayed text)

This room is pretty
big, you cant see
any exits to north
or south but there
might be a door
east or west.

I think this error stems from working with IF-languages that don't automatically word-wrap for you. I've seen this in a lot of ports to Inform. It may also stem from a desire to avoid having lines in the source code file that run off the editor screen.

Beginners: if you want to wrap your printed text so that it appears nicely in your editor, just hit enter in the string. Inform interprets this whitespace as simply a space. Works beautifully. Let the player's interpreter worry about word-wrap—it knows how wide his window is. You don't.


You are in the bank.
There is a crazed person
here running toward you!!!
> x person
You can't see that here.

> x crazed
You can't see that here.

Oh no!!! The crazed person just
shoved it's ax in your head
now you're dead!!!!

The profusion of exclamation points in amateur writing (both IF and non-IF) is always astounding. It may stem from a desire to turn bland unoriginal text into more exciting EXCLAMATION-POINTED text. Any writing can be made more exciting with exclamation marks, can't it? (Some would argue that's reason enough to sprinkle them all over this document).

Exclamation marks tend to be overused. Use them sparingly, and don't use more than one at a time. Please!!!

Note that there should be exclamation marks sprinkled all over your Inform source code file. If they're not inside printed text, they're COMMENTS and comments are good.

5. ABERRANT ARTICLES (or Definite Article Errors)

Torcher Chamber

You can see a Lord Blackadder here.

I don't really understand how these sorts of errors can exist. Presumably the author runs through his game while developing it. If I notice this as a jarring error, why doesn't he?

(Another problem apart from the definite article error is the lack of an initial description. Even if the article is correct, the message "You can see Lord Blackadder here." smacks of laziness. See below.)

6. ORAL OFFENSES (or Abuse of the Player)

This is something that seems so adolescent and immature, and yet you see it from authors who, by several other measures, appear to be adults. An overwhelming tendency to insult the player when he does something that the author doesn't want to permit.

Why do authors do this? What goes on in their head that tells them these abusive responses will be appreciated?

Most players can tolerate mild sarcastic comments, especially if they do provide useful feedback (or are amusing):

> fire arrow
It would be difficult to do that without a bow.

But downright abuse should be out:

> cut thread
You cut the thread.

<lots of other things done in between, puzzles figured out>

cut thread
You already did that!!! PAY ATTENTION!!!

The people playing the game are your CUSTOMERS. Admittedly, you're not getting paid for this IF work most of the time, but you want it well-received and well-reviewed. Don't insult your target audience.

In the example above, if you're going to respond with more than a "But you've already cut the thread." message, at least be clever and original about it, rather than simply heaping abuse on the player:

> cut thread
You cut the thread.

> cut thread
You painstakingly retie the piece of thread back to the spool, and cut it again, gaining yourself vast amounts of satisfaction.

(note: the above makes no claim to be either clever or original, but may serve to indicate the idea).


I've seen many games with massive exposition in the introductory text explaining everything that has happened in the player character's (PC's) life to bring him to the point he is currently at as the story opens.

This is a tricky one, and is less indicative of an amateur IF author than it is just of an amateur author in general. It's very hard to get right--striking the balance between giving the player the information he needs in order to understand who he is and play the game with some sense of that, but also avoiding having things sound like "the story so far...".

There are two extremes. You can relate everything that has happened to bring the PC to this point, or you can relate nothing at all. There are some very excellent games in the latter category, but there are not very many good games in the former.

Remember, as the author of the piece, it's important that you know and understand exactly how the PC got to where he is. What you need to decide is how much of that the player needs to know.

Try to avoid the need to relate everything that has happened to the player until now.

This is bad: (based on an exposition-heavy game I have seen, but translated to Planetfall universe for example purposes):

Your big moment has finally come. After much struggle and study, you managed to win a scholarship to Stellar Patrol University. You have graduated and attained the rank of Ensign Seventh Class, and after all your hard work and study, you have been assigned to the Stellar Patrol Ship Feinstein for its voyage to a far-away planet that was recently discovered by Stellar Patrol patrols. But there was a massive accident, and the ship is going down. Your job is to escape from the ship before it explodes.

Deck Nine
This is a featureless corridor similar to every other corridor on the ship. It curves away to starboard, and a gangway leads up. To port is the entrance to one of the ship's primary escape pods. The pod bulkhead is open.


Compare that to the actual way in which Planetfall opens, which I think is a pretty good example of a game with light exposition, which handles it pretty well. Way back when, I was able to start playing Planetfall the day I got it, without having glanced at the documentation and feelies, and know exactly who I was, my position on the ship, everything. And all this in a relatively short opening paragraph:

Another routine day of drudgery aboard the Stellar Patrol Ship Feinstein. This morning's assignment for a certain lowly Ensign Seventh Class: scrubbing the filthy metal deck at the port end of Level Nine. With your Patrol-issue self-contained multi-purpose all-weather scrub-brush you shine the floor with a diligence born of the knowledge that at any moment dreaded Ensign First Class Blather, the bane of your shipboard existence, could appear. 

Deck Nine
This is a featureless corridor similar to every other corridor on the ship. It curves away to starboard, and a gangway leads up. To port is the entrance to one of the ship's primary escape pods. The pod bulkhead is closed.


And then the game makes you wait around, scrub the floor, bump into Blather, the Blow'k-bibben-Gordo ambassador, until eventually, the massive explosion rocks the ship, and you know the imperative is on you to escape.

What does the Planetfall opening tell you? It tells you everything you need to know in order to play and enjoy the game, and, significantly VERY LITTLE MORE. The information about Blather could arguably not be needed, but it's pulled in again at the end of the game to tie everything together neatly--those two parts of the story bookend the game beautifully.

A useful exercise is to take every sentence in your opening and figure out what it tells the player about the game, and his role in it. Evaluate each sentence's effectiveness and decide whether it communicates meaningful information to the player.

Evaluate your opening against the four W's (Who, What, Where and Why. There's also When, but the immediacy of IF makes it less of an issue for most works). How well are they answered by the time you get to the end of the opening? As an example, let's try that with Planetfall and see how it stacks up.

1) Who? You are a lowly Ensign Seventh Class.
2) What? You have been assigned to scrub the deck.
3) Where? You're aboard the Feinstein, a Stellar Patrol ship.
4) Why? You're scrubbing the floor because you're following orders.

All the questions are answered, and with a brief paragraph, the player knows a lot about who he is and what his immediate goals are.

It's a good idea to check the opening text of many different IF games, of many varied styles, and see how effectively they communicate the opening situation to you, without overloading you with weighty exposition.

Trinity is another very good example of a concise opening that conveys a lot of information.

All this is not to say that initial exposition is bad—but if you need a generous infodump at the beginning of your game in order for the players to play it effectively, you may want to rethink how the game starts. Or if the information can be parceled out in an interactive fashion, that's even better.

The main thing to avoid here is the life story of the character dumped out in a blur of poorly worded "Then...", "then...", "and then..." type sentences. The title of this section is Encumbering Exposition and exposition can be fine if done effectively so it doesn't encumber the story.


A basic command of English (or whatever language you're writing in) is essential. The IF community is full of well-read players and authors. If your game suffers from poor language and grammar, it will definitely not rise to the top of the pile. There is so much IF that's very well-written that if your game isn't, I don't think it's overreacting to say it's doomed to insignificance. The odd typo is tolerated but consistent poor grammar, spelling and diction will annoy most of your players. As for the rest of your players, they will be members of the militant wing of the (to spoof Planetfall) "Speller Patrol" and will immolate you in the fires of scorn and derision.

Leniency (or burn cream) is given to those whose first language is not the language in which they're writing, but in general: if you lack confidence in your command of the chosen language, ask people to review it for writing style, spelling, grammar, etc.

Running your game through a spellchecker is difficult, because it's source code, right? Well, turn on the scripting facility of your interpreter, run through your game, performing all the actions to win the game, and trying to examine all the objects. Then take the transcript generated, and run it through your spellchecker. This will ensure at least that anyone who runs through most of the standard things in your game won't encounter any glaring errors.

Remember though that spellcheckers never catch homonym misuse, e.g. it won't flag:

You can see that their is a piece of paper here.

Grammar checkers might catch that, but they make enough other mistakes that they should probably be avoided. Though there are a few works of IF I've seen which are so bad already that running through the grammar checker would definitely have been an improvement.

On another grammar-related note, specific to a lot of Inform games: if you're going to use the -ize endings of words like "realize", then please define DIALECT_US in your code, so that we don't have incongruities like:

You struggle to read the piece of paper, but you don't recognize the language used.

> study paper
That's not a verb I recognise.


Not everybody shares this opinion, but I believe that implementing anything other than the default response for 'examine me' smacks of a lazy or amateur IF-writer, as well as a poorly-developed PC for the story.

Think about who your PC is. Is he male or female? Tall or short? Ugly or attractive? How is he dressed? How is the response you print from 'examine me' affected by the PC's opinion of himself?

Another question to consider—how does the appearance of the player change during the course of the story? Do events happen that should cause the response to 'examine me' to change?

One additional point: much as it's bad form to insult the player, it's very cliché to have all the NPCs in the game treat the PC like dirt, or refer to him as ugly, smelly, dirty, whatever. Unrealistic too. In the real world, there are lots of helpful people, so if the PC is in a generally nonhostile environment, your NPCs should at least be civil towards him.


Many games seem to operate from the idea that giving a location a name is sufficient for fully describing it. It's not.

Yes, if you say "You're in a bank." most players will be able to imagine what a bank looks like. But the point is: we want to know what this bank looks like, how you the author have envisaged it.

Also frustrating are room descriptions that all begin with "You are in..." and the idea of variety is to start a room with the description "You are standing in...".

One of the worst I've seen recently (paraphrased to protect the guilty):

You look around. The only way out of here appears to be North as there is a wall to the south. East and West do jack-all for you.

Another one:

You check your surroundings. You can go east or west. Southward appears to be blocked.

> north
Didn't you read my instructions? You CAN'T go south.

The key problem with the last one is the use of "appears to be blocked" which implied to me that there was a barrier there that could be circumvented. Not the case. You just couldn't go south. No mention of what the apparent blockage was, of course.

Be imaginative when describing your locations. If you have trouble knowing how to describe things, observe the world around you. Look at pictures that resemble the locations in your games. Try to describe them to someone else, or have someone else describe them to you, and see how much of a picture you receive based on just the description.

Bear in mind though that location descriptions do not need to be long. Vivid and memorable is good, but functional is important too.

Beyond Zork is an excellent example of terse location descriptions, though of course, it benefits in that the automap mostly removes the need to clutter the description with exits.

11. ACTION ADVANCEMENT (via Location Descriptions)

This is another one I've seen quite a bit. Here's a quick example to explain. We've got your average run-of-the-mill IF game. We're standing beside a car. There's only one way to get through the second-story window above, and that's by standing on the hood of the car when it explodes. So the amateur writes the "Second Floor" location of the house like so:

Second Floor
The car has exploded, and you are in the second story of the house where you were blown by the exploding car.


An easy rule would be: NEVER put plot action into the room descriptions. It doesn't matter if the given plot action is the ONLY way the player could EVER get into the location; do you want the player to see it every time they say 'LOOK' ?

What if, 37 room locations later, you decide that you do want the player to be allowed back into that location? So you put a link from the hallway back into the second story room. Guess what? If you don't remember that location which you wrote two months ago has a plot-centric description, you'll be in trouble.

For the more sophisticated, you can put some level of plot action into your room descriptions through the judicious use of logic.

For example, in Inform, you can use the "visited" attribute to figure out if this is the first time a room has been entered, e.g.:

Room    Guild_Hall_Foyer "Guild Hall Foyer"
  with  description [;
          print "The opulent splendour of the guild
          hall foyer is almost overwhelming. Huge
          marble columns rise up to hold the vaulted
          ceiling in place, and the marble walls
          and floor seem to glow and shimmer with a
          queer internal light.^";
          if (location hasnt visited)
            "^A bored-looking guard glances at you
             as you enter. ~Welcome to the Vechlee
             Guild Hall,~ he booms in stentorian
          "^The guard nods at you. ~Welcome back.~";


I don't mind seeing "You can see a <whatever> here" a few times in a game.

I also don't mind seeing that for things that the player has dropped in a room. It's nicer if everything has a describe routine, but that's a lot of work.

As well, if you have a describe routine for everything, and a player drops everything he has in a room, it makes for a very lengthy pile of text when he types 'LOOK'.

What I do mind seeing is objects that are still in their initial location being described as merely:
"You can see a <whatever> here."

It's not really reasonable that all these things are just lying around to begin with, but throwing that aside, let's see some originality in describing them. Have them sitting on the table, discarded on the floor, lined up in a row, anything.

It should also be self-evident that you should not mention items that players can pick up in the room description (unless of course you're also testing to see if they're still there and avoiding that printing if so).

Along with this idea, let's introduce some sense into the locations where you find things. Far too many games seem to get all the puzzles created and then the objects needed to solve those puzzles strewn about the map at random. Why is there a wrench in the kitchen? Why is there a flask of acid in the bedroom? Invent reasons for why things are where they are. Put a leaky faucet in the kitchen, explaining the wrench. Or put things in places that make sense. A wrench in the toolshop, acid in the laboratory.

The cardinal sin in initial descriptions is doing this for NPCs. How boring is it if everytime Jack is in the room and you issue a Look, you get: "You can see Jack here."

It doesn't take much to change the game to make it look like so much more than just the standard library with some rooms tacked on. Even a simple:

Jack is lounging against the sofa here, looking bored.

does wonders for adding realism to the game.

Preferred is doing a switched random(x) statement of some kind, so Jack does slightly different things every time the player issues Look.


Lots of games break their mimesis through deliberate and forced injection of the author's voice. One example I saw recently makes tantalising references to:

... but what exactly is it for? Only the game author knows!!!

upon examining an object.

Or, worse yet, upon trying to attack an NPC:

If you keep trying to do stupid things like this, I will find you and kill you personally.

This was not said by the NPC, but by the game itself. For me, nothing pulls me right out of the environment of a game worse than this.

There are also incongruities of technology and culture, say where a dungeon contains a copy of a modern magazine, or a modern naval vessel has, for some inexplicable reason, a 150' tall wooden mast.

There may be artistic reasons for doing this sort of thing, say in a game involving time travel or some sort of really warped technological world, or a certain freedom in a laissez-faire world of fantasy like the Zork or Enchanter series.

However, if you're trying to write a game with a consistent setting, make sure you understand the level of technology appropriate to the setting.


Trapping actions in order to disallow them and provide the "correct" syntax. This one really annoys me. When I type a sequence of commands in an IF-game, I can understand if they don't have the right effect. But if I type:

You can see a rug here.

> sit on rug
Psst, try STAND ON RUG instead


You can see a cannon here.

> put cannonball in cannon

I get extremely irritated knowing that the author anticipated my typing the "wrong" phrase, obviously knows what I wanted to do (because he suggests the proper phrase), but doesn't bother to do the right thing for me.

If you're going to bother to catch the alternate way of phrasing the action, and tell me the correct one, why not just have the "incorrect" one work, and keep quiet about it?


NPCs that do nothing unless the magic words are said to them e.g.:

You are in the queens torcher
chamber. Baldrick is running
around and screaming let me
out let me out!!! he's in prison
for meeting the queen the
other day then he didnt bow to
her. So she told him to and
he did but not low enough!!!

You can see a Lord Blackadder here.

> ask blackadder about baldrick
There is no reply.

> ask blackadder about queen
There is no reply.

> blackadder, tell me about baldrick
There is no reply.

> talk to blackadder
That Baldrick is going crazy!!! We
have to find a way to get out of here
and YOU have to do it."

At the minimum, give your NPCs a default response to Ask and Tell. Personally, I don't like the "I don't know anything about that." type of response. That clearly says to me, as a player, "Here's a hole in the game." I prefer something like "You're busy worrying about that when we've got to escape this prison cell?" Something that works in the context of the game, and the context of the NPC, and why they're there with the player.

Try to predict the reasonable topics of conversation that the player might initiate with the NPC, and program responses in for them. Think about the objects the player is likely to have when they meet the NPC, and have the NPC respond meaningfully to the more important ones. And create a nice default response for being shown the rest of them:

"So you've got a fox who's so cunning he's just been appointed Professor Cunning at Oxford University," sighs Lord Blackadder. "Too bad it doesn't help us get out of here. Actually, now that I think about it, it probably would."

* * *
- thanks to the following for their suggestions to the first draft:
  - Jim Aikin
  - Cedric Knight
  - Mike Roberts
  - Andrew Plotkin

Thursday, March 21, 2013

MAME: At long last, a cabinet update

So I ended up doing a bunch of work on the arcade cabinet last summer, and have *finally* gotten around to writing a post and uploading the photos. First thing was the painting. I went with a solid black overall, combined primer and paint.

Next up were the speakers. I took a set of old Altec Lansing desktop speakers I had. I popped the grilles off, taped over the Altec symbol and spray-painted the grilles and frames black. I mounted the actual speakers on the inside of the cutouts, screwing them into the MDF. The frames and grilles mounted on the outside, giving a nice finished look to the speaker arrangement. The main speaker/subwoofer sits in the bottom of the cabinet.

Next up was the marquee. I used Richard Kirk's excellent MAME marquee and got it printed at Staples. They were able to print it exactly the size I wanted and laminate it, all for about $7. Here it is installed. Not the best picture, as I was trying to show it all lit up.

Then the coin door. I'm still using the Happ Controls (now Suzo-Happ) over-under mini-door system for the coin door and it went it without a hitch.

Finally, I installed some custom-sized side-art from Game On Grafix. That was a bit pricey, but the overall effect is more than worth it. I don't have the skills to stencil or paint on a nice logo, so this is the easiest way. It adhered quite easily, and is still sticking firmly 7 months later.
Getting the TV in was a bit of a struggle, as this cabinet was planned around the 27" Sony, which is long gone. I got the TV all in there and then turned it on and realized it was set to cable input, not the video-in, and of course the remote sensor and buttons were now wedged up against the inside of the cabinet and the TV anchored in place. Fortunately, the remote worked to flip it to the video input.

One final look at the front:

So the whole thing is largely finished now, but I haven't gotten around to uploading the photos yet. The sensing power bar works well--you open the front, flip the PC on, and everything else in the cabinet comes to life--TV, lights, speakers, coin door lights...
About the only thing left to make it fully complete is a bezel around the TV. Coming soon...

Tuesday, July 27, 2010

Thoughts on Kodu session with the kids

Well, the kids loved playing around with Kodu, especially Nicholas (7) and Alexandre (6).

The interface left a little to be desired--it seems far from intuitive for a kid and maneuvering between items was a bit difficult. They've also abstracted the file saving and loading to such an extent that it's sometimes difficult to tell if you're saving over the project you started with, saving in a new place, continuing your last session, etc.

The kids did have a lot of fun with it though, and were able to take the initial game and play around with it quite a bit. I was able to leave them playing around with it on their own for a while, and when I came back, they had Kodu making sounds when certain keys were hit, saying speech bubbles when other keys were hit, and jumping when you hit the spacebar.

One caveat, it takes more horsepower to run than my Eee PC can reliably deliver. The first "Shooting Fish" game worked okay, but once we got into some of the later ones with varying terrain, the machine tanks and the games become so choppy as to be unplayable.

All in all though, a big success. It's nice to see the kids using the computer and not just vegging out playing a game. This is a much more active use of computer time, and they really took to being able to see their results immediately.

Wednesday, April 07, 2010

New blog: Star Wars IT Tech Journal

I've started a new blog over at:

It's a series of tongue-in-cheek journal entries from the perspective of an IT tech working for the Techno Union and then the Empire.

It covers the years 35 BBY to 4 ABY and should comprise about 50 posts or so by the time it's finished.

I'll be adding new entries every couple of days, so check it out if you're a Starwars fan.

Wednesday, September 23, 2009

A brief review of Star Trek

I never did post a followup saying what I thought of the new Star Trek film I was all keyed up to see, and I thought, with the DVD release imminent, now was a good time.

In short: it was awesome. It was everything I expected, and more. I'm not a Trekkie (or Trekker if you prefer) by any stretch of the imagination, but I quite enjoyed ST:TNG in its day, and do own them all on DVD. I also watched a fair bit of the original series Saturday mornings on CBC when I was growing up.

On to the film itself...

The opening scene was the perfect birth scene for Kirk, born in the chaotic, adrenaline-filled rush of a space battle. It perfectly encapsulates everything the world has come to know and love about James T. Kirk. It also explains the adrenaline-junkie aspects of Chris Pine's portrayal, which I thought was a nice touch.

From that opening scene, the film never lets up, going from strength to strength. Seeing everyone as young cadets was great--we get the sense of them attending Starfleet without having to sit through any clumsy exposition. We get a nice sense of Kirk as a ladies man as well, and Kirk romancing a green lady was just icing on the cake (for fans of both the original series and fans of green ladies).

I will definitely be in line for the sequel if it goes ahead. There was talk about that before this first film was released, but I haven't heard much more.

A couple of minor quibbles. I know Anton Yelchin while born in Russia, doesn't speak with a Russian accent, but I think he should have gone for a more natural-sounding Russian-person-speaking-English accent than trying so hard for comedy. Chekov's accent was only rarely played for laughs in the original series. I also thought that while John Cho was good, he lacked the feeling of calm capability that George Takei projected as Sulu. That being said, all the characters were fresh-faced cadets in this film, so perhaps the gravitas is something we'll have the pleasure of seeing develop if more films are made.

Oh, and I only thought once about Sylar while watching Zachary Quinto do his stuff as Spock, which is a testament to how good of an actor Quinto is, and how much he made the role his, while still keeping faith with Leonard Nimoy's portrayal.

Friday, May 08, 2009

Welcome to Rivendell, Mr Anderson

I'm all keyed up to see the new Star Trek film, but I've been pondering the issues of casting actors who play an iconic role for which they're well known.

The subject of this post reflects what runs through my mind whenever I watch The Fellowship of the Ring and see Frodo waking up in Rivendell after the Flight to the Ford. I know that Elrond says "Welcome to Rivendell, Frodo Baggins", but because of Hugo Weaving's iconic role as Agent Smith in The Matrix (and its two sequels, but let's not mention those), the subject line above is what I hear instead. Oddly, I don't get that effect with V for Vendetta, possibly because Weaving's face is obscured and he has less of a measured and deliberate delivery than he does as both Agent Smith and Elrond.

Anyway, because I've only seen Zachary Quinto as Sylar in Heroes, whenever I see the trailer for the new Star Trek movie, I keep expecting Spock to slice open someone's head with his finger. As cool as that might be, hardly in keeping with flavour of the Star Trek universe. Equally, while I don't believe that Karl Urban as Bones is going to jump on a steed of Rohan and go galloping down the corridors looking for Gríma Wormtongue, that doesn't stop me from half-expecting it to happen.

Where I'm going with all this is that sad as I was to see Christopher Eccleston leave Doctor Who and gutted as I am to see David Tennant do the same, I'm sure they're right. Sigh.

Wednesday, April 01, 2009

Risorgimento Represso & sequel going commercial!

* End of day update * Yes, this was an April Fool's joke.

Now that all the negotiations and contracts are in place, I can finally announce this.

Risorgimento Represso and its unreleased sequel are going commercial! Activision are releasing a "Lost Treasures of Inform" compilation to celebrate Zork turning "5 binary years old", i.e. 2^5, or 32 years old. The packaging looks just like the Lost Treasures of Infocom, but with the -com crossed out and "rm" written in.

The idea is to package all the classic Infocom games along with some of the best that the community has come out with over the years. This was all planned for Zork's 30th birthday, but didn't quite come off in time. Apparently, there's still quite a few people at Activision who love the Infocom stuff, and are frequent lurkers in r*if-land. They've had a new compilation planned/in the works for quite some time, but contacting all the different community IF authors and getting rights has taken a while, which is why they've been so silent on the idea of re-releasing any of the Infocom games.

The per-copy royalty isn't huge, but just the privilege of having two of my games (if I can finish Risorg's sequel in time!) released on the same CD as some Infocom classics, as well as the best of the r*if community is just awesome.

Based on sales of previous compilations, Activision expects to sell about 50000 copies... not huge, but they don't have many expenses apart from packaging. Royalties are paid out at $0.05 per game, so with two games on there, I should do all right out of it.

I don't have the full list of the other titles that will be on there, but I know works by noted community people like Emily Short, Andrew Plotkin, Quintin Stone, Adam Cadre, Adam Thornton will be present, along with a host of other names you'll recognize.

Anyway, sorry to drone on so long tooting my own horn, but now that I can finally share this info, I wanted to be the first to break it.

Monday, March 30, 2009

MAME cabinet non-update

A brief update on the MAME cabinet is probably in order after all these years.

Short story--it remains stalled pending basement development. I put it on hold a number of years ago until I had more of the basement finished.

Actually, we now have our combined media room + playroom area finished in the basement, and after I install the baseboard trim in there, finishing up the MAME cabinet is probably next on the agenda.

It's a good time to tackle that--with the new TV downstairs, that frees up the 27" Toshiba that I bought for the cabinet to actually be used for the cabinet.

All that's really left is installing the TV, the fans, painting it, and then installing the marquee and display plastic (already cut and fitted). Oh, I also still have the coin door to slap in there. So there's not really a lot of work to do, and now that I have the media room done, there's a corner to stick the cabinet in all ready and waiting.

Pictures will, of course, follow once this stage is reached.

Friday, January 16, 2009

A neat Ask/Tell change

* EDIT * In order to alleviate some reading confusion, the below post is in regards to Risorg2, a sequel to my first game of Interactive Fiction, Risorgimento Represso. Specifically, this post deals with some methods I came up with during development for simplifying Ask/Tell conversation topics for characters within the game.

I struggled with my original Risorg with the idea of being able to ask characters about everything in the game. I go for the complete experience, and it always seems wrong to me when the guy in the shop north of the town square either claims to know nothing about objects in the town square or has some equally silly response of "There's not much I can tell you," or "I don't think you need to worry about it."

Real people don't act like that. Ask a merchant who's got a shop in the market square what he thinks of the market square and darn right he'll have an opinion.

Of course, with Risorg1, trying to do this resulted in LOTS of quoted strings in characters 'Ask' routines, even to the extent of running into Inform limits. I compromised for game objects by having NPC's Ask routines run WordInProperty on the common game objects I wanted to ask them about. This worked okay, but with collisions from time to time, and still meant a lot of coding. There were also holes, as I wouldn't put a WordInProperty for every item into every character's Ask routine.

In between Risorg1 and Risorg2 development, I played around a lot with ways of attaching topic information to the objects themselves. After a fair bit of work, this is working *really* nicely. For objects in scope & held, we now get nice things like this:

>ask old crone about threadbare
Which do you mean, the threadbare red carpet or the threadbare woollen socks?

"Definitely not interested in buying," says the old crone. "I've got a drawerful of my own."

So we get the regular parser disambiguation for items in scope, which is nice. This ends up calling an item.information() routine within the object, and the parameter passed is the NPC doing the asking.

So each object that I've got of class "Askable" just lists all the NPCs and their response to the item. It makes it really easy to do it this way. Previously, with each NPC, you had to think of all the items in the game and code responses. Now, with each item, I just think of all the NPCs (a much more manageable number) and make sure the ones I want are accounted for in this object.

The other nice part is if you ask about a game object that isn't in scope, WordInProperty is then used to try to find a game object being asked about. If a game object is found, the same information routine is run.

So in the socks/carpet example above... if the carpet had been left outside the shop, asking about 'threadbare' would have resulted in the socks getting matched. Asking about 'threadbare carpet' would result in the carpet getting matched, even though it's not there. A simple TestScope in the carpet's information routine allows me to craft different responses from the shopkeeper if the carpet is not in scope.

Finally, if no match is provided by any object in the game, it falls through to an AskGeneral action that matches quoted words within the NPC, in the same old way.

All in all, it's a pretty neat and tidy solution and lends real verisimilitude to the game, being able to ask NPCs about any object in the game.

Of course, all this being said, I'll release the game and someone will promptly find the one object that they can't ask person X about.

Tuesday, October 28, 2008

Megaupdate (the kitchen sink post)

So what exactly has been going on around here and what's with the general abandoning of the blog?

Well, as I'm largely writing this for my own diversionary amusement, it's fallen by the wayside in the wake of more important things. I still want to write here, I'm just having problems finding the time--it also turns out that small children are capable of consuming limitless amounts of spare time, though admittedly delivering the goods in the emotional rewards department.

The MAME cabinet work stalled out a while ago--the intent is still to finish it. I've got the back door installed and on, the TV shelf is there, holes are cut for fans, coin door, etc. The light fixture is installed and working, though the lamp is back out pending final assembly.

I also cut the plastic for the front and for the marquee area. For mounting the marquee, I've got the marquee retainer as mentioned previously. For the front glass, I bought some quarter round moulding with 90-degree edges and installed it with one flat edge attached to the cabinet, and the other flat edge facing the front of the cabinet to make a perfect resting place for the glass. I'll probably caulk the left and right edges to reduce noise and vibration and then maybe use some more marquee retainer at the top and bottom.

There are a few reasons for the stall-out though--the next step is going to be lifting the TV up there and adding supports in the appropriate places. However, while I have a spare, heavy 27" Sony television that I could use there, it's not the ultimate TV I want in the cabinet. That would be the (much lighter) 27" Toshiba I purchased a few years ago, currently in use in the living room, the only area of the house suitable for TV watching right now. But now that the finishing of our basement rec room is likely to happen before the cabinet gets finished, I'm holding off fitting the Sony into the cabinet, in anticipation of getting a new TV in the rec room and then upgrading the MAME cabinet to the Toshiba.

So yes, the basement finishing is the other part of this equation. We decided to finish the main rec room area rather than tackling the whole basement at once. That's one giant 16x30 area where the eastern 16x11 will be designated the kids' playroom, the western 16x11 the TV area, with a handy 16x8 DMZ in the middle. I'm debating some sort of invisible barrier that will keep children from wandering over into and otherwise messing with the TV area and the suppositional new TV. I'll post pics as soon as the barrier is installed so you can all look at it and echo R2-D2--oops, I mean Fidgit from Time Bandits by saying, "Oh, so that's what an invisible barrier looks like." Sorry for the mistake. Fidgit is only played by R2-D2. Apparently, it used to take several hours for R2-D2 to get into his Fidgit costume before filming, and of course, all R2's dialogue was redubbed...

The DMZ is also going to be the location of the roleplaying table. Not precisely KoDT though--although the table in question did indeed live a former life as a dinner table, we're playing pulp Rolemaster, so everyone's an investigator, not a knight.

I'm using a mix of homebrew adventures, CoC adventures and even some Shadow World modules for any sequences involving translation to alternate dimensions.

Finally, in order not to give the lie to the title of the post, I'll just have to mention the shortsighted construction of the kitchen sink. Firstly, the left hand sink drain comes down and joins the drain for the right hand side, but it does so at a nearly horizontal level. After several years of washing in the left sink and stacking for drying in the right sink, this horizontal part of the drain was clogged with all manner of really disgusting things. One stomach-churning cleaning later, and we now wash in the right hand sink, with its vertical drain, and dry in the left hand sink. The other daft thing about this sink is that the trap is placed so low that there is zero clearance from the bottom of the trap to the floor of the cupboard, meaning that the U-bend can't even easily be opened let alone easily drained/explored/etc with any kind of bucket underneath it. Frustrating.

Monday, June 02, 2008


So I went to watch the North American premiere of the score to The Fellowship of the Ring (non-extended), with the Winnipeg Symphony Orchestra. What happened here was the film was played on a high-def screen at the MTS Centre while the score was played live by the WSO.

It was absolutely incredible. The music was superb and seeing the film again with a large crowd of Tolkien fans reminded me of how amazing it was to see it in the theatre as a communal experience. The dynamic range was awesome, and blew away listening to it at home.

It was also really neat, as a lifelong Tolkien fan, to be sitting there in a packed concert hall (well, arena) and listening to a choir sing in Elvish.

I also wasn't the only one impressed with the whole... mission... quest.... thing.

I'm now all a-gog waiting for TTT and ROTK to be given the same treatment.

Monday, November 13, 2006

The Spirit of Radio

So Wil Wheaton has a piece up about the decline of radio and I couldn't help thinking of Rush's incredible song The Spirit of Radio, dedicated to Toronto's (okay, Brampton's) CFNY radio station, which wasn't afraid to play alternative music and music that wasn't radio-friendly.

When you consider that The Spirit of Radio was written in 1980, it really puts in perspective how long the recording industry has been dictating exactly what becomes popular and what doesn't. As Rush say in the song, "the words of the profits are written on the studio wall."

There's another aspect to the idea too, of course. It's not just about the RIAA and its cronies choosing what will become popular, but also forcing artists to change their work. The power they must wield is somewhat frightening--you want us to release your record? Well, then change these lyrics here, cut out this part, sell your soul to get your record cut.

Rush again, who say it better than I ever could:
But glittering prizes
And endless compromises
Shatter the illusion
Of integrity

I really believe that digital recording and distribution, once it really starts to take off, will revitalize the music industry and get us back to the basics--artists getting their music heard, and getting rewarded fairly for that.

And leaving the fat cats out of the loop.

Wednesday, September 06, 2006

A font of wisdom...

My laptop is a Dell (and though a candidate for it, mercifully free of the battery problem). Actually, I've had that battery problem explained in painstaking detail, as I designed a LiIon pack into a product we're developing, so people at work were a little concerned lest we fall victim to the same problem as Dell--so I've been brushing up, with our battery cell vendor, on exactly what happened at Sony and reasons why it shouldn't concern us.

In any case, this Dell machine I've got has some not-too-shabby Radeon X1400 graphics built-in (with 128MB of dedicated video memory, thank-you-very-much), and a screen resolution of 1280x800. I'm using ATI's custom driver for X (bad free software supporter) and Mandriva looks pretty good.

However, I didn't realize what I was missing until I read this piece on the Optimal use of fonts on Linux, and installed a version of Freetype that included a proper Truetype byte code interpreter.

The results are quite astounding, and I've fallen in love with doing my writing on the laptop all over again. Sigh.

Monday, August 21, 2006

If the shoe fits...

... then you'll wear them a lot, and they'll eventually start falling off your feet.

Just before I got married, I bought a new pair of shoes. The dress shoes I had fit, but tended to give me sore feet after only a couple of hours--they had very poor arch support, and I've got freakishly high arches. As I was going to be wearing these from morning to night on the day of my wedding, I wanted something comfortable.

On the advice of my best man, I picked up some Rockports, as he declared them to be the most comfortable shoes he'd ever owned. Astoundingly, right next to Scerbo Formals at St. Vital Shopping Centre, where we had gone to get fitted for tuxedos, was West Point Shoes, which sold Rockports.

They weren't cheap: $220, at a time when I was trying to save money for the wedding, and the anticipated expensive bliss of marriage. The soles were also a bit overkill for dress shoes, as these were sturdy, waterproof outdoor shoes, but I figured the state of my soles wasn't likely to interest anyone at the church (duck).

So fast-forward through 4.5 years of said married bliss, and I have worn my Rockports every single day. I have not cared for them particularly well, with only a few scattered polishings here and there, but they've stood up admirably to the test of time. And they're comfortable too---in fact, I've never had a more comfortable pair of shoes.

But they were finally breaking down. The stitching on the heel was starting to come loose, there were cracks in the leather at the balls of the feet.

I loved my old Rockports. I haven't been wearing them long (2.5 hours now), but I think I love my new Rockports too.

And no, I'm not affiliated with Rockport in any way. Except as a rabidly loyal customer, of course.