{"id":261,"date":"2014-09-03T23:17:30","date_gmt":"2014-09-03T23:17:30","guid":{"rendered":"http:\/\/mjdarby.net\/blog\/?p=261"},"modified":"2014-09-03T23:29:28","modified_gmt":"2014-09-03T23:29:28","slug":"interactive-fiction","status":"publish","type":"post","link":"http:\/\/mjdarby.net\/blog\/2014\/09\/03\/interactive-fiction\/","title":{"rendered":"Interactive Fiction"},"content":{"rendered":"<p><code>&gt;look<\/p>\n<p>Castle Darbenghast<\/p>\n<p>You stand in a massive courtyard, surrounded on all sides by stone walls that seem to touch the sky. In front of you, there is a marble pedestal carved with ornate shapes of pugs.<\/p>\n<p>There is a book on the pedestal.<\/p>\n<p>&gt;take book<br \/>\nTaken.<\/p>\n<p>&gt;read book<br \/>\nThe book is a collection of something called 'blog posts'. You turn to the latest one and begin to read..<\/code><\/p>\n<hr \/>\n<p>Interactive Fiction is a bit like a book that you control, in the same way that your average AAA blockbuster from Ubisoft or EA is a movie that you take the lead role in. The primary difference, naturally, is the medium. Far Cry or Halo may be worth 60,000 words per second according to the old adage, but with a piece of interactive fiction the pictures you paint are your own. Interactive Fiction (or IF) games are also known as text adventures. What follows is a ton of waffle: If you get bored, just skip to the end of the post. I have some links that you must click.<\/p>\n<p>In a piece of interactive fiction the reader is given a chunk of text. After reading the text, the player must now react to it. By providing an action to the game, such as &#8216;look&#8217; or &#8216;punch mugger&#8217;, the game decides the outcome of the action and prints another block of text to respond to. This event-response interaction continues until the story reaches an ending, whether that be a happy one (becoming king of the land), or one that&#8217;s slightly less optimal (becoming the court jester).<\/p>\n<p>While the parsing and variety of actions in these games are impressive, they are limited by the imagination of the game&#8217;s author. Pretty much everything you type will be of the form &#8216;verb noun&#8217;, with a smallish number of verbs. Don&#8217;t be tricked into believing you&#8217;re writing a story with the computer: You&#8217;re an actor in someone else&#8217;s world, and they&#8217;ve already decided how the story should end. <\/p>\n<p>In this regard, I would compare Interactive Fiction to a computerised version of a highly <a title=\"Railroading\" href=\"http:\/\/rpgtalk.wikia.com\/wiki\/Railroading\">railroaded<\/a> Dungeons and Dragons game. The dungeon master already knows how you the players will advance, and it&#8217;s up to the group to stay on the track defined by the dungeon master or face the consequences.. Or even simply be flat-out told they can&#8217;t perform certain actions for fear of derailing the story. However, much like a well-run railroad, a great piece of interactive fiction won&#8217;t ever leave you wondering how to move forward, or trying to get into the head of the creator to attempt to divine the next move. Instead, you feel like a person in a living breathing world, doing what would come naturally. Even if you can&#8217;t break the flow of the game, with some good direction and writing you&#8217;ll actually want to stay in the flow.<\/p>\n<p>Another example may be in order. Below, I&#8217;ve played through a tiny amount of the legendary IF known as &#8216;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Zork\">Zork<\/a>&#8216;. My inputs are prefaced with a &gt;, the rest of the text is provided by the game.<\/p>\n<hr\/>\n<p><code>Copyright (c) 1981, 1982, 1983 Infocom, Inc. All rights reserved.<br \/>\nZORK is a registered trademark of Infocom, Inc.<br \/>\nRevision 88 \/ Serial number 840726 <\/p>\n<p>West of House<br \/>\nYou are standing in an open field west of a white house, with a boarded front<br \/>\ndoor.<br \/>\nThere is a small mailbox here.<\/p>\n<p>&gt;open mailbox<br \/>\nOpening the small mailbox reveals a leaflet.<\/p>\n<p>&gt;get leaflet<br \/>\nTaken.<\/p>\n<p>&gt;read leaflet<br \/>\n\"WELCOME TO ZORK!<\/p>\n<p>ZORK is a game of adventure, danger, and low cunning. In it you will explore<br \/>\nsome of the most amazing territory ever seen by mortals. No computer should be<br \/>\nwithout one!\"<\/p>\n<p>>go southeast<br \/>\nSouth of House<br \/>\nYou are facing the south side of a white house. There is no door here, and all<br \/>\nthe windows are boarded.                                                       <\/p>\n<p>>go northeast<br \/>\nBehind House<br \/>\nYou are behind the white house. A path leads into the forest to the east. In<br \/>\none corner of the house there is a small window which is slightly ajar.        <\/p>\n<p>>open window<br \/>\nWith great effort, you open the window far enough to allow entry.              <\/p>\n<p>>enter house<br \/>\nKitchen<br \/>\nYou are in the kitchen of the white house. A table seems to have been used<br \/>\nrecently for the preparation of food. A passage leads to the west and a dark<br \/>\nstaircase can be seen leading upward. A dark chimney leads down and to the east<br \/>\nis a small window which is open.<br \/>\nOn the table is an elongated brown sack, smelling of hot peppers.<br \/>\nA bottle is sitting on the table.<br \/>\nThe glass bottle contains:<br \/>\n  A quantity of water<\/p>\n<p>><br \/>\n<\/code><\/p>\n<hr\/>\n<p>And so on. The example has hopefully made the idea behind IF clear: Interactive Fiction is a story that you have a degree of control over. In particular, you control which paragraph gets printed when. You do this by navigating and interacting with a world described entirely by text (in the majority of games. Some feature graphics, but those are far and few between). <\/p>\n<p>Why is this so amazing? Well, truth be told, in this age of AAA blockbusters and superb indie studios, maybe text adventures are a bit archaic. However, interactive fiction still has its merits. For one thing, it&#8217;s still fun, just like how reading hasn&#8217;t aged a day since the press was invented. For another, people are still writing text adventures! You might have noticed in the example above that Zork was first published in 1981. People are <em>still<\/em> making these games, over twenty years on. They&#8217;re still wonderful, ageless experiences. From a new reader&#8217;s perspective, there is a vast library of IF out there and, because of the near universality of how they&#8217;re played, once you&#8217;ve played one you&#8217;ll know how to play them all. For potential story-tellers, IF is a very interesting medium to work with. Outside of the classic Choose-Your-Own-Adventure books, there are very few text-based ways for authors to provide an interactive experience for their readers. What better way than to let them discover with their own actions the world you&#8217;ve crafted?<\/p>\n<p>Basically, if you like books and you like pretending you&#8217;re a character in a book, you&#8217;re going to get along fine with Interactive Fiction.<\/p>\n<p>Before I set you loose on some of my favourite introductory examples of the genre, let me give you a quick primer on a few common text adventure commands:<\/p>\n<ul>\n<li><code>&gt;go &lt;direction&gt;<\/code> &#8211; There is seldom a more often used command than the <code>go<\/code> command. Given a direction, this moves the player from one location to another in the game&#8217;s world. So common is this command, most parsers allow the user to drop the word <code>go<\/code> entirely, understand implicitly that a command like <code>&gt;north<\/code> means <code>&gt;go north<\/code>. The directions themselves can be shortened: North becomes &#8216;n&#8217;, south becomes &#8216;s&#8217;, etc. The classic directions in IF are the compass cardinals and intermediates, along with &#8216;up&#8217; and &#8216;down&#8217;. Sometimes games will prefer you use terms like &#8216;enter&#8217; or &#8216;move&#8217;.<\/li>\n<li><code>&gt;inventory<\/code> &#8211; This command lists the players inventory. Most parsers will understand &#8216;i&#8217; to be shorthand for &#8216;inventory&#8217;. Example output:<br \/>\n<code>&gt;i<br \/>\nYou are carrying:<br \/>\n  A leaflet<\/code><\/li>\n<li><code>&gt;get &lt;noun&gt;<\/code> &#8211; This command moves an item from the world into the player&#8217;s inventory. There is the opposite command as well: <code>drop<\/code>. Example output:<br \/>\n<code>&gt;get knife<br \/>\nTaken.<\/code><\/li>\n<li><code>&gt;look<\/code> &#8211; This command displays the description of the current area the player is in. Usually, you are shown this description upon entering a room via &#8216;go&#8217;, but you might want to see it again to check if anything has changed (new items, a slightly different description of that brick wall..). Most parsers will understand &#8216;l&#8217; to be shorthand for &#8216;look&#8217;.  If you provide a noun to the command, you can examine an item in your inventory or in the room more closely. Example output:<br \/>\n<code>&gt;l<br \/>\nAttic<br \/>\nThis is the attic. The only exit is a stairway leading down.<br \/>\nA large coil of rope is lying in the corner.<br \/>\nOn a table is a nasty-looking knife.<\/code><\/li>\n<\/ul>\n<p>These are just a selection of the seriously huge number of potential commands. More avant-garde games may not even implement some of these standard commands, or others simply might have no use for things like an inventory. If you&#8217;re wondering how to perform a certain action, try typing it to see if it works. For instance, if you have a closed jar and you want it to be open, try typing  <code>&gt;open jar<\/code>! You might be pleasantly surprised. If the author is doing a good job, most of the items you come across will have obvious uses, or contain a hint as to the proper verb in its description. Parsers also give you hints if you seem to mean one thing but have typed another; for instance, if you type <code>unlock door<\/code>, the parser is likely to prompt you: <code>With what?<\/code>. That&#8217;s your cue to say <code>door key<\/code> or some such. One last thing about commands: You can usually type &#8216;save&#8217; and &#8216;load&#8217; to.. Well, you can probably figure that one out.<\/p>\n<p>Okay, it&#8217;s time. You&#8217;re in for a treat. To play interactive fiction and most text adventures, you&#8217;ll need an interpreter and game files. The interpreter will run the game files, which are typically in .z5 or .z8 (known as Inform) format. There&#8217;s also the option of playing games line using online interpreters. I&#8217;ll close out this article with links to <a href=\"http:\/\/freespace.virgin.net\/davidk.kinder\/frotz.html\">WinFrotz<\/a>, a Windows Inform Interpreter, the <a href=\"http:\/\/ifdb.tads.org\/\">IF Database<\/a>, where you can find many, MANY games, and links to some great introductory or otherwise noteworthy IF games:<\/p>\n<ul>\n<li><a href=\"http:\/\/ifdb.tads.org\/viewgame?id=0dbnusxunq7fw5ro\">Zork<\/a> &#8211; Where would we be without Zork? Explore the dungeon, get treasures, solve puzzles. Very pure, and very hard. This game is many people&#8217;s first experience with IF, but I&#8217;d say it&#8217;s probably too unforgiving. If you&#8217;re a glutton for punishment, go for it!<\/li>\n<li><a href=\"http:\/\/ifdb.tads.org\/viewgame?id=ju778uv5xaswnlpl\">Photopia<\/a> &#8211; A story by a modern Interactive Fiction master named Adam Cadre, Photopia is a <em>perfect<\/em> introduction to Interactive Fiction. Don&#8217;t read the reviews. Either <a href=\"http:\/\/iplayif.com\/?story=http%3A%2F%2Fwww.ifarchive.org%2Fif-archive%2Fgames%2Fzcode%2Fphotopia.z5\">play it online<\/a>, or if you want the real experience, grab a <a href=\"http:\/\/brasslantern.org\/players\/howto\/tadownload-d.html\">Glulx<\/a> interpreter and the <a href=\"http:\/\/mirror.ifarchive.org\/if-archive\/games\/glulx\/photo201.zip\">game file<\/a> proper and play it like that. Just don&#8217;t read the reviews, okay? If I remember right, the DOS version also works a treat.<\/li>\n<li><a href=\"http:\/\/ifdb.tads.org\/viewgame?id=2xyccw3pe0uovfad\">Spider and Web<\/a> &#8211; You&#8217;re a tourist in a big city, and have somehow ended up in an empty back-alley. How strange. Safely <a href=\"http:\/\/iplayif.com\/?story=http%3A%2F%2Fwww.ifarchive.org%2Fif-archive%2Fgames%2Fzcode%2FTangle.z5\">playable online<\/a>, and fairly forgiving in terms of mechanics and difficulty. Not 100% introductory, but definitely a shining example of a well-written piece of fiction.<\/li>\n<li><a href=\"http:\/\/ifdb.tads.org\/viewgame?id=qzftg3j8nh5f34i2\">9:05<\/a> &#8211; Another game by Adam Cadre. You wake up at 9:05. Time for another day. Very, very short game. I&#8217;d say it&#8217;s a brilliant introduction to IF. <a href=\"http:\/\/iplayif.com\/?story=http%3A%2F%2Fwww.ifarchive.org%2Fif-archive%2Fgames%2Fzcode%2F905.z5\">Play online<\/a>, be amazed.<\/li>\n<li><a href=\"http:\/\/ifdb.tads.org\/viewgame?id=xi4s5ne9m6w821xd\">Ad Verbum<\/a> &#8211; Something a little more unconventional. If you&#8217;re a fan of puns and wordplay, this is a delight. The parser is a little different from your average game. Maybe cut your teeth on one of the other games in this list before coming to this one. The objective is simple: Remove all the items from a condemned house. Of course, it&#8217;s not that simple. Here&#8217;s the <a href=\"http:\/\/iplayif.com\/?story=http%3A%2F%2Fwww.ifarchive.org%2Fif-archive%2Fgames%2Fzcode%2Fadverbum.z5\">online link<\/a>.<\/li>\n<\/ul>\n<p>Good luck, and have fun!<\/p>\n<hr\/>\n<p><code>You finish reading the blog post.<\/p>\n<p>&gt;quit<br \/>\nSee you next time!<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&gt;look Castle Darbenghast You stand in a massive courtyard, surrounded on all sides by stone walls that seem to touch the sky. In front of you, there is a marble pedestal carved with ornate shapes of pugs. There is a book on the pedestal. &gt;take book Taken. &gt;read book The book is a collection of <a class=\"read-more\" href=\"http:\/\/mjdarby.net\/blog\/2014\/09\/03\/interactive-fiction\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,8],"tags":[],"class_list":["post-261","post","type-post","status-publish","format-standard","hentry","category-interactive-fiction","category-semi-essay"],"_links":{"self":[{"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/posts\/261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/comments?post=261"}],"version-history":[{"count":19,"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/posts\/261\/revisions"}],"predecessor-version":[{"id":280,"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/posts\/261\/revisions\/280"}],"wp:attachment":[{"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/media?parent=261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/categories?post=261"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mjdarby.net\/blog\/wp-json\/wp\/v2\/tags?post=261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}