I have a long and somewhat contentious relationship with the Inform language for programming text adventure games. I’ve written a couple of games using it. I’ve written a book-length tutorial about how to use it. But I don’t actually like it much. For a variety of reasons, I much prefer the TADS 3 language (with the adv3Lite library).
However, presentation matters. The presentation layer is what your user/player/reader will encounter. And TADS doesn’t have a good suite of tools for making a nice modern presentation.
Text adventures (interactive fiction, if you prefer the five-dollar term) started out in the late 1970s. In those days, computer graphics didn’t exist. Computer displays used text, and text, and more text. Those days are long gone. Today, everybody uses Web browsers, which universally include not just text but colorful images, nicely designed layouts, pop-up messages, and not infrequently audio and video.
This fact raises several issues for the indie game author. First and foremost, what system will you use to develop your game?
Inform 10 was released a few months ago. If you’re clever, you can find and download a set of extensions called Vorple, with which you can add all sorts of functionality to your text game — pop-up tooltips, fancy text formatting, and even behind-the-scenes javascript code. This morning I gritted my teeth and started testing Vorple, and by golly it works. So Inform with Vorple is probably going to be what I’ll use for my next game.
I’ve been thinking I might like to collaborate with another game author. I did a collaboration some years ago (in TADS) with Eric Eve. It’s called “Mrs. Pepper’s Nasty Secret.” It’s a fun little game. But there are not a lot of TADS authors. Inform is 50 or 100 times more popular. If I can find a suitable collaborator at all, it will probably be someone in the Inform camp.
Another authoring system, Twine, will also do spiffy-looking stories that anyone can read in a browser. But Twine is a very different system. There’s no parser in a Twine story, and no world model. In your encounter with a Twine story, you’ll be clicking on links. Clicking is the only significant action that’s possible. As a consequence, if a link doesn’t display on the page, the action doesn’t exist. There’s no mystery.
What I like about parser games (as created in both Inform and TADS) is that the player has to think about what actions to take. Meaningful actions are quite often hidden until the player discovers what to do. If I want to write a story, I’ll write conventional fiction, not link-based hypertext fiction.
As I contemplate writing a new game, maybe with a collaborator or maybe not, it occurred to me that it would be useful to list the types of puzzles that one might find. I went into some detail about puzzle design in my Inform 7 Handbook, but neglected certain wrinkles. So I’ll sign off today with a quick laundry list, which you might find useful if you’re thinking of writing a parser game. Here, off the top of my head, are 20 types of puzzles:
1. Combining two apparently useless objects to make a functional object. A key and a lock would be a simple example, but there could be many others — tying a hook to a string and then winding the string onto the spool of a fishing rod, for example. A vending machine that requires coins is in this category.
2. Looking under and behind room objects. Also other types of searching.
3. Pushing, pulling, and rotating objects, which may or may not be obviously pushable, pullable, or turnable.
4. Giving something to an NPC (that’s “non-player character,” for you neophytes), which causes the NPC to change mood or do something. “Do something” could include leaving or giving the player an object. Changing mood could be required in order to get the NPC to do something (when ordered) or to reply to questions. Animals qualify as NPCs.
5. The evasive NPC (or even a wandering inanimate object, conceivably) that has to be corraled.
6. Gaining information from an NPC by asking questions or directing the conversation.
7. Assorted obstacles to travel (other than locked doors) — rooms that are dark, airless, hot, or cold, rooms that contain spiders or crocodiles, rooms where you drop things and can’t pick them up, passages blocked by rubble or holes in the flooring, bridges that are too fragile to be crossed while you’re carrying heavy things. Requiring a vehicle would be in this category, and of course operating the vehicle or rendering it operable would be a separate puzzle.
8. Transforming an object into something else — a seed into a plant, a floppy bunch of rubber into an inflated raft, etc.
9. Confusing or self-altering map design, including mazes. Non-obvious exits, including secret doors.
10. Using common objects in unusual or unexpected ways. Maybe that fishing pole with a hook that you just built is used not for fishing but for getting an important piece of cloth down from a high shelf.
11. Getting objects into a different and more useful state. Switching on a machine or winding up a toy doll, for instance.
12. Doing something in one room, perhaps something fairly simple, that causes a change in a different room.
13. Putting objects in odd or difficult-to-reach places. After inflating a balloon with helium, for instance, you can let go of it and it will rise to the ceiling, after which….
14. Player exhaustion, hunger, or illness. Probably not a good type of puzzle, but possible if it’s handled in a fresh and interesting way and doesn’t become repetitive.
15. Needing to wait for several turns until something happens. Again, not a great type of puzzle, unless there is evidently a reason for it within the story.
16. Things whose description deliberately (but not unfairly) obscures their functionality.
17. Fire, water, ropes, guns, and chemicals. Difficult to include, but could be useful in several of the above categories.
18. Riddles and ciphers. Combination locks are in this category. Cryptic clues. Machines whose operation requires manipulating controls in a way that’s not obvious. Information sources in which you have to know how to find the right page.
19. Manipulation difficulties: objects that are too heavy to lift, too hot, too slippery, or difficult to handle for some other reason.
20. Perception difficulties. The player needs to be wearing glasses, a background noise is so loud you can’t tell what an NPC is saying, or your fingers are too numb to operate the delicate machinery.