Inform 7 Resource Masterlist

(the second one)

How to Not Lose This Post

This topic is (not currently) pinned to this category, but by default Discourse unpins a thread when you reach the bottom (that can be deactivated in Interface under Preferences in your Profile). Or you can bookmark it: the bookmark icon is at the bottom of the post (you may have to select a “…” icon to see it). To see your bookmarks, select your profile icon in the upper right, then select the bookmark icon there. If you do lose the post, search the forums for “documentation and resources” or visit while logged out.

Bookmark interface

1

1 Like

Inform 7 10.1 (current release)

[I7 10.1.2](https://github.com/ganelson/inform/releases/tag/v10.1.2) and IDEs for Mac, Windows, and Linux. The [10.1 release notes](https://github.com/ganelson/inform/blob/master/notes/release/10-1-0.md) detail changes and bugfixes.

10.1 renders some info on this page out of date. The next release will be 11.0. No schedule has been announced.

9.3/6M62 (previous, released 2015-12-24)

Tutorials: Start Here!

Installation

@Juhana’s Borogove lets you edit and run I7 (10.1, 9.3/6M62, or 8.5/6G60) online: experiment without installing anything. Borogove snippets allows sharing code examples.

Official packages mentioned below available at I7 Downloads.

MacOS

Use the package on the I7 site; not the App Store’s.
Known issues:

An unofficial MacOS IDE release addresses these. Testing examples in Extension Projects doesn’t work.

Windows

Use the package on the I7 site (said to work with any version of Windows from XP SP 3 on). Or there’s a current beta release of a new Windows version that allows compiling for 6L02 and 6L38 as well as 6M62. It’s 64-bit-only, and has been tested only on Windows 10, but may work with older versions. Be warned that there have been multiple reports of security/antivirus programs causing problems with it: Avast, AVG, Windows Defender.

Linux

The 6M62 IDE package have uses GTK2; for a long time, GTK3 has been the norm, making the IDE hard to build on a modern Linux.

Unofficial rpm/deb IDE packages

The official download page also offers a CLI-only version for Linux, which comes with “the cheesy Perl interface”. Or consult How to use ni, inform6, and cBlorb by CLI for info on using those commands directly. Some projects to help are Vimform7, the Inform 7 extension for VS code, Spaceformacs, and inf7.

Linux kernels >= 4.11 (c. 2017) are incompatible with ni prior to 6M62.
For 6L38 or older use an old Linux in a VM or Windows Inform in WINE (or use 6G60 online at playfic.com or borogove.app).

The official packages include components that have more recent versions. Some updates:

Versions

Most 6L02 or 6L38 information is relevant for 6M62. 6L02 had many backwards-incompatible changes: code written for 6G60 or earlier is unlikely to compile in 6L02 or later. This post usually notes the version as of which something was current.

Manuals/Books

References

The actual syntax the I7 compiler uses to parse I7 code is in Languages/English/Syntax.preform in your installation’s Internal directory. The Backus-Naur Form syntax provided isn’t accurate. See the Syntax.preform documentation PDF (6L02). Syntax.preform also lets you see what irregular verbs and plurals Inform 7 handles and how.

Extensions

Counterfeit Monkey’s Extensions: beyond the many unique extensions, many other extensions included here are modified from their original versions.

Separate from the Authoring > Inform 7 category here, there is a Technical Development > Inform Extensions category chiefly discussing issues with existing published extensions

Glulx/Glk extensions ecosystem

Extension Writing Guides:

Standard Rules

I7 includes the Standard Rules with every game. They’re well-commented and the authority on the world model and defaults (used to be in Appendix A of the documentation). They can be browsed in the IDE. (See “Contents” within any compiled game.)

Warning (Writing in Inform 27.14): things in the SR that look modifiable may not really be; they could be interdependent with something hard-coded in the compiler. And beware that all of the past three versions’ SRs (6L02, 6L38, 6M62) are marked Version 3/120430, but each is different. (Likewise, 6E59 through 6G60’s Standard Rules are all marked Version 2/090402 but each is different.)

Games/examples with available Source Code

2 Likes

Inform 6

I7 compiles to Inform 6 before that gets compiled to Glulx or z-code. The I6 Standard Library isn’t involved; I7 uses the I6 Template Layer that every Inform installation has under Internal/I6T (once Appendix B of the docs): their comments often document things that aren’t documented elsewhere.

Sometimes the best/only way to do something is by interacting directly with the I6 layer, as many extensions do. Other times I7 behaviors can be best understood as artifacts of I6 representations. Sometimes, reading your project’s auto.inf (the I6 code that I7 generated) is useful to investigate problems.

Useful threads/posts

Licensing

How to Organize/Structure Your Project

There’s no one answer, so here are multiple answers (see games with available source code for examples.)

Bugs

9.3 is no longer maintained, but 10.1 fixes several bugs in 9.3. Use the I7 bug tracker to find the status of known bugs or report more. If you’re not sure whether you’ve found a bug, ask in the I7 category with code displaying the issue.

The 6M62 Patches by Friends of I7 extension provides fixes for some known issues in 9.3/6M62.

The Inform 6 that shipped with 9.3/6M62 was 6.33N. The current version is 6.41. Bugs in (the current) Inform 6 can be reported at the Inform 7 bug tracker

The old Inform 7 suggestion forum is accessible via Wayback Machine.

Infrastructure

Inform 6 compiles to your choice of glulx or the Z-machine (v8 only – I7 games don’t fit in the other versions).

Glulx

Glulx interpreter apps include one (or more) of:

Others:

Glulx Inform Technical Reference

Glk

Glulx I/O is via the Glk API; glulx terps must be built with a Glk library (Emacs-glulx/Zags’ are built-in).

  • cheapglk (no window, no status line, just streams of input and output; of interest largely for testing and development)
  • glkterm (curses library, widely available for anything UNIX-ish)
  • glktermw (“wide char” glkterm for Unicode characters beyond Latin1)
  • GlkOte (Javascript implementation used by Quixe and Lectrote)
  • cheap-glkote is the Glkote variant underlying the ElseIFPlayer
  • remglk (Receives/emits JSON objects on stdin/stdout; can represent multiple windows and most Glk events)
  • CocoaGlk (used by the I7 Mac IDE)

Glk per its spec doesn’t offer the text color control that would be necessary to match the Z-machine. The non-standard Gargoyle Glk extensions can do so. Implementations including them:

Differences between javascript & C Glk APIs

The results of display the boxed quotation look bad with Glk. Spatterlight, Gargoyle, Lectrote, and Parchment use Glk not just for Glulx but also for Z-machine I/O, so Z-machine games inherit boxed text quotes looking bad in those apps.

Glk via network:

Glk References

Z-machine

There are countless Z-machine interpreters, e.g.

Z-machine References

Tools and Projects

@Zarf’s

Others

Legacy

I7 in translation

Hosting

Miscellany

IFwiki’s rec.arts.int-fiction threads on Inform 7

Ryan Veeder’s

Jeff Nyman:

@emshort:

@mathbrush’s 77 Verbs serves as a trainer in default available commands.

An Inform 7 quine by @Juhana

"Updating

John Timmons’ Inform Snippets and Inform Manual (PDF) (c. 5U92-6F95)

inform7tips: fresh I7 tidbits Monday-Friday.

Archived I7 website sitemap: many links above are to archive.org copies of pages no longer on the Inform 7 website.

Language Comparisons

IF Resource Links has much more of interest to IF authors in general, not specific to I7.

History

Toward I6: New Tricks for an old Z-machine

  1. Digging the Trenches
  2. Hacking Deeper, or Follies of Graham Nelson’s Youth
  3. A Renaissance Is Nigh

Toward I7

Toward I7 v10

3 Likes

(placeholder 1, if needed)

(placeholder 2, just in case)

(placeholder 3, for good measure)