New 2014 build of Inform now out

Build 6L02, the first new release of Inform in three years, is now available fromĀ http://www.inform7.com.

This release is a major reform of a now-mature language which is widely used, and it has been over three years in the making. It has the following main objectives: to clarify and better enforce the syntax of the language (which is now formally documented); to have much greater linguistic flexibility, enabling stories to be written in any person and tense, and paving the way for translation to non-English languages; to remove phrases and features which have been deprecated for some years; to remove procedural rules, which were little used or understood and incurred a significant speed cost at run-time, in favour of simpler ways to substitute rule behaviour; to remove assumptions about the kind of narrative being written (i.e., that Inform is always making a “game” which is “won” or “lost” and has a “score”); to reform the rules handling “blocked” actions, such as listening; to redesign the Index, the in-application documentation, and the extensions index; to reform the handling of text, unifying “text” and “indexed text”, and improving their performance; to introduce a simple but powerful system of “responses” allowing authors to change stock replies in the Standard Rules and other extensions, including third-party ones (and also to make it easy to translate these to non-English languages); and to implement full floating-point arithmetic in numerical kinds of value, at least on the Glulx virtual machine.

This will be a disruptive release. Existing source texts which use deprecated features will no longer work, and the improved syntax checking means that Inform will catch problems it previously missed. It should also be noted that the run-time implementation is different in numerous ways: story files are a little larger but will run a little faster. We believe that almost all Inform projects will be able to migrate to the new system with reasonable ease – for example, “Bronze”, a large story written in the very early days of Inform 7, took about an hour’s work to adapt. Nevertheless, authors of large existing Inform projects may want to be cautious in their approach to what is, we stress once again, an across-the-board reform of the language.

This release also refines the user interface for the Inform application. As in Inform 7′s earliest days, new features are being piloted on Mac OS X, but will make their way to Windows and Linux soon – Toby Nelson, David Kinder and Philip Chimento are all working on these refinements. Search facilities are improved, but the big new feature is the Public Library, which automatically matches the user’s collection of extensions against those on the Inform website, and allows the user to download or update them singly or en masse at the click of a button. There are no user accounts, no passwords; no data is held about Inform users at the server; and everything is free.

The existence of the Public Library will, we hope, be good news for extension writers – it will now be much easier to get your extensions out to users. We’ve always had a set of community standards for extensions, and Mark Musante, the Inform project’s extensions librarian, has put in a good deal of work in recent years to look after all this. We now want to go further with that. The Inform website holds hundreds of extensions going back several years, but some of those are out of date, and many will contain deprecated phrases now removed from the language. So the rule is that the Public Library will contain only those extensions from the website which comply with the guidelines and which work properly on the 2014 Inform – we don’t want new users, especially, to download obsolete code. Firstly, extensions should always use Responses to reply to the player’s commands: this will make them more flexible and easier to translate to natural languages other than English. (At present German IF authors, say, have to “fork” extensions in order to translate them, and we want to avoid the need for that.) Secondly, these responses should where appropriate use adaptive text substitutions so that they will work in any person and tense, and will correctly cope with plural or proper nouns in all situations. An extension which does all this is called “adaptive”. As from this build, all built-in extensions are adaptive, and we hope for quite a rapid takeup from third-party extension writers, too, since there is much to be gained and the changes are quite simple to make. Since adaptive versions of extensions will be incompatible with older builds of Inform, we are making arrangements to keep old non-adaptive versions of extensions online at the Inform website (just as older released builds are always available for download): those won’t be on the Public Library, but they’ll still be available for direct download just as they are now.

Note that a number of existing extensions to provide adaptive text facilities, such as Plurality by Emily Short, will now be redundant. But our build is indebted to this early work, particularly by Aaron Reed and David Fisher.

This new version was basically finalised on 30 April 2014, Inform’s 21st birthday, but has taken a few days to get ready for distribution. It incorporates over 500 bug fixes, and there was a brief period (yesterday) when the Core Inform project on the bug tracker made it all the way down to 0 unresolved issues, though I see that this is back up to 4 today. For a fuller account of what’s new, including an itemised list of bug fixes, see the change log, which is also now available in EPUB form (as is the documentation in general).

Enormous thanks to the very many people who’ve helped this work along, and especially to Emily Short, Andrew Plotkin, Toby Nelson, David Kinder, Philip Chimento, Andrew Hunter, Adam Thornton, Erik Temple, Eric Eve, Dannii Willis, Ron Newcomb, Juhana Leinonen, Jesse McGrew, Mark Musante and Justin de Vesine.

New Windows build of 6G60

Since the release of Inform 7 6G60 quite a few bugs have been fixed in the Windows front-end, and a few new features added. As a result, a new Windows build has been released. (Note that this only affects the Windows front-end: the compiler itself is unchanged).

What’s been changed:

* Elastic tabstops are now available as an option in the Format menu. When elastic tabstops are enabled, tabstops are automatically sized so that columns in tables line up.

* The font settings are now respected in the HTML based panes (that is, the index, errors and documentation) when Internet Explorer 9 is installed.

* There is now a Headings sub-menu under the Edit menu, which matches the similarly named sub-menu on OS X.

* The front-end attempts to sensibly replace spaces with tabs in text that is pasted or dropped on the source tab: if a table is detected its elements are separated by tabs, and leading spaces are also converted to tabs.

* The Glulx interpreters in the game tab now support the additions to Glk in versions 0.7.1, 0.7.2 and 0.7.3 of the Glk specification.

Up There With Norwegian

By watching search engine traffic, the TIOBE Programming Community Index has been tracking the most talked-about languages since the summer of 2001.

The August 2011 chart shows the big three, Java, C and C++, holding on, with Objective C and Lua on the up, probably because of the iPhone. F# leads the stealthy rise of functional programming. Running down the chart, the first language I’ve never heard of is number 17, RPG (OS/400), and down into the 40s they’re obscure (ABAP, OpenEdge ABL) as often as they’re famous (COBOL, Prolog). But down in the very small print, in the list of places 51 to 100, here’s one that I recognise: Inform.

Just to calibrate this, the natural language winners are Mandarin, Spanish and English, while typical languages down at the same sort of chart position as Inform include Belarusian, Norwegian, Kazakh, Xhosa, Neapolitan, and Tatar-Bashkir. World hegemony may be some way off, but it’s good to be part of a vibrant culture.

Inform 7 Suggestions in Want of Volunteers

In our most recent pass through the UserVoice forum for Inform suggestions, we have marked a number of ideas with the tag *VW*. (Search for this by typing vw, without asterisks, into the search box.)

This tag indicates that the idea is one we are theoretically open to, but that the core team does not have the time or resources to implement. Therefore, volunteers are welcome. These ideas include creating IDEs for currently unsupported platforms, for instance, or making subsidiary website support for extensions, or creating a cut-down alternate to the Standard Rules with fewer items in it.

These are all non-trivial tasks. Some may require support from the core team, and we will do our best to cooperate with any reasonable, well-founded proposals, but other people would need take the lead.

There are two specific areas where volunteer assistance would be especially welcome:

Overhaul of tools and website support for extensions

A large number of suggestions concern better organization, management, and feedback on extensions, including the ability for extension users to mark up their favorites, a context for discussing and requesting new extensions, the ability to tag extensions with keywords and search the extensions collection, improved automatic extension testing with each new build, markup to indicate compability between extensions, and so on.

On a forum for requesting new extensions: http://inform7.uservoice.com/forums/57320-general/suggestions/751958-website-extensions-request-page-for-extensions-?ref=title

On creating feedback for extension authors: http://inform7.uservoice.com/forums/57320-general/suggestions/751970-website-extensions-feedback-for-extension-author?ref=title

Archiving extensions in a repository: http://inform7.uservoice.com/forums/57320-general/suggestions/847455-extensions-have-an-extensions-repository-vw-?ref=title and http://inform7.uservoice.com/forums/57320-general/suggestions/751972-website-extensions-archive-old-version-of-extens?ref=title

Providing a single download of all extensions: http://inform7.uservoice.com/forums/57320-general/suggestions/846303-website-extensions-allow-all-extensions-to-be-do?ref=title

Updating extensions through the IDE: http://inform7.uservoice.com/forums/57320-general/suggestions/859339-define-a-means-for-ides-to-query-inform7-com-to-de?ref=title and http://inform7.uservoice.com/forums/57320-general/suggestions/926219-extensions-updater-vw-?ref=title

Having the IDE link to a browser window with more extensions: http://inform7.uservoice.com/forums/57320-general/suggestions/1606805-ide-add-a-find-more-extensions-option-to-the-f?ref=title

Organizing extensions on the website for better searchability and review: http://inform7.uservoice.com/forums/57320-general/suggestions/1046371-extensions-let-users-tag-extensions-and-allow-fo?ref=title, http://inform7.uservoice.com/forums/57320-general/suggestions/1126939-make-built-in-extensions-available-online-just-lik?ref=title

Mark extensions based on their compatibility with different Inform versions: http://inform7.uservoice.com/forums/57320-general/suggestions/751978-extensions-website-show-which-extensions-aren-t-?ref=title

This is a rich field and we would be very happy to see some of these suggestions taken up, but are not in a position to work on this ourselves. We would need a small task force to identify the features that are most desirable, and then build an appropriate structure for the website, as well as any needed support tools for the extension librarians. If there are places where IDE support is necessary, volunteers would also need to work with the IDE maintainers.

Anyone interested on working with this will need to coordinate with the extensions librarian Mark Musante at i7extensions@smallwhitehouse.org.

Specification for improvements to version control compatibility

A common complaint is that Inform is too hard to use with version control software, but we are not sure what reforms are the most important to make this possible. As per

http://inform7.uservoice.com/forums/57320-general/suggestions/789525-ide-code-only-searching-in-the-documentation?ref=title

it would be very helpful if a small task force could assemble a list of specific requests that would make Inform compatible with Subversion, Mercurial, and Git, across all of Inform’s platforms. We are eager to try to support this, but do not know exactly what’s needed.

The following suggestions may also be relevant to this project:

On time-stamping files: http://inform7.uservoice.com/forums/57320-general/suggestions/1220683-support-external-editor?ref=title

On archiving extensions: http://inform7.uservoice.com/forums/57320-general/suggestions/751944-version-control-extensions-automatic-archiving-o?ref=title

We would like this to be done in a way which doesn’t fundamentally change the user experience for people who don’t use version control, and in general which causes as little disruption as possible. In particular, Inform’s fundamental method of storing its main source text as a single file will need to remain. There are arguments for and against this, but it’s a decision that has been taken.

New Resources for Teaching With Inform

We’ve just updated the teaching resource pages with several new entries, including:

Winning Fafnir’s Gold: Teaching with Digital Game-based Fiction, presented by Christopher Fee at Quinnipiac University. (Video, running time 1:16:02.) Professor Fee shares his experiences with game-based teaching using a multimedia, interactive fiction tool that he created and continues to develop. Fee’s teaching approach is applicable to a wide range of disciplines and involves the nexus between student reading and writing, instructor digital asset management, and the shared pedagogical goal of student engagement.

Student-designed text-based simulation games for learning history: A practical approach to using Inform 7 in the history classroom, by Jeremiah McCall. Discusses assignments and practices for teaching history with IF in the ninth-grade classroom.

Articles in Computer Assisted Language Learning and Educational Technology Research and Development on testing the effectiveness of IF for teaching language and literature concepts. (Warning: these are journal articles behind a paywall, so may require access from an academic library or else for pay.)

Inform 6.32

To go with Inform 7 6G60, there is a new maintenance release of Inform 6: Inform 6.32. This contains various fixes and support for new Glulx opcodes.

The release notes, source and binaries (current only Windows) can be downloaded from the Inform 6 page at the IF-Archive.

6G60 now for Windows

6G60 for Windows is now available from the download page.

Inform 6G60

…is now available for Mac, with builds for other platforms to follow.

The chief change of note is the extensive revision to the World Index. Mapping is now considerably more robust and offers more authorial control over presentation; several Uservoice requests about indexing were fulfilled at the same time.

A fuller description (with pictures!) is available here.

Other minor changes may be found in the change log.

Inform 6F95

Inform 6F95 is now available for the Mac, with other builds to follow.

This maintenance release fixes every core Inform issue logged on the Inform bug tracker up to today, which means that it resolves around 180 issues; this change log lists most of them, but omits a few which were simple corrections of typos, and of course doesn’t list the small number of issues closed as being misunderstandings. Though there are no significant new features, two additional resources have been added to the core Inform distribution: Andrew Plotkin’s Quixe interpreter, allowing Glulx story files to be released as playable websites (something up to now allowed only for Z-machine story files); and Eric Eve’s extension “Epistemology”, which joins the built-in set for the first time.

ATTACK combat extension

Victor Gijsbers has recently released ATTACK, a major new combat module for Inform. He writes:

Inform ATTACK is an extension for Inform 7 that adds tactical RPG-like combat to interactive fiction games. ATTACK has been designed on three principles: success in combat should be the result of smart and daring tactical decisions, not just a matter of luck; the combat system should be easily customisable; and it should be possible to create interesting prose based on what happens during combat.

ATTACK comes with six built-in combat actions (attacking, parrying, dodging, concentrating, readying a weapon, and reloading a weapon); an initiative system that decides whose turn it is based, among other things, on the results of previous combat actions; a flexible system of factions that allows you to fine-tune and change on the spot who will attack whom; a powerful and easily customisable set of AI rulebooks that allow NPCs to make tactically informed decisions about which action to take against whom using which weapon; and a weapon kind with several predefined properties.

As an author, you could include ATTACK — without worrying too much about the details of the system — if you want to have one or two battle scenes to spice up an otherwise non-violent adventure. Alternatively, you could dive into the system and utilise its power to create a diverse and entertaining combat game.

The extension comes with a short example game and an extensive 77-page manual.

ATTACK is available from Victor’s website. It is not on Inform’s extension page because the author has chosen a different license for his work than the Creative Commons license attached to extensions we host; be sure to read the licensing instructions.