Inform 7: Difference between revisions

From IFWiki

(Any Inform 7 adventure of significant size is too big for a Z-machine so uses Glulx)
 
(45 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[[Inform 7]] is an [[interactive fiction]] authoring system. It is notable for its use of a subset of natural language and for being rule based, rather than object based.
{{Software infobox
|Type=Authoring system
|Style=Parser
|Developer=Graham Nelson
|Home page=http://inform7.com/
|Download=http://inform7.com/downloads/
|Format=Glulx, Z-code
|System=Windows, macOS, Linux, browser
|System details=An online editor is available: see [[Borogove]].
|Play online=https://borogove.app/
|Version=10.1.2
|Date=2022/08/31
|Status=Stable
|License=Artistic 2.0
|Notes=See also: [[Inform 6]]; [[Inform]].
}}
'''Inform 7''' (also known as just "Inform") is an [[interactive fiction]] authoring system. It is notable for its use of a subset of natural language and for being rule based, rather than object based.


Although it is (in name) the successor to [[Inform]] 6, the syntax of the language is entirely different to its predecessor.  The link to Inform 6 lies under the hood: an Inform story is translated first to Inform 6, which is then compiled into [[Glulx]] or [[Z-Code]] by the Inform 6 compiler. This means that works produced using Inform 7 can be played on Z-Code interpreters (although there are some modifications required, as, for example, Inform 7 games tend to use a larger stack than Inform 6).
Although Inform 7 was the successor to [[Inform 6]], the syntax of the language is entirely different to its predecessor.  The original link to Inform 6 lay under the hood: an Inform story was translated to Inform 6, which is then compiled into [[Glulx]] or [[Z-Code]] by the Inform 6 compiler. (As of version 10, this translation is more indirect and optional, but still used in the majority of cases.) This means that works produced using Inform 7 can in principle be played on Z-Code interpreters (although there are some modifications required, as, for example, Inform 7 games tend to use a larger stack than Inform 6, and works often max out the capacity of even the version 8 Z-Machine as they grow).


Inform 7 was first released as a public beta on April 30th, 2006.
Inform 7 was first released as a public beta on April 30th, 2006.
Line 18: Line 34:
* ''[[When in Rome 2: Far from Home]]'' (Emily Short). Example of NPC with random characteristics and behaviors.
* ''[[When in Rome 2: Far from Home]]'' (Emily Short). Example of NPC with random characteristics and behaviors.


All six example games are available from the [http://inform7.com/learn/complete-examples/ Complete Examples] page.
All six example games are available from the [https://i7-examples.github.io/standard.html Inform 7 Examples] page, now maintained by [[Alex Proudfoot]].


==Code Snippets==
==Timeline of Builds==
''I started this section before speaking to Graham Nelson about how we might share code examples. He said he had thought about the idea, but wanted to ponder it some more. If and when he decides to do something, I will likely alter this section. In the meantime, examples are welcome. --[[User:David Cornelson|David Cornelson]] 21:27, 13 May 2006 (EST)''


* ''[[Scenery Tables]]'' - defining scenery using tables by [[David Cornelson]].
See also the [https://github.com/ganelson/inform/blob/master/notes/version_history.md version history], which includes release notes.
 
==Public Beta Releases==
The latest is '''build 6G60''' (December 23, 2010) for Mac (other builds to follow).
 
'''[http://inform7.com/download/ Builds for Windows, Mac OS X, Linux console, Gnome Linux, and Solaris]'''
 
===Timeline of Builds===


{| border=0 cellpadding=16 cellspacing=0
{| border=0 cellpadding=16 cellspacing=0
Line 44: Line 52:
*3V01 - (2 August 2006)
*3V01 - (2 August 2006)
*3Z95 - (14 September 2006)
*3Z95 - (14 September 2006)
*4B91 - (10 November 2006)
||
||
*4B91 - (10 November 2006)
*4F59 - (21 December 2006)
*4F59 - (21 December 2006)
*4K40 - (23 January 2007)
*4K40 - (23 January 2007)
Line 54: Line 62:
*4W37 - (27 July 2007)
*4W37 - (27 July 2007)
*4X60 - (24 August 2007)
*4X60 - (24 August 2007)
||
*5G67 - (10 November 2007)
*5G67 - (10 November 2007)
*5J39 - (1 December 2007)
*5J39 - (1 December 2007)
||
*5T18 - (30 April 2008)
*5T18 - (30 April 2008)
*5U92 - (13 September 2008)
*5U92 - (13 September 2008)
Line 63: Line 71:
*6E72 - (1 July 2010)
*6E72 - (1 July 2010)
*6F95 - (25 October 2010)
*6F95 - (25 October 2010)
*'''6G60 - (23 December 2010)'''
*6G60 - (23 December 2010)
*6L02 - (4 May 2014)
*6L38 - (30 August 2014)
*6M62 - (24 December 2015)
||
* 10.1.0 - (20 August 2022)
* 10.1.1 - (21 August 2022)
* '''10.1.2 - (31 August 2022)'''
|}
|}


===Release notes===
(Releases from 2006-2015 were primarily referred to at the time with the build codes shown here, such as 6M62. With the release of version 10 in 2022, the [https://github.com/ganelson/inform/blob/master/notes/versioning.md version scheme] changed, and old releases were retrospectively given numeric version numbers like 9.3 - noted in [https://intfiction.org/t/inform-7-v10-1-0-is-now-open-source/55674 announcement].)
* [http://inform7.com/learn/changes/ The Change Log] records all changes back to build 3K27.
* [http://inform7.com/learn/logs/6G60.txt Build 6G60 change log]'''. See what’s new in the latest build.


==Authors of Inform 7==
==Authors of Inform 7==
Line 75: Line 88:
* [[Emily Short]]: wrote the examples and the Test Suite used for regression testing. Also was the first extensions librarian.
* [[Emily Short]]: wrote the examples and the Test Suite used for regression testing. Also was the first extensions librarian.
* [[Andrew Hunter]]: author of the Mac OS X user interface and of the overall visual design.
* [[Andrew Hunter]]: author of the Mac OS X user interface and of the overall visual design.
* [[Toby Nelson]]: support and modernization of the Mac OS X interface.
* [[David Kinder]]: author of the Windows user interface.
* [[David Kinder]]: author of the Windows user interface.
* [[Philip Chimento|P. F. Chimento]]: author of the GNOME user interface for Fedora, Ubuntu and other Linux distributions.
* [[Philip Chimento|P. F. Chimento]]: author of the GNOME user interface for Fedora, Ubuntu and other Linux distributions.
Line 85: Line 99:
==Links==
==Links==
===Official links===
===Official links===
* [http://inform7.com/ Inform7.com], the new homepage as of April 23rd, 2009. <!-- previously http://www.inform-fiction.org/I7/Inform%207.html -->
* [http://inform7.com/ Inform7.com], the current homepage. <!-- previously http://www.inform-fiction.org/I7/Inform%207.html -->
* [http://inform7.com/news/ Inform News]. Read the latest news on Inform 7.
* [http://inform7.com/downloads/ Inform downloads]. Download versions for Windows, Mac, Linux etc.
* [http://inform7.com/bugs/ Inform: The Bug Tracker], powered by Mantis.
* [http://inform7.com/doc/ Official documentation]. (Or an unofficial [https://zedlopez.github.io/i7doc/ remix of the same material], with examples editable/playable in a browser.)
* [http://inform7.uservoice.com/forums/57320-general Inform's Suggestion Forum], powered by UserVoice.
* [https://github.com/ganelson/inform Inform 7 Git repository], where you can report bugs, browse and download the source code, build it yourself, etc.<br>(Made public on 28 April 2022, at which point the version code was v10.1.0-beta+6U93; source code history goes back to 2019, build code 6Q13.)
* [http://inform7.com/download/ Inform Downloads]. Download a version for Windows, Mac, or Linux.
* [https://github.com/ptomato/inform7-ide The GitHub page of the Inform 7 IDE for Linux].


===General articles about Inform 7===
===General articles about Inform 7===
* [http://sparkynet.com/spag/backissues/SPAG44 SPAG #44] - Interviews with [[Graham Nelson]] and [[Emily Short]] about Inform 7.
* {{spag issue|44}} - Interviews with [[Graham Nelson]] and [[Emily Short]] about Inform 7 (2006).
* [http://ifiction.free.fr/wiki/?_inform7 Inform 7] at IFiction-FR, the [[French]] IF wiki. "Inform 7 and the future of IF games in foreign languages".
* {{link|deadurl=http://ifiction.free.fr/wiki/?_inform7|archive=https://web.archive.org/web/20110725022508/http://ifiction.free.fr/wiki/?_inform7|Inform 7}} at IFiction-FR, the [[French]] IF wiki. "Inform 7 and the future of IF games in foreign languages".
* [http://en.wikipedia.org/wiki/Inform#Inform_7 Inform 7 in Wikipedia].
* [https://en.wikipedia.org/wiki/Inform#Inform_7 Inform 7 in Wikipedia].
* [http://sourceforge.net/projects/gnome-inform7 The SourceForge page of Gnome Inform 7 for Linux].
* [http://www.brasslantern.org/writers/iftheory/tads3andi7.html A Comparison of TADS 3 and Inform 7] by [[Eric Eve]].
* [http://www.brasslantern.org/writers/iftheory/tads3andi7.html A Comparison of TADS 3 and Inform 7] by [[Eric Eve]].


===Third-party documentation, tips, and examples===
===Third-party documentation, tips, and examples===
''See also: [[:Category:Inform 7 tutorials]], [[:Category:Examples of Inform 7 code]]''
''See also: [[:Category:Inform 7 tutorials]], [[:Category:Examples of Inform 7 code]]''
* [http://www.musicwords.net/if/i7hb.htm The Inform 7 Handbook] by [[Jim Aikin]]. ([http://milleuna.sourceforge.net/docs/GuidaInform7.pdf Italian translation] by [[Leonardo Boselli]].)
* '''[https://intfiction.org/t/inform-7-documentation-and-resources/3311 Inform 7 documentation and resources]''' post on the intfiction forum. (With updates for release 10, as of 2023.)
* [http://en.wikibooks.org/wiki/Beginner%27s_Guide_to_Interactive_Fiction_with_Inform_7 Beginner's Guide to Interactive Fiction with Inform 7] is a wikibook begun by [[Brandon Felger]] in October 2006.
* [https://www.musicwords.net/if/i7hb.htm The Inform 7 Handbook] by [[Jim Aikin]], version 2.0 for 6L38 (2014). (Or on [https://inform-7-handbook.readthedocs.io/ readthedocs.io]. [https://intfiction.org/t/printed-copy-of-inform-7-handbook-available/47897/16 Print-on-demand link.])
* ''[[Créer des jeux textuels avec Inform 7]]'' ([http://www.siteduzero.com/tutoriel-3-215762-creer-des-jeux-textuels-avec-inform-7.html homepage]), French beginners' manual, by [[Eric Forgeot]].
** [http://milleuna.sourceforge.net/docs/GuidaInform7.pdf Italian translation] of v1 by [[Leonardo Boselli]].
* [http://www.brasslantern.org/writers/howto/i7tutorial.html Write a Text Adventure With Inform 7] by [[Stephen Granade]].
** [https://intfiction.org/t/updating-the-i7-handbook/53374 Discussion of update prospects] (2021-3).
* [http://xyzzy.plover.net/~pscion/inform7.html Inform 7 for Programmers] by [[Ron Newcomb]].
* [http://www.plover.net/~pscion/Inform%207%20for%20Programmers.pdf Inform 7 Programmer's Manual, 15 August 2011, build 6G60] (PDF) by [[Ron Newcomb]], or [https://zedlopez.github.io/i7doc/i7prog/ HTML version].
* [http://eblong.com/zarf/i7index/ Inform 7: An Unofficial Documentation Index] by [[Andrew Plotkin]], building on the earlier [[I7 index]] by [[Sean Barrett]].
** Older version: for [http://xyzzy.plover.net/~pscion/inform7.html Inform 7 for Programmers, 6 Jan 2009, build 5U92].
* ''[[Creating Interactive Fiction with Inform 7]]'' ([http://inform7.textories.com/ homepage]) by [[Aaron A. Reed]].
* [https://en.wikibooks.org/wiki/Beginner%27s_Guide_to_Interactive_Fiction_with_Inform_7 Beginner's Guide to Interactive Fiction with Inform 7] is a wikibook begun by [[Brandon Felger]] in October 2006. (It looks like it was largely abandoned by 2014.)
* ''[[Créer des jeux textuels avec Inform 7]]'' ([http://sdz.tdct.org/sdz/creer-des-jeux-textuels-avec-inform-7.html homepage]), French beginners' manual, by [[Eric Forgeot]].
* [http://www.brasslantern.org/writers/howto/i7tutorial.html Write a Text Adventure With Inform 7] by [[Stephen Granade]] (2007).
* ''[[Creating Interactive Fiction with Inform 7]]'' ([http://inform7.textories.com/ homepage]) by [[Aaron A. Reed]] (2010).
* [https://i7-examples.github.io/ Inform 7 Examples], the [[#Early Inform 7 games|six original games]] and others updated to work with current versions of Inform, curated and maintained by [[Alex Proudfoot]].
* [https://emshort.blog/how-to-play/writing-if/inform-7/i6-entry-points-translated/ Inform 7 equivalents of Inform 6 constructs], by [[Emily Short]] (2007).
* [http://rosettacode.org/wiki/Category:Inform_7 Category:Inform 7] at the [http://rosettacode.org/wiki/ Rosetta Code] wiki.
* [http://rosettacode.org/wiki/Category:Inform_7 Category:Inform 7] at the [http://rosettacode.org/wiki/ Rosetta Code] wiki.
* Inform 7 Tips by [[Matt Wigdahl]]:
* Inform 7 Tips by [[Matt Wigdahl]]:
** [http://www.wigdahl.net/quern/2010/04/26/inform-7-tips-keyword-disambiguation-for-verbnoun-conflicts/ Keyword Disambiguation For Verb/Noun Conflicts]
** {{link|deadurl=http://www.wigdahl.net/quern/2010/04/26/inform-7-tips-keyword-disambiguation-for-verbnoun-conflicts/|archive=https://web.archive.org/web/20110830173739/http://www.wigdahl.net/quern/2010/04/26/inform-7-tips-keyword-disambiguation-for-verbnoun-conflicts/|Keyword Disambiguation For Verb/Noun Conflicts}}
** [http://www.wigdahl.net/quern/2010/04/28/inform-7-tips-syntax-options-for-action-responses/ Syntax Options for Action Responses]
** {{link|deadurl=http://www.wigdahl.net/quern/2010/04/28/inform-7-tips-syntax-options-for-action-responses/|archive=https://web.archive.org/web/20110719102420/http://www.wigdahl.net/quern/2010/04/28/inform-7-tips-syntax-options-for-action-responses/|Syntax Options for Action Responses}}
* [https://intfiction.org/t/good-coding-style-in-inform-7/9593 Good coding style in Inform 7]. Discussion at the [[Interactive Fiction Community Forum |IF Community Forum]]. January 7, 2016.
* [https://nitku.net/blog/2016/04/structuring-inform-7-code/ Structuring Inform 7 code] by [[Juhana Leinonen]]. April 22, 2016.
* {{link|url=https://www.rcveeder.net/blog/2016/08/10/the-imitable-process-of-ryan-veeder/|The Imitable Process of Ryan Veeder}} by [[Ryan Veeder]]. Making a map, choosing room details, and organizing code in Inform 7. August 10, 2016.
* [https://github.com/i7 Friends of Inform 7], an unofficial space for collaboration on various Inform-7-related projects.


===Public discussion===
===Public discussion===
Notable newsgroup and forum postings about Inform 7:
Notable newsgroup and forum postings about Inform 7:
* [http://groups.google.com/group/rec.arts.int-fiction/msg/17791dfefeec46e0 Inform 7: Public Beta], original announcement by Graham Nelson, April 30 2006.
* [{{raif|17791dfefeec46e0}} Inform 7: Public Beta], original announcement by Graham Nelson, April 30 2006.
* [http://groups.google.com/group/rec.arts.int-fiction/msg/980b5a84e8dfc29b Inform 7: Possible future developments], raif post by Emily Short and Graham Nelson, January 2007.
* [{{raif|980b5a84e8dfc29b}} Inform 7: Possible future developments], raif post by Emily Short and Graham Nelson, January 2007.
* [http://groups.google.com/group/rec.arts.int-fiction/browse_frm/thread/8ecdb479ed8e354a/114952f951a28bf0#114952f951a28bf0 "Inform 7" is the wrong name], raif thread begun March 29, 2007. "Natural Inform" was the working name for Inform 7, and is what the compiler binary ".ni" stands for. However, Graham Nelson states: "Natural Inform is not officially the name of anything."
* [http://groups.google.com/group/rec.arts.int-fiction/browse_frm/thread/8ecdb479ed8e354a/114952f951a28bf0#114952f951a28bf0 "Inform 7" is the wrong name], raif thread begun March 29, 2007. "Natural Inform" was the working name for Inform 7, and is what the compiler binary ".ni" stands for. However, Graham Nelson states: "Natural Inform is not officially the name of anything."
* {{link|deadurl=http://inform7.uservoice.com/forums/57320-general|archive=https://web.archive.org/web/20190302104900/http://inform7.uservoice.com/forums/57320-general|The former suggestion forum}} powered by UserVoice (since closed).
* [https://intfiction.org/t/inform-7-v10-1-0-is-now-open-source/55674 Graham Nelson, 'Inform 7 v10.1.0 is now open-source'] (IntFiction forum, April 28 2022).


===Reviews===
===Reviews===
* [http://brasslantern.org/writers/howto/i7intro.html Introducing Inform 7] - a semi-brief overview of I7 at [[Stephen Granade]] of [[Brass Lantern]].
* [http://brasslantern.org/writers/howto/i7intro.html Introducing Inform 7] (2006) - a semi-brief overview of I7 at [[Stephen Granade]] of [[Brass Lantern]].
* [http://brasslantern.org/writers/iftheory/i7observations.html Some Observations on Using Inform 7] - article by Emily Short.
* [http://brasslantern.org/writers/iftheory/i7observations.html Some Observations on Using Inform 7] (2006) - article by Emily Short.
* [http://www.onlamp.com/pub/a/onlamp/2006/06/08/inside-inform-7.html Natural Language Game Programming with Inform 7] - article by [[Liza Daly]], June 2006, for O'Reilly's ONLamp.com.
* {{link|deadurl=http://www.onlamp.com/pub/a/onlamp/2006/06/08/inside-inform-7.html|archive=https://web.archive.org/web/20180515213932/http://www.onlamp.com/pub/a/onlamp/2006/06/08/inside-inform-7.html|Natural Language Game Programming with Inform 7}} - article by [[Liza Daly]], June 2006, for O'Reilly's ONLamp.com.
* [http://www.shamusyoung.com/twentysidedtale/?p=566 "Informless"] - [[Shamus Young]] reviews Inform 7 for Twenty Sided, December 2006.
* [https://www.shamusyoung.com/twentysidedtale/?p=566 "Informless"] - [[Shamus Young]] reviews Inform 7 for Twenty Sided, December 2006.
** [http://www.shamusyoung.com/twentysidedtale/?p=1972 "Phantom of the Arcade"] - Follow-up: Shamus Young asks [[Susan Arendt]] of "The Escapist" about her experience using Inform 7 to write ''[[Phantom of the Arcade]]''. October 2008.
** [https://www.shamusyoung.com/twentysidedtale/?p=1972 "Phantom of the Arcade"] - Follow-up: Shamus Young asks [[Susan Arendt]] of "The Escapist" about her experience using Inform 7 to write ''[[Phantom of the Arcade]]''. October 2008.


[[Category:Authoring system]] [[Category:Inform]] [[Category:Inform 7| Inform 7]]
[[Category:Authoring system]] [[Category:Inform]] [[Category:Inform 7|Inform 7]]
{{software navbox}}

Latest revision as of 18:16, 4 July 2023

Inform 7
Authoring system
[[File:|385px|center]]
Links Home page Download Run online
Developer Graham Nelson
Formats Glulx, Z-code
Interaction style Parser
Systems Windows, macOS, Linux, browser
System details An online editor is available: see Borogove.
Latest version 10.1.2 / 31 Aug 2022
Status Stable
Implements
Uses
Multimedia support
License Artistic 2.0
Notes See also: Inform 6; Inform.
Browse the software database
Edit this infobox

Inform 7 (also known as just "Inform") is an interactive fiction authoring system. It is notable for its use of a subset of natural language and for being rule based, rather than object based.

Although Inform 7 was the successor to Inform 6, the syntax of the language is entirely different to its predecessor. The original link to Inform 6 lay under the hood: an Inform story was translated to Inform 6, which is then compiled into Glulx or Z-Code by the Inform 6 compiler. (As of version 10, this translation is more indirect and optional, but still used in the majority of cases.) This means that works produced using Inform 7 can in principle be played on Z-Code interpreters (although there are some modifications required, as, for example, Inform 7 games tend to use a larger stack than Inform 6, and works often max out the capacity of even the version 8 Z-Machine as they grow).

Inform 7 was first released as a public beta on April 30th, 2006.

Early Inform 7 games

The earliest Inform 7 game released to the public may have been Mystery House Possessed (Emily Short; 2005) for the Mystery House Taken Over project.

On March 1st, 2006, three example games were released (see the rgif announcement: Three Games in Inform 7). These games were:

Inform 7 was released as a public beta on April 30th, 2006. Three more example games were released at the same time:

All six example games are available from the Inform 7 Examples page, now maintained by Alex Proudfoot.

Timeline of Builds

See also the version history, which includes release notes.

  • 3K27 - (30 April 2006)
  • 3K56 - (4 May 2006)
  • 3L95 - (14 May 2006)
  • 3M43 - (21 May 2006)
  • 3P53 - (9 June 2006)
  • 3R85 - (26 June 2006)
  • 3T38 - (10 July 2006)
  • 3V01 - (2 August 2006)
  • 3Z95 - (14 September 2006)
  • 4B91 - (10 November 2006)
  • 4F59 - (21 December 2006)
  • 4K40 - (23 January 2007)
  • 4K41 - (23 January 2007)
  • 4S08 - (25 March 2007)
  • 4U65 - (27 April 2007)
  • 4U67 - (7 May 2007)
  • 4W37 - (27 July 2007)
  • 4X60 - (24 August 2007)
  • 5G67 - (10 November 2007)
  • 5J39 - (1 December 2007)
  • 5T18 - (30 April 2008)
  • 5U92 - (13 September 2008)
  • 5Z71 - (18 April 2009)
  • 6E59 - (12 June 2010)
  • 6E72 - (1 July 2010)
  • 6F95 - (25 October 2010)
  • 6G60 - (23 December 2010)
  • 6L02 - (4 May 2014)
  • 6L38 - (30 August 2014)
  • 6M62 - (24 December 2015)
  • 10.1.0 - (20 August 2022)
  • 10.1.1 - (21 August 2022)
  • 10.1.2 - (31 August 2022)

(Releases from 2006-2015 were primarily referred to at the time with the build codes shown here, such as 6M62. With the release of version 10 in 2022, the version scheme changed, and old releases were retrospectively given numeric version numbers like 9.3 - noted in announcement.)

Authors of Inform 7

See also: Inform7.com, the official website.

Links

Official links

General articles about Inform 7

Third-party documentation, tips, and examples

See also: Category:Inform 7 tutorials, Category:Examples of Inform 7 code

Public discussion

Notable newsgroup and forum postings about Inform 7:

Reviews

Authoring systems
By style ParserChoiceParser-choice hybrid
By system BrowserAndroidiOSLinuxmacOSWindows
Browse Stable authoring systemsSearch formDrilldown
Other software InterpretersUtilities