Awesome IF

A curated list of interactive fiction frameworks, tools, and resources. Created by Yakira Dixon in 2014, currently maintained by Tristano Ajmone.

CC0

1. Introductory Material

Newcomers to Interactive Fiction will find these links helpful:

2. IF Authoring Tools

2.1. ADRIFT

ADRIFT (Adventure Development & Runner — Interactive Fiction Toolkit) is a GUI driven IF development system for Windows, allowing to create text adventures via dialog boxes and GUI controls instead of writing code. Supports graphics and sounds.

Developed by Campbell Wild since 1997, ADRIFT Developer (formerly called Adventure Generator) used to be a commercial product, then in 2011 it became freeware, and now the full source code is available on GitHub under BSD 3-Clause license.

There are different versions of ADRIFT, adventures created with a specific version of ADRIFT Developer should be played with the same version of ADRIFT Runner — but ADRIFT Runner 5 should be able to run adventures created for v4:

  • ADRIFT 5.0 (2011–)

  • ADRIFT 4.0 (2002–2012)

  • ADRIFT 3.9 (2001)

  • ADRIFT 2.0 (aka Adventure Generator, 1997) — legacy 16-bit DOS app

Suggested GitHub topics: adrift adrift5 adrift-5

For more information, see also:

2.2. Adventuron

A free to use, proprietary (closed source) in-browser text adventure and gamebook authoring tool, by Adventuron Software Limited, UK.

2.3. Aiee!

Aiee! is a cross-platform tool (Java) for creating and playing text adventures, or "interactive fiction". Aiee! adventures are written in a simple XML-based format, without the need for any programming experience. Aiee! adventures can even include illustrations and sound.

2.4. Alan

Alan (Adventure LANguage) is an a cross-platform open source authoring system based on a dedicated IF language with an English-like syntax, intended to simplify writing adventures for non-programmers. Its webiste also offers a dedicated IDE and other useful tools to aid IF authoring.

Alan was created in 1985 by Thomas Nilsson (now Thomas Nilefalk) and Göran Forslund, and is actively maintained by Thomas Nilefalk. The latest version is Alan 3.

Suggested GitHub topics: alan-if alan3

For more information, see also:

Source repository:

Libraries for Alan 3:

  • github.com/AnssiR66/AlanStdLib — Alan Standard Library v2, by Anssi Räisänen.

  • ALAN Library v0.6.2 (at Alan Goodies) — an earlier library ported from Alan 2, still working with current Alan version, but today mainly used to compile legacy adventures and tutorials. Deprecated in favour of the new StdLib v2.

  • github.com/alan-if/alan-i18n — The ALAN Internationalization Project, multi-language translations of a basic ALAN IF library to create text adventures in different languages, and provide reference implementations to add support for new locales.

Alan in other languages:

Books and tutorials:

  • git.io/alan-docs — The official Alan Documentation website, offering various books, guides and tutorials for on-line consultation and download:

    • The Alan Manual — on-line version of the latest ALAN Adventure Language Reference Manual.

    • Alan Cookbook v2 — Anssi Räisänen’s collection of tips and tricks on how to implement and achieve various effects in the ALAN language or using the Standard Library v2.

    • Alan 3 Beginner’s Guide — Michael Arnaud’s step-by-step tutorial for the creation of the TV TIME! adventure using ALAN Library v0.6.1.

    • Alan IDE Reference Guide — Robert DeFord’s guide on how to install, configure and use the Alan IDE to craft text adventure in ALAN.

Alan editors, IDEs and editor extensions:

  • AlanIDE — complete Alan Integrated Development Environment, by Alan author Thomas Nilefalk. In Java/Eclipse.

  • Sublime Alan IF — Alan 3 syntax for Sublime Text 4 (usable Alpha).

Syntax highlighters supporting Alan:

Alan-related projects:

2.5. Curveship

2.6. Hugo

The Hugo Interactive Fiction Development System (1995-2006), created by Kent Tessman, is a cross-platform, free and open source (BSD-2-Clause license) programming language and set of tools for authoring and playing Interactive Fiction adventures, supporting images, sound and videos. The latest official Hugo release is v3.1.03 (2005).

Suggested GitHub topics: hugo-if

For more information, see also:

Hugo official documentation, by Kent Tessman:

  • The Hugo Book (PDF) — at the IF Archive (direct download).

  • The Hugo Book (HTML) — New AsciiDoc port and HTML edition, revised with Kent Tessman supervision, Jan. 2020.

Tutorials and learning resources:

The Hugo Library, by Kent Tessman:

  • Hugo Library (v3.1.03.1) — at the IF Archive.

  • Hugo Library (v3.1.03.2) — on GitHub (care of Tristano Ajmone).

Third party libraries for Hugo:

  • Hugo Code Lab — a collection of Hugo libraries by Jonathan Blask.

  • IF Archive — library extensions for various purposes contributed by members of the IF community.

Editor syntaxes:

  • Hugo ConTEXT — Hugo syntax for ConTEXT (direct download), by Paul Lee, 2010.

  • Hugo EditPlus2 — Hugo syntax for EditPlus2 (direct download), by Ben Parrish, 2002.

  • Hugo Emerald — Hugo syntax for Emerald (direct download), by Jonathan Blask, 2012.

  • Hugo Kate — Hugo syntax for Kate (direct download), by Jonathan Blask, 2012.

  • Hugo mode — Hugo mode for Emacs, by Christopher Tate (GPLv2).

  • Hugo Npp — Hugo syntax for NotePad (direct download)++, by Jonathan Blask, 2011.

  • Hugo Source Edit — Hugo syntax for Source (direct download) Edit, by Jonathan Blask, 2012 .

  • Hugo Textpad — Hugo syntax for Textpad (direct download), by Jonathan Blask, 2012.

  • Hugo UltraEdit — Hugo syntax for UltraEdit (direct download), by Gunther Schmidl, 2010.

  • Hugo Vim — Hugo syntax file for Vim, by Marc Simpson.

  • Sublime Hugo — Hugo for Sublime Text 3, by Tristano Ajmone, 2019 (WIP).

Hugo source code:

Syntax highlighters supporting Hugo:

To find games created with Hugo:

2.7. Inform 6

Suggested GitHub topics: inform inform6

See also:

2.8. Inform 7

Based on natural language.

Suggested GitHub topics: inform inform7

See also:

Online tools:

  • I7 Thing Creator (I7TC) — by Juhana Leinonen. A web form to quickly create i7 objects and reponses; the produced code can then be pasted into the project’s source.

2.10. T.A.B.

T.A.B. (ThinBASIC Adventure Builder).

For more information, see also:

2.11. TADS

TADS (Text Adventure Development System).

Suggested GitHub topics: tads tads3

For more information, see also:

TADS sources:

See also:

2.13. Twine

Suggested GitHub topics: twine twine2

See also:

2.15. Varytale

2.16. Versu

2.17. XVAN

XVAN is a an open source (GPLv3) cross-platform parser-based IF authoring tool, by Marnix van den Bos. It consists of an authoring language, an optional library, a compiler and three types of interpreters: terminal window, Glk-window and GUI. XVAN is available for Windows, Linux and MacOS, in English and Dutch.

See also:

3. IF Authoring Tools in Spanish

4. IF Authoring Tools in Italian

5. Interpreters

5.1. Cross Platform

  • Fizmo — a generic Z-Machine interpreter-development library in plain C, used in various interpreters. Supports Z-code (1-5, 7 and 8).

  • Frotz — for Linux & Mac OS X, supports Z-Machine story files.

  • Gargoyle — for MS Windows, Linux & Mac OS X; supports most story file formats by including the following interpreters: Agility, Alan 2 and 3, Frotz (glk port), Glulxe, Hugo, Level 9, Magnetic, Scare, Tads 2/3.

5.2. macOS

  • Spatterlight — story files supported: AGT, Adrift, AdvSys, Alan, Glulx, Hugo, Level 9, Magnetic Scrolls, TADS (text-only), Quill, and Z-code (except v6).

  • Zoom — supports Z-code, TADS 2/3 and HUGO story files.

5.3. MS Windows

5.4. Mobile Devices

Andorid

  • Twisty — supports Z-code and Glulx story files.

  • Text Fiction — supports Z-code (3, 5 and 8) story files.

iPhone

PalmOS

5.5. In-Browser Players

  • Parchment — written in JavaScript, supports Z-Machine story files.

6. Mapping Tools

Traditionally, IF maps are represented by boxes connected by lines, representing the various rooms and their directions connections. They are intended to represent movements in the adventure world locations, not a physical representation of its geography — but sometimes «realistic» maps are provided with the game feelies, for aesthetic reasons.

Mapping tools can be used for either manually drawing maps from scratch, or to automatically build a map by analizying a game session transcript (live or saved). Some tools offer both functionality.

Many of the tools presented here are now hosted at the IF-Archive — they are old and don’t have any longer a website of their own. To avoid direct linking to their binary archives, a link to the “Mapping Tools” index page at IF-Archive will be provided instead:

6.1. Cross Platform

  • IFM (Interactive Fiction Mapper, 1998–2014) — IFM is both a language for keeping track of gameplay progress and a command line tool (for Windows and Linux) capable of representing the collected map-data in different output formats (PostScript, Fig, ASCII text, and others) and offering many other features, including automapping. Windows executables can be downloaded from the IF Archive. Linux users can build IFM from the Bitbucket sources via GNU make. (Online Manual | Bitbucket | IFWiki)

  • IFMapper — A map drawing tool, written in Ruby, with lots of features, including automapping. Can read and save IFM files and Inform/TADS3 source code files. Exports to PDF. (Online Manual | GitHub)

  • SVGmaps.zip (2008) — A JavaScript framework for producing IF maps using the standard Scalable Vector Graphics (SVG) language.

6.2. macOS

  • Cocoa Mapre (2004) — (cocoa_mapre0.6.7.dmg) A tool for generating maps of Multi-User Dungeons on Mac OS X.

6.3. MS Windows

  • AutoREALM (2006) — A vector-based map drawing software (FOSS) designed for RPGs. Allows the creation of detailed full-color maps; ideal for the creation of elegant game maps where «room boxes» are superimposed on a realistic up-to-scale representation of the game world.

  • Campaign Cartographer — A commercial tool for drawing fantasy-style terrain maps — not the classic rooms/directions-based diagram IF maps, but ancient-looking «realistic» full-color maps, with villages, lakes, sea, forests. Execellent for creating feelies maps.

  • Frobot Magic Adventure Mapper (1998) — Automapping tool for Windows 95.

  • GUEmap — Map drawing tool, can also generate directions for moving around the map. GUEmap v1 (1998–1999) is Sharaware, GUEmap v2 (1998–2007) is now free and open source. Runs on Windows 95/98 or NT 4.0.

  • Informapper (1996) — A map drawing program for Windows, Spanish only user interface. Can export as a skeleton file for SINTAC. Can’t execute on modern versions of Windows.

  • Map Maker (1999) — A Windows 95/98/NT world-building tool for visually designing maps to be converted as AGT, AGX, Hugo and TADS source code. Can still be executed under Windows 10.

  • The Mapper (1994) — Automapping tool — comes as a .COM executable format. Can’t execute on modern versions of Windows.

  • Trizbort (2010-today) — For drawing Infocom-style maps. Automapping feature. Saves in XML, exports to PDF or PNG. Actively developed.

6.4. Linux/*nix

  • Adventure Map Utility (1994) — A shell script that implements a domain-specific language for creating printable PostScript maps from plaintext input files.

  • asciimapper (2005) — A Perl script to create IFM maps from ASCII art maps. Intended as an easy way to draw a map and have it converted to IFM format.

  • ifm2i7 (2008) — A Perl program to convert maps in IFM format to Inform 7 source code.

  • informap (1999) — A perl script that draws maps out of Inform source code.

6.5. Mobile Devices

PalmOS

6.6. IF System-Specific Mapping Tools

Here’s a list of mapping tools or libraries which are designed for specific IF systems.

TADS

  • Tads3 Cartographer library (2021–) — A library for the TADS 3 authoring system that creates an in-game graphical map in either ASCII, SVG, Graphviz DOT or HTML.

7. Standards and Specifications

7.1. Files Extensions and Formats

For a full list of IF story files extensions, see:

7.2. Story Files by Extensions

IF story files are distributed with different file extensions, depending on the IF authoring system used to create them and/or the output format the story has been compiled/converted to (in case of authoring systems that support multiple output formats, like Inform7, or when story files are converted from an old format to a newer one).

The following table resumes the most common story file extensions.

ext format

.a3c

Alan 3 story file.

.asl

Quest source code and story file.

.blb

Blorb wrapper, usually containing a story file.

.cas

Compressed Quest story file.

.floydc

Floyd story file.

.gam

TADS 2 story file.

.gblorb

Glulx story file in a Blorb wrapper.

.glb

Glulx story file in a Blorb wrapper.

.hex

Hugo story file.

.nx

Node-X story file.

.t3

TADS 3 story file.

.t3x

TADS 3 story file.

.taf

ADRIFT story file.

.tag

T.A.G. story file.

.tws

Twine story file.

.ulx

Glulx story file.

.z1

Z-machine version 1 story file.

.z2

Z-machine version 2 story file.

.z3

Z-machine version 3 story file.

.z4

Z-machine version 4 story file.

.z5

Z-machine version 5 story file.

.z6

Z-machine version 6 story file.

.z7

Z-machine version 7 story file.

.z8

Z-machine version 8 story file.

.zblorb

Z-machine story file in a Blorb wrapper.

.zlb

Z-machine story file in a Blorb wrapper.

7.3. Source Files by Extensions

The following table resumes some common extensions used by IF authoring systems as source, headers or resource files. In some IF authoring systems, the source code file and the story file distributed for playing are one and the same.

ext format

.a3r

Alan 3 multimedia resources file (same filename as its storyfile).

.acd

Alan 2 source code file.

.alan

Alan 3 source file.

.alr

ADRIFT Language Resource file.

.asl

Quest source code and story file.

.i6t

Inform 6 template used by Inform 7 compiler.

.i7x

Inform 7 extension source code file.

.inf

Inform 6 source code file.

.inform

Inform 7 project folder.

.jacl

JACL source code file.

.ni

Inform 7 source code.

.t

TADS source code file.

.tab

T.A.B. game datafile

.zil

ZIL source code.

7.4. Other IF File Extensions

The following table resumes some other common file extensions related to IF that don’t belong to any of the previous categories.

ext format

.sav

Saved game file.

.scr

Transcript of a Z-Code gameplay.

.t3v

TADS 3 saved game file.

7.5. Virtual Machines

See also:

Z-machine

The Z-machine was the virtual machine used by Infocom for their text adventures (the ‘Z’ stands for ‘Zork’). Originally developed in 1979 by Joel Berez and Marc Blank, it was later on decoded and reimplemented in the mid-1990s as an open standard by IF fans wishing to revive the genre and play the original Infocom adventures.

There are have been several variations of the Z-machine standard (z1 to z6), and present day IF interpreters support all of them for the sake of backward compatiblity. The Inform compiler supports creating adventures in Z-machine format. The Z-machine is a 16 bit virtual machine.

Glulx

Glulx is A 32-Bit Virtual Machine for IF, created by Andrew Plotkin.

Glulx VM interpreters
  • Glulxe — by Andrew Plotkin; written in C, hosted on GitHub.

More Glulx interpreters are listed at the IF Archive dedicated section:

Glulx Tools

More Glulx tools are listed at the IF Archive dedicated section:

T3 VM

The T3 VM is the TADS 3 Virtual Machine, replacing the TADS 2 VM.

7.6. IF Standards

Various standards shared by Interactive Fiction story files or authoring systems.

See also:

Blorb

[Blorb is] a formal specification for a common format for storing resources associated with an interactive fiction game file. Resources are data which the game can invoke, such as sounds and pictures. In addition, the executable game file may itself be a resource in a resource file. This is a convenient way to package a game and all its resources together in one file.

— Blorb Specification

The Treaty of Babel

The Treaty is an agreement between active design systems, the IF-archive and other interested parties. It provides for:

  • ISBN-like unique ID numbers for story files, old and new, produced by commercial or non-commercial compilers living and dead;

  • a standard format for cover art and bibliographic data;

  • a web server able to provide these for a given ID number;

  • a command-line tool able to identify and extract data from story files in any format;

  • reference software providing a format-neutral API for reading story files, and removing “wrappers”.

The aim of the treaty, and of the Babel software, is to make it much easier to write new tools for players in which the distinction of which design system created which story file is much less visible.

— The Treaty of Babel

8. Collections

9. Blogs

10. Competitions & Awards

For more info, see:

10.1. Annual Competitions

10.2. Annual Awards

10.3. Others

11. IF Learning Resources

For more learning resources, see also:

11.1. Magazines

See also:

Discoverer’s Digest

The Discoverer’s Digest focuses on Interactive Fiction’s philosophy, authorship, and exploring the possibilities of the medium. — everything from artistic mapping techniques to hooking your IF through a browser-based GPS system for IF in the real world!

11.2. Free eBooks

IF History

IF Theory

Inform 6

Inform 7

PAW

11.3. Commercial Books

IF History

Inform 7

Twine

11.4. Documentaries

11.5. Tutorials

IF Authoring Guides

Tutorials by inki (Dan Shiovitz):

Tutorials by Emily Short:

Tutorials on Description:

Scott Kim "Puzzle Master" articles and resources on puzzles and puzzles-creation:

Designing IF Authoring Systems

Inform 7

11.6. Cheat Sheets and Reference Docs

Inform 6

12. IF for Teaching and Education

Interactive Fiction has been employed in the classroom as a teaching aid in various fields: reading, foreign languages, litterature, history, computer programming, game design, and new media theory.

12.1. Online Resources

  • TALP (The Text Adventure Literacy Project) — The TALP project aims to provide a friction-less method of teaching the next generation how to play text adventure games.

  • Teach with Inform — Inform7’s website educational resources page.

  • inform7.com/news/category/education^ — Inform7 News Section, «Education» category. RSS Feed subscription available.

  • Teaching IF — a list of IF courses in schools, curated by Emily Short.

  • Gaming The Past » Interactive Texts — A repository for theory, research , and implementations of simulation games for history education. Created and maintained by Jeremiah McCall. Offers Inform 7 and Twine resources.

  • The Foyer is a Room — Inform 7 Examples, Snippets and PDF handouts by John Timmons, created by educators for students and the classroom. Freely reusable material.

12.2. Examples

12.3. Books

12.5. Articles and Academic Papers

13. Social Events

14. Digital Communities

14.1. Forums

14.2. Newsgroups and Mailing Lists

English

Italian

14.3. MUDs

ifMUD

Since 1997 the ifMUD (a MUD forever voyaging) has been a gathering point for the IF community.

For more information, see also: