• The DIRECTLY qualifier can now be used for all Where-type expressions
  • A container using the default description will list its content
  • The List statement can now operate on expressions, notably involving reference attributes
  • Implemented text style hints which of course only works in some interpreters, notably non-trivial GLK-variants
  • Exits can be inherited and added
  • Initialize clause added to classes and instances, this makes it easier to control initializations locally
  • Events can be referenced from attributes in the same way as instances
  • NEW Play statement to play sounds, interpreter dependent support of course
  • All media resources are now automatically packaged into a single resource file (blorb-format) by the compiler
  • Improved word handling to enable more correct parsings when words are of multiple classes, e.g. verb&direction, adjective&verb and preposition&verb
  • Nearby expression can test locations
  • NEW Near expression which tests the adjacency between two instances
  • Simplified the language grammar notation in the manaual
  • Clean up of AT and IN. They are both now transitive/recursive. Optional qualifier, "Directly", can be used in expressions to get direct location or containment.
  • Clean-up of pre-defined classes. Everything must inherit from some class. "entity" can not have location (invisible and everywhere), "thing" can but is not described automatically (invisible but localized). "actor" and "object" are described automatically (visible). Sub-classes to "entity" behave like "entity". This harmonizes with the fact that "literal" is a subclass of "entity".
  • Names are now inherited by adding names down the hierarchy. This means that if a name is available for a more general class it will also be available for the more special classes and instances. Good candidates for use of this feature is fruit/apple/macintosh and human/person/man.
  • Initial locations are inherited.
  • Restrictions on auto-generated syntaxes now matches the class the verb was declared in.
  • New statement "Random In" extracts a random element in a set or container.
  • Pronoun declarations. Instead of the previously built in "IT"-handling and synonyms, it is now possible to declare pronouns for a class or instance. These words can be used in player input to refer to the instance if the instance was previously mentioned explicitly in the previous player command. (This also solves the problem with referring to a single instance using "them". "them" can still be used to refer to the same multiple set of instances as used in the previous command.)
  • Improved use of correct case for words.
  • Printing actor names are now done in the same way as for other instances wrt. to definite/indefinite forms.
  • Parameters are available in the Message sections for many messages. This allows e.g. fixing the message wrt. to noun case (as in German, "any" = kein/keine/keiner depending on noun case).
  • Changed default messages to use parameter handling in as many cases as possible, e.g. default location "content" listing, and container listings. It is now possible to re-format these into tabulation instead of the standard in-line form, for example.
  • Added message for "unknown word".
  • Deprecated "$include" in favour of a new, equilvalent, "import" statement. (***spoiler***) This makes future IDE-building easier.
  • Verified that an inherited set or reference attribute retains the original type even if the infered type of a redefinition is not the same. A sub-class of the original is required.
  • Fixed debug/trace output to show up also in winarun.
  • Fixed command line arguments to winarun, you can now run the debugger, trace etc. also in GLK-variants of the interpreter.
  • Fixed a bug which mixed up several syntax-declarations so that interpreter would respond with "You must supply a noun." for some legal inputs.
  • Fixed a bug with spacing in command line version.
  • Fixed a bug with opaque attribute not being inherited for inherited containers.
  • Fixed a problem with some attributes not being saved and restored correctly.
  • Changed DEPEND case separator from ':' to 'THEN'
  • Added a new attribute type, set, declared using '{' and '}'
  • Added a new interpretation of 'IN' which refers to sets
  • Upgraded loop and aggregation filters to use 'IN' both for containers and sets
  • Added messages for UNDO responses
  • Added UNDO as a response to QUIT
  • Empty player input is now interpreted as forfeiting that command turn

Subcategories

What They Say

"Man, I just finished programming a little game with Alan, and let me tell you ALAN RULES!! It's so simple, *I* can program with it."

Rob Anderson