NovelLib can be downloaded from the if-archive here. You can also read the manual on-line.
What is NOVEL mode?
Novel mode is a format for text adventure games. Instead of the game intermingling the users input prompts and the games text output, instead the input is performed in a separate window, with the game generating unbroken prose in the main window. Text is paragraphed contextually, and the aim is to produce a game whose output is unrecognisable from a short story.
The first game in NOVEL mode was My Angel which was written for the 2000 IF Competition and came 6th. (Follow the link for a blurb, reviews and dowload of the game). Its method of programming was rather crude, but has now been updated and refined, and separated into a includable library package.
What does NovelLib do?
NovelLib constructs the interface and controls paragraph formatting, the movement of parsing error messages to the status line and the internal book-keeping of the last-referenced object. By including it into your code, it leaves you free to concentrate on writing the game. Simple functions are provided for calling new paragraphs, without the risk of printing new two paragraphs consecutively (which would leave an unwanted blank space); as well as for naming an object or printing "it" depending on what the text outputted is currently refering to.
NovelLib allows the player to choose between three
output modes, and switch mid-game - these are:
Output can either be to V5 or V6 format. V6 is
slightly preferable as the enhanced graphical abilities allow for neater
presentation of the various windows. To compile to V6 you'll also need
Jason C. Penney's
V6lib
from the if-archive site, or from his home-page. V6 also allows for the
inclusion of graphics and sound into games; although NovelLib contains
no specific features for this it should be possible to do directly. V6
has less available interpreters however; I've tested it under WinFrotz
(which generates a warning at the start, which is ignorable) and DOSfrotz.
It should be noted that some interpreters will not support the V5 file
either, such as JZip for DOS and Nitfol.
Options are provided for easily changing the style of paragraphing, and to create a Status line at the top of the screen (this feature was not part of My Angel and a lot of players requested it).
NovelLib also includes a modified version of Graham Nelson's Inform compiler (released with permission) as written by Sean Barrett (entitled, after some debate "Informal"). Using this compiler simplifies some of the printing of text, by overriding the normal behaviour for print_ret statements and ^ symbols in the text; as well as incorporating Sean's varying strings modification, which allows one to programme multiple responses inside a single print statement. All these features are controlled by switches and the compiler will produce identical output with them all turned off. NovelLib distributes this as a Windows EXEcutable file, however, the source code should be available on Sean's site for other builds to be produced.
Also included is full documentation on how to use NovelLib, as well as the links for V6lib files. The text of this documentation is also available on-line.
Email: jon.ingold@gmail.com