Inform 7 Extra Lite

An advertised capability of I7 v10 was making projects with just “Basic Inform” and not the World Model/Standard Rules/Parser. I finally played with this. The secret sauce is in A Guide to Kits: you either use a -kit parameter on the command-line with inform7 or you put it in inform7-settings.txt in your project’s material folder, e.g.,

-kit BasicInformKit

or you can use -basic in either place for short.

If you’ve specified any kits by any method, you will only get the kits you ask for and their dependencies (BasicInformKit depends on EnglishLanguageKit).

Rooms don’t exist, of course, so instead of your compilation failing because you didn’t have one, it’ll fail if you do.

There’s still the Startup rules, Shutdown rules, and the rulebooks associated with the Starting the virtual machine activity, the Printing the name activity, and the Printing the plural name activity, but that’s it for rulebooks. You must have a To begin: phrase where whatever user code is to be run first goes. (If you put a To begin: phrase in a WorldModelKit game, it’ll be ignored unless you invoke it manually.)

There’s also not any sort of main event loop. Unless you set one up, your program will do whatever you specify, then exit.

So here is the world’s worst I7 game:

To decide if game over: (- (buffer->WORDSIZE == 'q') -).

To begin:
  while 1 > 0 begin;
    say ">";
    read keyboard;
    if game over, break;
  end while;

To read the/-- keyboard input/--: (- VM_ReadKeyboard(buffer, parse); -)

It presents a prompt, accepts user input, and exits immediately if the user enters anything whose first character is ‘q’, giving rise to fascinating play like:


How do you win?

I believe the only important thing is how you play.

It’s like global thermonuclear war: the only way to win is not to play.