
Inform: A Language for Interactive Fiction - brudgers
http://www.inform7.com
======
mundo
If this piques your interest and you're interested in programming history, you
will very likely enjoy reading about the Zork Implementation Language and the
Z-machine, on which Inform is based:
[http://en.wikipedia.org/wiki/Z-machine](http://en.wikipedia.org/wiki/Z-machine)
And the original spec for game authors from Infocom is quite entertaining:
[http://xlisp.org/zil.pdf](http://xlisp.org/zil.pdf)

Good stuff. More generally, if you want a short (<1hr) and amusing example of
IF, try this: [http://pr-if.org/play/violet/](http://pr-if.org/play/violet/)

~~~
taradinoc
If you enjoy reading about the Zork Implementation Language, you might also
enjoy my project, ZILF, which is a working implementation of ZIL:
[https://sourceforge.net/projects/zilf/](https://sourceforge.net/projects/zilf/)

ZIL is basically a domain-specific language on top of MDL, the Lisp-like
language that was used to write the original mainframe Zork. The developers
went on to start Infocom and split Zork into three parts that were small
enough to run on home computers, creating ZIL and the Z-machine in the
process.

The source code for mainframe Zork is still available, but the subset of MDL
implemented by ZILF isn't complete enough to play it. Matthew T. Russotto has
written a MDL interpreter to do just that:
[http://www.ifarchive.org/indexes/if-
archiveXprogrammingXmdlX...](http://www.ifarchive.org/indexes/if-
archiveXprogrammingXmdlXinterpretersXconfusion.html)

------
morgante
Has anyone used something like this for non-fictional contexts? I'm really
enthusiastic about the future of interactive journalism, particularly in terms
of tailoring journalist narratives to each reader.

For example, I think coverage around the announcement of a new tax plan should
adjust to the given user (ex. "Under Clinton's plan, your taxes will increase
by 5%, to $14,000 annually."). Unfortunately, there just don't seem to be many
good tools for allowing non-programmers to encode manipulable facts into their
narratives.

~~~
ics
I was just thinking about this today because of the Germanwings crash. What if
instead of a news article you were presented with a page which somehow led you
through a knowledge graph of the topic based on questions or actions by the
reader?

When news is just breaking there would obviously be lots of dead ends, but
perhaps if people kept inputting the same sort of question it would get
flagged and become more important as the story develops. For example in the
case of the plane crash, after hearing the initial reports of the pilot being
locked out my immediate thoughts were:

    
    
        - What is the lock mechanism like? Can the door be opened with force?
        - How is the lock controlled?
        - How is the altitude for autopilot set? Is it easy to set 96 feet instead of 9600 feet?
        - Is there any record of the copilot's vitals before the crash?
        - Why wasn't there another person in the cabin while the pilot stepped out?
    

...and so on. Some of these were answered, but the only way to really get the
information is to read (or listen to) the same kind of reports over and over,
hoping for new information and trying not to mistake an over-eager rephrasing
as new facts.

What would be great is if I could see a list of topics, select one, and then
either highlight sections/tags to follow up on, submit a question, or follow a
link to an existing question. The UX here would be a very interesting study I
think.

    
    
        Inform> Scream expletives at reporter
        That's not a verb I recognize.
    

\---

The simplest way to do this would probably be to get a team of interns to
trawl the net looking for what people are talking about after a story breaks
(such as top voted Reddit comments), rephrasing them as necessary, and then
turning them into tags which people reading the story can then subscribe to.
Readers could select existing ones or see them fuzzy completed as they input
their own questions. Hmmm.

~~~
morgante
Yup, I think this is actually one of the more interesting problems on the web
today. We have access to more and more information than ever, but it's not
organized in good navigation or narrative structures.

Interestingly, I actually think where the innovation is needed is on the input
side. It's _possible_ to produce a structured and personalizable story today,
but it requires long programming lead times. We need to create systems which
make it possible to build such stories at the speed of news.

\--- (Shameless plug, but if anyone is interesting in this problem space I'm
currently hiring. Email morgante@cafe.com if interested.)

------
smoyer
I've been playing with this for a while and, while I don't have any games
released, I continue to be in love with this genre. I'm one of those people
that has a real mental picture of what I read (frequently better than what
movies portray).

There's a huge community of IF fans and producers which really runs more out
of love than profit. There's also an archive where you can download a lot of
games (or even play them on-line). Check out
[http://www.ifarchive.org/](http://www.ifarchive.org/).

~~~
defen
> I'm one of those people that has a real mental picture of what I read

It's always interesting to me when I hear people say this, because I can't
understand it at all. If you ask me to close my eyes and visualize a car, I
don't actually _see_ anything. I can recall what a car or a specific car looks
like, but I don't actually "see" it in any sense. Same with reading - I don't
(can't) actually visualize the characters, settings, etc. I'm always
momentarily confused when someone complains about a film/TV adaptation with
"such and such actor is really good, but that character is supposed to have
GREEN eyes!". To me it's an incidental fact, whereas to some people it's
central to their conception of the character (as if a real-life person had
suddenly changed eye color for no apparent reason).

I've always wondered whether my condition is the norm, or if most people are
capable of visual recall.

~~~
gwillen
You'll probably get a chuckle out of the first five-or-so paragraphs of:

[http://lesswrong.com/lw/dr/generalizing_from_one_example/](http://lesswrong.com/lw/dr/generalizing_from_one_example/)

The referenced paper can be found here:
[http://psychclassics.yorku.ca/Galton/imagery.htm](http://psychclassics.yorku.ca/Galton/imagery.htm)

~~~
Al-Khwarizmi
Wow, the Galton paper is amazing, thank you. To be honest I'm like the
scientists that he questioned first... until I read this today, I always
thought that the whole "mental imagery" concept was mainly a figure of speech,
as when people say they feel butterflies in their stomach, and things like
that. I can picture my breakfast table, but it's more of a conceptual sketch
than an actual image. I can only focus my thoughts on one thing at a time, and
e.g. I know what the colors are but I'm not really "seeing" them in my mind -
the fact that people can report a "brightness" value in relation to reality
makes me think that my mind really works different from that of those people,
for me the brightness question doesn't even make sense.

Now I feel handicapped, although I suppose that maybe if I could conjure up
these mental images, I wouldn't be so good at symbolic processing. I guess
this is why I have always preferred text to diagrams and such...

By the way, what I can do is hear music in my mind - and yes, this comes with
pitch, volume, timbre, polyphony and everything. In fact if I'm at a place
with a constant background noise - as in a plane, or near an air conditioning
machine - I sometimes think I'm actually hearing it in reality (although I
have learned that I'm not). I wonder if other people also experience this.

~~~
kaoD
> By the way, what I can do is hear music in my mind [...] I wonder if other
> people also experience this.

I remember when I was a kid I told my older brother I could play music in my
head just like if I had pressed play in a tape deck. He was really puzzled.

I still can do it and it is definitely accurate. I lack perfect pitch
recognition but for some reason when I play music in my head it's played in
its original pitch. I use this to my advantage to replace perfect pitch: I
just play a song with a known pitch in my head and use that imagined pitch as
a relative. This works wonders for interval identification too (e.g. the first
two notes in The Simpsons are a tritone apart).

------
pconner
I took a very non-traditional English class my freshman year of college, and
we had an assignment that required us to use this language. From a traditional
programming standpoint, I found this platform very difficult to use, though I
was never really got too deep into what it was capable of.

~~~
kaoD
> I found this platform very difficult to use

Indeed. When you read IF coded in Inform it all seems to make sense, but when
you have to program it you realize you're just learning a _very_ difficult and
idiosyncratic syntax.

~~~
jlees
Some Inform code would make excellent poetry, however.

~~~
skybrian
Yup. I don't know about excellent, but here's one I like:

The lady is in the lake,

The lady is holding her breath...

When the lady is sad and the window is plaid

Then end the game in death.

More:
[http://slesinsky.org/brian/code/i7_poetry.html](http://slesinsky.org/brian/code/i7_poetry.html)

------
zem
if you want to read a nice example of inform7 code, emily short's "computers"
is wonderfully readable. also as a self-contained piece of code implementing a
single object, it's easier to grasp than a full game would be.

[http://inform7.com/extensions/Emily%20Short/Computers/index....](http://inform7.com/extensions/Emily%20Short/Computers/index.html)

------
hackuser
From their site:

 _Inform is a design system for interactive fiction based on natural language.
It is a radical reinvention of the way interactive fiction is designed, guided
by contemporary work in semantics and by the practical experience of some of
the world 's best-known writers of IF.

Inform's source reads like English sentences, making it uniquely accessible to
non-programmers. It's very easy to get started. Watch a screencast._

Also of interest:

 _Inform 's first website was a single hand-coded HTML page in the primitive,
10,000-site Web of 1995. Today the Web has a hundred million sites, and we're
larger and better too._

------
chrislloyd
[http://playfic.com](http://playfic.com) is a good archive of inform IFs.

------
potomak
On this topic I'd like to share gist-txt[0] a tool I created to build text
adventures starting from markdown files hosted on GitHub's Gist.

It doesn't need hosting as your files will be hosted by GitHub and you can
write your interactive fiction stories directly form the web.

It uses mustache templates and JavaScript to achieve minimal interactive
functions.

I wrote a little introduction[1] at Ludum Dare's blog and I will use it to
write a text adventure for the AdventureJam[2] starting next week!

Note: I took inspiration form Twine[3] and bl.ocks.org[4] for the initial
development of the tool.

[0] [https://github.com/potomak/gist-txt](https://github.com/potomak/gist-txt)

[1] [http://ludumdare.com/compo/2015/03/05/a-minimal-tool-to-
crea...](http://ludumdare.com/compo/2015/03/05/a-minimal-tool-to-create-text-
adventures/)

[2]
[http://jams.gamejolt.io/adventurejam](http://jams.gamejolt.io/adventurejam)

[3] [http://twinery.org/](http://twinery.org/)

[4] [http://bl.ocks.org/](http://bl.ocks.org/)

------
protomyth
If you find this interesting then go back and look at Inform6 and compare the
two. It is a fascinating evolution/ revolution.

------
jdeisenberg
Sadly, the links to the manuals from this page
[http://inform7.com/learn/manuals/](http://inform7.com/learn/manuals/) are
broken.

~~~
derfj
Not ideal, but if you don't want to download versions lower on the manual
page:

[http://web.archive.org/web/20140629075749/http://inform7.com...](http://web.archive.org/web/20140629075749/http://inform7.com/learn/man/index.html)

[http://web.archive.org/web/20140701035008/http://inform7.com...](http://web.archive.org/web/20140701035008/http://inform7.com/learn/man/Rindex.html)

------
plesiv
I can imagine this being used for educational purposes. It seems that it could
be useful to professions that use case-studies to improve trainee's
competency. Not profession in it's right, but a more general technical skill
is systems-troubleshooting. Imagine having game-like troubleshooting scenarios
for people to practice on, that would be really neat.

------
indrax
This seems like the Best. Language. Ever. Obviously not for everything, but
the readability of code is off the chart, and IDE and the integration of the
documentation with the IDE is really...neat.

I've been looking at this for a few hours, and I am floored.

Am I missing something in existing IDE's?

------
empressplay
Makes me think of Eamon:

[http://en.wikipedia.org/wiki/Eamon_%28video_game%29](http://en.wikipedia.org/wiki/Eamon_%28video_game%29)

