As a programmer, one of the things that comes with the job description is knowing that some of the best things you will ever create may never see the light of day.
When the core development of Rachel’s Walk began, the “engine” that you use to navigate through and interact with the world was based on the traditional interactive fiction games of Infocom. Even though it had the added bonus of a graphical representation of the area you were in (we call it a “room”, even though it might not necessarily have four walls), the only means of interaction was a text box where the user would type exactly what he wanted to do.
This might sound like a very simple interface, but behind the scenes that can’t be farther from the truth. Rather than use an existing text parse (such as the “Z” interpreter pioneered by Infocom), I decided to write my own. I wound up with a very intricate text interpreter that was able to chop up a sentence in to parts of speech and determine what exactly you were trying to do. This included a word tree, so that multiple versions of the same command (“get” is the same as “take”, “pick up”, “grab”, “snatch”, “acquire”, “appropriate”, etc…) are treated the same way. This word tree even applied to items: it could be a “lamp”, or a “lantern”, or a “light”, or a “light source”, etc… You get the idea.
I spent weeks writing and perfecting this system, and am to this day still proud of it. It was one of the most remarkable things I’d ever created – from scratch – and everyone we showed it to was impressed.
But then we realized something… Who’s actually going to USE it?
I’m from a gaming generation that’s outdated by twenty years. Whereas a game like this might seem natural to me, the modern day “gamer” – who might not have been born when Infocom was around – wouldn’t know what to do with it. Think about this: consider every game that came out in the last ten or fifteen years… In how many of those games is the principle means of interaction typing text? I honestly couldn’t think of a single one in the last decade.
So that beautiful engine of mine was shelved.
In keeping with the traditions on which this game is based, we decided to use another “old school” game engine as a point of reference: LucasArts‘ SCUMM engine, an engine that drove some of the best games in the genre: the original Monkey Island trilogy, two Indiana Jones games, Maniac Mansion, Sam & Max Hit the Road and many more.
Comparatively speaking, designing this engine was absurdly easy. We now had only nine distinct on screen commands (give, open, close, pick up, talk to, look at, use, push, pull), mostly the same commands that are found in the LucasArts games mentioned above, and in thinking about it they had the right idea: you really don’t need more than that for a game of this nature.
Furthermore, unlike the SCUMM engine, you don’t actually see yourself in the world: it’s a first person view. There’s no way to actually move to another location in the same fashion as the original SCUMM engine (click and the character moves there). Therefore we had to use a compass rose as a means of moving from location to location.
Suddenly the learning curve for the interface is much more acceptable: click on a verb, click on an object (be it in the inventory or in the on screen view of the area) and done. We don’t have to worry about how many ways one can say “lamp” or “book”. We don’t have to worry if you wanted to “look AT” something or “look UNDER” it. The engine went from several thousand lines of code to a few hundred.
Unfortunately, we can no longer respond to someone typing “xyzzy”… You can’t win them all, I guess.
