The Sincerest Form of Flattery

If imitation is the sincerest form of flattery, then the latest release of adv3lite, version 1.3, which is now available for download, is at least moderately flattering both to the original adv3 library and to Inform 7. Inspired by the former it adds two new extensions to the adv3Lite library, Footnotes (which allows footnotes in precisely the same way as the adv3 library does) and subtime (based on Mike Roberts' Subjective Time extension, which allows the author of a work of IF to link key events to particular times and then extrapolates between these times whenever the player character consults a timepiece). Inform 7 implements a more objective notion of time, the time of day which is advanced by one minute every turn. The latest version of adv3Lite now has an extension (Objective Time or objtime) to do the same thing (along with related functionality such as a special type of Fuse that is triggered by the game clock reaching a certain time). The objtime extension also incorporates all the functionality of my I7 Variable Time Control extension (allowing game authors to control exactly how much time each turn takes down to the nearest second, assuming anyone had the patience to implement quite so much detail).

Further flattery - or at least imitation - of Inform 7 is planned for the next release of adv3Lite (whenever that will be), for which I'm in the process of developing extensions for I7-style rules and I7-style extensions. In the meantime a complete list of what's new in the latest Version 1.3 release can be found by consulting the change log.

Adv3Lite Version 1.1 Now Available

A new release of adv3Lite (Version 1.1) is now available for download from

While there are no major new features, there are a number of bug-fixes and minor enhancements/additions to existing features. There is also a new extension for dynamic regions (i.e. Regions that can shrink and grow during the course of play). For a full list of changes, please refer to the Change Log.

On a vaguely related note, I presented an overview of adv3Lite a week ago to the Oxford Tools Meetup held at Harris Manchester College. At the same meeting fellow Oxonian Graham Nelson presented changes to Inform 7 due out in the new release at the end of this month. For an account of both presentations see Emily Short's blog.

adv3Lite Progress Report

Things have seemed rather quiet on the adv3Lite front since version 1.0 was released nearly three months ago, but all of a sudden things have started hotting up with several people sending me bug reports or raising issues on I've now fixed some bugs (including one quite major parser bug that allows players to use multiple objects in commands that ought to forbid them, such as SIT ON CHAIRS or PUT PEN IN GREEN BOX AND RED BOWL) and have made a few feature tweaks (not least to make it easier to customize the messages that are displayed when the player character tries to touch something that can't be reached).

There's almost enough now to justify another release, but I'll leave it a bit longer to see if anything else comes up first.

In the meantime, if anyone is desperate for a version that includes the fixes/changes I've made to date, you can try downloading it from GitHub, where I tend to upload the latest working version as I go along after each batch of changes. Be warned, though, that the latest working version on GitHub is not an official release, and in particular that it probably won't have been thoroughly tested and the documentation probably won't have been brought fully up to date (e.g. I tend only to update the Library Reference Manual and the indexes for an official release).

Version 1.0 of adv3Lite now available

The first non-beta release of adv3Lite (version 1.0) is now available for download from There are only a few minor changes from the last beta version (version 0.92), mainly some bug fixes and corrections to the documentation. The change log may be viewed at

Adv3Lite is an alternative (and in some ways easier to use) library for use with TADS 3. For further information see

If you've been considering using TADS 3 but have been put off by the reputed complexity of its library, or you're already using TADS 3 and would like to try out an alternative library, do consider giving adv3Lite a go.

Note that this is likely to be the last release for some time, although adv3Lite will continue to be maintained and bug-fix releases will appear as necessary. At this stage I am not planning any further changes to the feature set, although I am always open to suggestions, particular those that might improve ease of use. While I shall probably resist adding any complicating features to the main library, I may well consider implementing them in the form of additional extensions, should either the level of demand or the nature of the requested features appear to justify it.


Adv3Lite or adv3Liter?

The name "adv3Lite" was (as it suggests) originally chosen to suggest a "lite", i.e. simplified version of adv3 (the library that comes standard with TADS 3). It was never going to be simply a cut-down version of adv3 — especially from the time that it adopted the Mercury parser as its base — but the original conception was to provide something substantially simpler than adv3, something that would be more a less a minimal system for writing Interactive Fiction in the TADS 3 language.

As adv3Lite developed, however, it largely moved away from this initial vision. While adv3Lite remains simpler than adv3 in certain respects (such as the smaller number of classes it uses for simulation objects, and the odd adv3 feature it leaves out), it has effectively evolved into an alternative TADS 3 library rather than a lite one, an alternative that leaves out some adv3 features but includes other features not found as standard in adv3. The main reason for this is that the further I got with adv3Lite, the more it became apparent that a minimalist system might be too restrictive for what many people were likely to want to do in a piece of modern IF.

However, adv3Lite was also designed to be more scalable than adv3, which means that you can leave more of it out if you don't want it. If you leave out all the optional modules, then you are left with something that can be considered a "lite" version. I'm now calling this minimalist version adv3Liter. Adv3Liter is not something different from adv3Lite, it's simply adv3Lite in its most basic form, with all the optional modules excluded. If you start from standard adv3Lite and exclude all the optional modules you'll effectively end up with adv3Liter. Conversely, if you start from adv3Liter and add in all the optional modules you'll end back up with full adv3Lite. The library is fully scalable from one to the other.

To help illustrate the point, I've just posted the source code for a simple adv3Lite game called "Trollbridge" in two versions. Version 1 uses only adv3Liter, while Version 2 uses (more or less) the full adv3Lite library. This illustrates some of the differences between the two, but should not be taken as meaning that adv3Liter can do everything that full adv3Lite can do. It can't; at least, not without a lot of reinvention of the wheels that full adv3Lite already provides.

The adv3Liter option is provided for anyone who genuinely wants a lite version of TADS 3. Some reasons why some people might want it are suggested on my adv3Lite page.

Final adv3Lite beta version now available

Version 0.92 of adv3Lite, the alternative TADS 3 library, is now available from

In addition to a number of bug-fixes, this version includes ten short sample games (as source files) illustrating possible answers to some of the exercises in Learning TADS 3 With adv3Lite and six new extensions providing optional extra functionality such as room parts, postures, fueled light sources, sensory emanations and events, viewports and the ability to define actions involving three objects (such as PUT COIN IN SLOT WITH TWEEZERS). There are also a number of feature enhancements in part stemming from work on the sample games and extensions. For a full list of changes see the change log.

Included in this release is also an alternative version of the library called adv3Liter. This is not different library, it simply provides a convenient way of creating a game using only the core modules of adv3Lite, therefore providing a true 'lite' version. I shall be posting a fuller explanation of this here some time next month (after I've done a bit more work on source code illustrating what I mean).

At this point adv3Lite is switching from development mode to maintenance mode, which means that I have no plans for any further features or changes but that I shall, of course, continue to correct any bugs that come to light, and shall be happy to be consider any suggestions.

Provided this latest version of adv3Lite proves to be reasonably stable, it may well be the final beta version (so that the next release will be version 1.0). This may have to change should a number of problematic bugs come to light (so that it would be prudent to have a further bug-fixed beta version), but I hope this will not turn out to be the case.

Adv3Lite update (0.91)

Version 0.91 of adv3Lite is now available from

This update contains a few bug fixes and feature tweaks, and a substantial rearrangement of the documentation, which now includes a Quick Start Guide and an additional book called Learning TADS 3 with Adv3Lite, both of which are adaptations of their TADS 3/adv3 equivalents. The second of these should help fill a gap for people who want to learn TADS 3 using the simpler adv3Lite library but aren't yet familiar with the TADS 3 language and intrinsics. There may be a little further work to do on the examples in Learning TADS 3 with Adv3Lite, not least in providing some solutions to some of them! This may be done in due course for a future release.

In the meantime, if you already have a previous version of adv3Lite installed, I recommend you uninstall (delete) it before installing this upgrade, since there has been a change to directory structure of the documentation.

Adv3Lite version 0.9 now available

Version 0.9 of adv3Lite is now available from here. The change log may be viewed at here.

This new version contains a handful of mainly minor big fixes and quite a few feature enhancements. Besides the numerous enhancements to existing features, the main new features are focused on help for new players, including a set of instructions on playing IF, responding to common badly-formatted commands, and the facility to supply extra hints to players who seem to be getting stuck.

Cloak of Darkness, adv3Lite style

Cloak of Darkness is the de facto standard short game used for comparing how game code looks in different IF languages. I've therefore created a page showing an adv3Lite version of Cloak of Darkness, in case anyone's interested. It's very closely bases on Steve Breslin's TADS 3 version (you'll have to scroll down the page to see it below the TADS 2 version), so you can easily compare the two.

Adv3Lite version 0.8 now available

The latest version of adv3Lite is now available from Dropbox. The change log may be viewed on line here. In addition to a number of (mostly minor) bug fixes and feature tweaks, the new version features:

  1. Significant enhancements to the message system (and in particular the conjugation of regular verbs in message parameter substitutions).

  2. Additions to the documentation in the form of (a) an index to the Library Manual, (b) the inclusion of the Library Reference Manual (similar to that which comes with adv3) as standard and (c) the addition of a Messages index to the Library Reference Manual (to enable users to look up all the messages defined with DMsg() and BMsg() macros in the library).

  3. The ability to create a new Adv3Lite project directly from Workbench's New Project wizard. Note that this feature requires the latest version of TADS 3, TADS 3.1.3, which has just become available at

— Eric Eve