Introduction
A persistent issue with interactive fiction is that there is a dearth of formats and a similar dearth of interpreters for those formats, all of which look and act slightly different, and which may or may not have a port for a particular system. This makes it hard to introduce new users to IF as in order to play a game they need to locate both an interpreter and a game, and it also means that users often do not bother to play games written for an unfamiliar system. It also makes it hard to introduce new interpreter features, such as the Babel metadata system, as interpreter authors have to reimplement it every time.Since version 1.1.0, Zoom tries to be a common front-end for playing interactive fiction, hiding the mechanics of choosing the right interpreter from the user and providing a rich and consistent set of features for players. An interpreter running under Zoom gets automatic access to features like the iFiction story organiser, automatic save game association, transcript recording, etc. Development is not yet complete as the means for installing new plugins is not yet as simple or transparent as it should be: Zoom 1.1.2 will address this issue.
Zoom supports two kinds of plugin: a raw plugin where the interpreter author supplies a NSDocument implementation representing their format, and a glk plugin where the interpreter author designs their interpreter to link against a glk library. The advantage of the first kind of plugin is that the interpreter can display anything in any format it wants, but the disadvantage is that a lot more work has to be done to build a good interpreter that supports all of the features that Zoom has to offer.