---
title: "Inform 7 is insanely wonderful and full of words"
date: 2006-05-01T12:54:39-04:00
url: https://blog.lmorchard.com/2006/05/01/inform-7-is-insanely-wonderful-and-full-of-words/
author: Les Orchard
tags: [asides]
---

# Inform 7 is insanely wonderful and full of words

 <p>If you've yet to check out <a href="http://inform-fiction.org/I7/Welcome.html">the new Inform 7</a>, "A Design System for Interactive Fiction Based on Natural Language," you really need to do so.</p>
 <p>Back when I was a wee lad with access to an assortment of Commodore 64, Apple ][, and Atari 800 computers, text adventures pretty much had me in their thrall.  I loved to play them, getting lost for hours in all that Infocom and others had to offer.  I also loved to write them - if only for myself, with rooms plotted out on green-lined gridpaper and engines implemented in clumsy BASIC and LOGO.</p>
 <p>Since then, I've returned now and then to see what's going on in that world.  In the intervening years, the whole field has reinvented itself as "interactive fiction," and hobbyists have reverse engineered a number of classic game engines.  They've picked up where defunct companies left off and pursued even further development.</p>
 <p>I've not gone back to write any further adventures of my own, though I've peeked in at the authoring tools from time to time.  For the most part, things seemed just obscure and weird-edged enough to leave me thinking I might better spend my time learning more about Python or even Lisp.  I've played some of these modern games over the years, though, and there's quite a bit of great writing talent at work out there.</p>
 <p>But now, this: <a href="http://inform-fiction.org/I7/Welcome.html">Inform 7</a>.  This is a world-building environment built by and for writers.  The truth of this is embedded in every facet of it - from the mind-bogglingly cool natural language in which worlds can be described, to the painstakingly elaborated documentation, to the <b>fully narrated and apologized-for error messages</b>.</p>
 <p>In sharp contrast to my past toe-dippings into interactive fiction authoring - and even MOO / MUD citizenship - this system <i>compells</i> me to use it.  It makes me want to write stories and describe worlds.</p>
 <p>And, most amazing of all:  This is <del>Open Source software</del> <ins>not commercially developed software</ins>.  (Update: Turns out it's not totally Open Source, but it's beer-free at least.)</p>
 <p>Of course, I've found great annoyance in the past with languages like AppleScript and Lingo - both of which <i>attempt</i> to follow some sort of natural language patterns, yet only result mockeries of all language.  I haven't dug deep enough into <a href="http://inform-fiction.org/I7/Welcome.html">Inform 7</a> to tell if I'll reach this same point of frustration.  So far, though, it seems promising from the little I've thrown together in a morning's coffee and in the examples I've browsed at lunch.</p>
 <p>Maybe one of these stories in my head will find it's way out this way.</p>

<div id="comments" class="comments archived-comments">
            <h3>Archived Comments</h3>
            
        <ul class="comments">
            
        <li class="comment" id="comment-221089025">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href=""><img src="http://www.gravatar.com/avatar.php?gravatar_id=a0b347907bfaf05694805210ec595d6c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="">Martin Atkins</a>
                </div>
                <a href="#comment-221089025" class="permalink"><time datetime="2006-05-01T19:11:03">2006-05-01T19:11:03</time></a>
            </div>
            <div class="content"><p>One interesting side-effect of it being based on English is that it presumably makes it harder to use for someone who is attempting to write a story in another language. That doesn't really bother me, as a native English speaker, but that doesn't stop me wondering exactly what it would take to adapt Inform to mimick another language.</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089026">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.decafbad.com"><img src="http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.decafbad.com">l.m.orchard</a>
                </div>
                <a href="#comment-221089026" class="permalink"><time datetime="2006-05-01T19:19:55">2006-05-01T19:19:55</time></a>
            </div>
            <div class="content"><p>Martin - apropos of that, I just read this bit in the documentation a little while ago:</p>

<blockquote>
  <p>2.12. Accented letters</p>
  
  <p>Inform 7 is infused by the English language and for the present it would be difficult to write a work of IF in any other language with it. (Inform 6 remains a practical tool for non-English IF, though, having been translated into French, Italian, Spanish, German, and a number of other languages.)</p>
</blockquote></div>
            
        </li>
    
        <li class="comment" id="comment-221089027">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.brool.com"><img src="http://www.gravatar.com/avatar.php?gravatar_id=0781c0e32be2a2f7117dabd76a3fb7c3&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.brool.com">Tim Lopez</a>
                </div>
                <a href="#comment-221089027" class="permalink"><time datetime="2006-05-01T20:16:27">2006-05-01T20:16:27</time></a>
            </div>
            <div class="content"><p>Inform 7 looks very cool -- I plan to try it out -- although I wonder if the verbose language won't get in the way for experienced users.  For example, can you imagine what writing a shell script in English would look like?</p>

<p>It is a pity that the source for the command line tools is not available; an Emacs version of the console would be really appealing.</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089030">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.m14m.net/bloglet.php"><img src="http://www.gravatar.com/avatar.php?gravatar_id=aaf59342c006b36a7bc7b46b3b900175&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.m14m.net/bloglet.php">Moss Collum</a>
                </div>
                <a href="#comment-221089030" class="permalink"><time datetime="2006-05-02T00:12:58">2006-05-02T00:12:58</time></a>
            </div>
            <div class="content"><p>Oh wow, that looks delicious.</p>

<p>The screenshots of the Transcript make me want something like that for unit testing code in more ordinary programming languages.</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089032">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.decafbad.com"><img src="http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.decafbad.com">l.m.orchard</a>
                </div>
                <a href="#comment-221089032" class="permalink"><time datetime="2006-05-02T00:32:26">2006-05-02T00:32:26</time></a>
            </div>
            <div class="content"><p>Tim: Yeah, I've been kind of wondering about that too.  I've not ever really played for more than two minutes with Inform 6 and below, but I wonder if there are some particularly tricky things that Inform 7 won't make easy?  On the other hand, from everything I've read, Inform 7 is a frontend to Inform 6 almost as C++ is a frontend to C.  I wonder if you can drop down a level, if need be?</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089033">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.decafbad.com"><img src="http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.decafbad.com">l.m.orchard</a>
                </div>
                <a href="#comment-221089033" class="permalink"><time datetime="2006-05-02T00:36:56">2006-05-02T00:36:56</time></a>
            </div>
            <div class="content"><p>Oh, but speaking of ability to complex things in Inform 7, one of the examples at which I've peeked is "Damnatio Memoriae":</p>

<p><a href="http://inform-fiction.org/I7Downloads/Examples/dm/">http://inform-fiction.org/I7Downloads/Examples/dm/</a></p>

<p>There's a surprisingly complex magic system of linked associations at play there.  And that's a pretty short example game.</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089034">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.decafbad.com"><img src="http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.decafbad.com">l.m.orchard</a>
                </div>
                <a href="#comment-221089034" class="permalink"><time datetime="2006-05-02T10:54:44">2006-05-02T10:54:44</time></a>
            </div>
            <div class="content"><p>And, to answer my own question, a <a href="http://brasslantern.org/writers/howto/i7intro-c.html" rel="nofollow">quote from a Brass Lantern article</a>:</p>

<blockquote>
  <p>If I7 is built on top of I6, can you get access to I6 within I7 code? Yes. You drop down into I6 by surrounding your I6 code with "(-" and "-)".</p>
    <p><code>To end the game in death: (- deadflag=1; -).</code></p>  
  <p>You can use small snippets of I6 code, as above, or include entire routines. This can be useful for programming tasks that are much more easily handled in a procedural language such as I6.</p>
  <p>The drawback to doing so is a loss of readability: much as when you embed assembly directives in C, you now need to understand two very different languages. You can encapsulate I6 code and give it a natural-language form; in fact, parts of the I7 standard library do just that.</p>
  </blockquote></div>
            
        </li>
    
        <li class="comment" id="comment-221089036">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://advogato.org/person/mbrubeck/"><img src="http://www.gravatar.com/avatar.php?gravatar_id=85232f8499fd6ee91623408fc23835d1&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://advogato.org/person/mbrubeck/">Matt Brubeck</a>
                </div>
                <a href="#comment-221089036" class="permalink"><time datetime="2006-05-02T19:33:46">2006-05-02T19:33:46</time></a>
            </div>
            <div class="content"><p>Strictly speaking, this isn't (all) Open Source software:  While the source code to the GUI is under the GPL, the source code to the compiler will be available only under a "look but don't touch" license (same as Inform 6).  I respect their decision not to GPL the compiler, but I'm slightly less excited than I would be if it were really open.</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089039">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href=""><img src="http://www.gravatar.com/avatar.php?gravatar_id=0c9416848e8cffb2f296948f1e725319&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="">Dino Morelli</a>
                </div>
                <a href="#comment-221089039" class="permalink"><time datetime="2006-05-12T20:42:58">2006-05-12T20:42:58</time></a>
            </div>
            <div class="content"><p></p><p>Matt Brubeck said:</p>

<p></p><p><blockquote><em>I respect their decision not to GPL the compiler, but I'm slightly less excited than I would be if it were really open.</em></blockquote></p>

<p></p><p>I have to agree with Matt on this. I'm a programmer. And I don't mean a mouse-oriented, Eclipse IDE-loving programmer. I mean a vi, makefile, command-shell programmer.</p>

<p></p><p>So, if I can't use my text editor and can't build binaries from source with the command line (as you would with make), then I can't use it. It's just not programming in the sense that I've come to enjoy for the past 25 years.</p>

<p></p><p>All that aside, after reading the new manual, I think this language is fantastic. Wow. I very much want to try it. I hope at some point non-IDE programmers can have access to the tools to compile this new language.</p>

<p></p><p>I'm really blown away by what these guys, Mr. Nelson, Emily Short and everyone else, have done here. Wow again.</p></div>
            
        </li>
    
        <li class="comment" id="comment-221089042">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://plasmasturm.org/"><img src="http://www.gravatar.com/avatar.php?gravatar_id=e17949267bbfe21a0fadf1bbf00592b4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://plasmasturm.org/">Aristotle Pagaltzis</a>
                </div>
                <a href="#comment-221089042" class="permalink"><time datetime="2006-06-10T09:21:57">2006-06-10T09:21:57</time></a>
            </div>
            <div class="content"><p>Hey, <a href="http://www.onlamp.com/lpt/a/6602" rel="nofollow">it even found its way onto the O’Reilly network</a>.</p></div>
            
        </li>
    
        </ul>
    
        </div>
